Jonathan Bayo
All case studies
OutreachBuilt1 min read

Google Maps lead discovery

Give it a category and a city, like "digital agency in Austin", and about twenty minutes later there's a sheet of several hundred businesses with emails, a one line description and a lead score.

500+leads a run
~20 minfull run
~80%with an email
Input
a category and a city
Leads per run
500+
Run time
about 20 minutes
Email found
around 80% of businesses

Why it exists

Building a local lead list by hand means searching, clicking through sites and copying emails into a sheet. Most people give up after 20.

How it runs

Pipeline
Fetch
Google Places
via Apify
Transform
Filter
no website, dupes by domain
Fetch
Scrape site
home and contact pages
AI
Claude
what they do, likely pains
Store
Google Sheets
lead list
  1. Search

    Apify's Google Places actor returns businesses for the category and location, with names, addresses, phones, websites and ratings.

  2. Filter

    Businesses with no website are dropped, excluded names are removed and the rest are deduplicated by domain.

  3. Scrape

    A Python node reads each homepage and contact page looking for email addresses, team names and a description.

  4. Extract

    Claude reads the scraped text and writes down the business type, likely pain points and a contact name where there is one.

  5. Save

    Each business goes into the sheet with its email, website, description, signal and score.

What came out of it

A run brings back 500 or more businesses in about twenty minutes, roughly 80% of them with an email found.

Notes

This is a working build that proves the pattern. I haven't run it for a client yet. Contact pages are inconsistent, so the scraper checks the homepage and the contact page and gives up quickly on anything else rather than crawling the whole site.

Stack

Want something like this built?

Tell me what you're trying to automate. Most things can be built in a week or two.