Map Scrap

Google Maps Scraper v2 — Apify + Claude AI Email Writer | Hyxil
Home/ AI Automation/ Portfolio/ Maps Scraper v2
Lead gen
25 n8n nodes
Apify Maps extractor

Same write-to-sheet path. Richer Maps data — 40 listings per keyword.

Version 2 replaces the Google Places API with Apify’s Google Maps extractor. Closed businesses are skipped. Contact detail comes off the listing. Claude still researches the site and writes subject, body, and PS into the sheet.

Why version 2 exists

Places is clean. It is also capped.

Version 1 talks to Places API v1 — fast, structured, and limited to 20 results per search with basic fields. Teams that need more volume per keyword, contact detail from the listing itself, and a filter for permanently closed places move to this extractor.

This is not a different product category. It is the upgraded scrape. After Apify returns the dataset, the path is the same class of work as v1: dedupe, MillionVerifier, Haiku, Sonnet, Sheets. Read Maps Lead Scraper if you want the Places version.

v1 vs v2

What actually changed in the scrape

v1 — Google Places API

  • 20 results maximum per keyword
  • Basic fields: name, website, phone, rating
  • Google Cloud API key required
  • Direct HTTP to Places v1
  • No closed-business filter
  • 29 nodes

v2 — Apify Google Maps scraper

  • 40 results per keyword — double the pull
  • Richer listing data, including contact details
  • Apify bearer token — simpler credentials
  • Run-sync: dataset returns before the next node
  • skipClosedPlaces: true — only active businesses
  • 25 nodes
Who it is for

Operators who already outgrew a 20-result Places pull

Same audience as version 1 — local-service agencies and B2B teams — with a higher raw-lead ceiling per run. Three keywords at 40 each is up to 120 listings before email extract and verification thin the list.

Agencies running multi-city batches

More listings per keyword means fewer form submits when you are covering several metros in a week.

Niches with lots of closed pins

skipClosedPlaces drops dead storefronts before you spend MillionVerifier or Claude tokens on them.

Teams without a Google Cloud project

Apify bearer auth replaces Places key setup. The rest of the stack (Claude, Sheets, verifier) stays the same.

Anyone attaching the outbound loop

Rows still land as status “pending” for the 5pm sender. v2 is a better intake, not a different CRM.

The workflow

Maps Scraper v2 — n8n canvas

The live Apify Maps extractor on the canvas — 40 listings per keyword, then verify, Claude write, and Google Sheet out.

Google Maps lead scraper n8n workflow canvas
How Leads Scraper v2 works

25 nodes. One form. Apify first.

1

Form — five fields

Product description, target location, up to three keywords, sender name. The workflow builds one search string per keyword — e.g. “roofing contractor in Dallas, Texas” — and sends them to Apify together.

2

Apify run-sync scrape

Actor lukaskrivka~google-maps-with-contact-details. maxCrawledPlacesPerSearch: 40. skipClosedPlaces: true. language: en. Run-sync waits for the full dataset so the workflow does not need a webhook callback.

3

Sheet + suppression cross-check

Before any site is fetched, each lead is checked against the existing leads sheet and the suppression list. Duplicate emails inside the current batch are dropped too. Already-contacted or opted-out rows never reach Claude.

4

Extract + MillionVerifier

Homepage scrape, regex extract, then verification. Only emails classified safe, ok, or role_account continue. Risky, invalid, and disposable addresses are dropped before AI spend.

5

Haiku then Sonnet

Haiku 4.5 writes a 3–4 sentence research note. Sonnet 4.6 returns JSON: subject (under 6 words, lowercase, curiosity-based), 50–90 word body with one research detail and a reply-only CTA, plus a short PS. Same writing rules as v1.

6

Append — status pending

Name, email, website, subject, body, PS, verification. Status starts pending so the Email Sender can pick the row up at 5pm. This page does not send mail.

What you get

Apify on the scrape. Your sheet as the CRM.

You own the n8n workflow, the Apify token, and the sheet. Hyxil does not rent a black-box lead tool.


FAQ

Maps Scraper v2 — short answers

Why not just raise the Places page size?
The published v1 build uses Places v1 at pageSize 20 with a basic field mask. v2 is a different extractor: Apify’s Maps actor with contact details, a 40-place cap per search, skipClosedPlaces, and run-sync so n8n waits for the dataset. It is a scrape upgrade, not a Places setting tweak.
What actor does it call?
lukaskrivka~google-maps-with-contact-details via Apify’s run-sync-get-dataset-items endpoint. Search strings go in as an array. Language is English. Closed places are skipped.
Does v2 write a different email than v1?
No. After verification, Haiku still summarises the homepage and Sonnet still returns subject, 50–90 word body, and PS under the same rules. The difference is how many listings you start with and how much contact detail the listing already carries.
Will it re-contact someone already in the sheet?
Not if the email is already on the leads sheet or the suppression list. Dedupe runs before website fetch and Claude, so you do not pay for research on a row you already have.
Is this SaaS I can subscribe to?
No. Client-ready n8n on your Apify, Claude, MillionVerifier, and Sheets accounts. Hyxil builds and hands over the workflow. You own it.

Want the Apify scrape on your keywords?

We will walk the 25-node canvas — form, actor, skip-closed, verify, Claude, Sheet — and map it to the cities you actually sell into.

info@hyxil.com · (214) 810-1552

Scroll to Top