Google Maps Lead Machine: 100 qualified local-business leads every week, with a personalized opening line
An n8n workflow that scrapes local businesses from Google Maps, filters out the ones without a website or with low ratings, has Claude write a personalized cold-email opener for each, and drops everything into a ready-to-send Google Sheet.
- 1
Schedule the weekly run
Add a
Schedule Triggernode set to Monday 07:00. One run per week keeps your pipeline full without re-scraping the same businesses — the dedupe step below handles the overlap anyway. - 2
Scrape Google Maps with Apify
Add an
HTTP Requestnode calling Apify's Google Maps Scraper actor (compass/crawler-google-places). Search for your niche and city — e.g.dentist in Austin, TX— limited to 200 places, returning name, category, rating, review count, phone, website, and address. Store the Apify token as an n8n credential. - 3
Filter to businesses that actually need you
Add a
Codenode that keeps places with a rating above 4.0 and more than 20 reviews (they're established, they spend money), then flags the ones with no website or afacebook.comlink as the hottest leads if you sell web or automation services. Drop everything already present in your sheet from previous weeks by checking the place ID. - 4
Let Claude write the opening line
Add an
HTTP Requestnode to the Claude API (/v1/messages). Pass the business name, category, rating, review count, and city. Prompt: write ONE specific, non-cringe opening sentence for a cold email that references something concrete about this business — no flattery, noI hope this finds you well. Ask for JSON with a singleopenerfield so parsing never breaks. - 5
Append to the lead sheet
Add a
Google Sheetsnode in append mode: date, business name, category, phone, website, address, rating, and Claude's opener — one lead per row. Your Monday morning now starts with 100 researched leads instead of a blank prospecting page.