Google Maps Lead Finder (Filters & Executive Emails) avatar

Google Maps Lead Finder (Filters & Executive Emails)

Pricing

from $0.005 / actor start

Go to Apify Store
Google Maps Lead Finder (Filters & Executive Emails)

Google Maps Lead Finder (Filters & Executive Emails)

Scrape Google Maps by location + keyword, filter with static rules (rating, reviews, category, contact requirements), then enrich with business emails and decision-maker contacts (name, title, MX-validated email, LinkedIn).

Pricing

from $0.005 / actor start

Rating

5.0

(4)

Developer

AM

AM

Maintained by Community

Actor stats

5

Bookmarked

12

Total users

9

Monthly active users

3 days ago

Last modified

Share

Google Maps Lead Finder

Scrape Google Maps by location + keyword, filter with static rules (no AI, no surprises), and optionally enrich each result with business emails and decision-maker contacts (CEO, Founder, Partner, Director, …).

Built for B2B prospecting where you know exactly what you want and don't want to pay LLM rates on every row to find out.

What you get

For every business that passes your filters:

FieldSource
name, address, lat, lngGoogle Maps
phone, websiteGoogle Maps
rating, review_countGoogle Maps
category, categoriesGoogle Maps
place_id, cid, timezoneGoogle Maps
emails, best_emailEnrichment (visits website)
executives[]name, title, email_high, email_high_mx_valid, email_low, email_pattern, direct_phone, linkedinEnrichment (team/about pages)
domain_mx_validDNS MX check

Filters (all static, all optional)

  • Rating — minimum stars
  • Reviews — min and/or max (handy for excluding chains)
  • Website — require / exclude / any
  • Phone — require
  • Email — require (applied after enrichment)
  • Include categories — substring match against Google's category strings
  • Reject categories — exact category exclusion
  • Reject keywords — substring exclusion against name or category
  • Country code — naive token check against the address

No LLM involved at any stage. What you ask for is what runs.

Pricing — pay only for outcomes

EventPriceWhen charged
Actor start$0.005Once per run
Place scraped (post-filter)$0.003Per place that passes your filter — dropped rows are free
Business email found$0.002Only when the site yielded ≥1 valid email
Executive found$0.030Per executive name+title detected
Executive email MX-validated$0.030Only when the exec's email passes a live MX check

Worked example — 1,000 dental clinics in Texas

  • 1,000 places × $0.003 = $3.00
  • ~500 with extractable email × $0.002 = $1.00
  • ~270 places with execs, ~700 execs total × $0.030 = $21.00
  • ~700 MX-valid exec emails × $0.030 = $21.00
  • Start fee: $0.005
  • Total ≈ $46.00 — about $0.046 per fully-enriched lead, or ~$0.06 per verified decision-maker contact

Comparison with Apify's market-leader (compass crawler-google-places at Free-tier list prices):

  • Scrape: $4/1k vs $3/1k here
  • Executive enrichment: $100/1k vs $30/1k here
  • Email verification: $100/1k vs $30/1k here
  • Same 1k-dental-clinic workload on compass costs ≈ $144 → this actor saves ~68% on Free-tier prices.

Buying verified executive emails from Apollo/ZoomInfo typically runs $1+ per contact; this actor is ~16× cheaper.

Input — minimal

{
"location": "Austin, TX",
"query": "dentist",
"min_rating": 4.0,
"min_reviews": 10,
"website_filter": "with",
"enrich_emails": true,
"enrich_executives": true
}

Input — full reference

See .actor/input_schema.json for every field with descriptions.

How the scrape works

  1. Geocode the location string via OpenStreetMap Nominatim → polygon.
  2. Grid the polygon into ~5 km cells (configurable).
  3. For each cell: hit Google Maps' raw tbm=map endpoint, paginate 20 results at a time until the API stops returning new places, parse the JSPB tuple into structured fields.
  4. Subdivide any cell that saturates (≥18 results inside the cell's own bounds) into 4 quadrants — drills into dense urban areas.
  5. Dedup by Google's place_id across the whole run.

UA rotation, jittered delays, captcha detection, and 429/5xx retry are all built in. Use Apify Proxy for production runs (the default).

Email enrichment

  • Visits the homepage, then /contact, then /about only if the homepage was empty.
  • Regex-extracts emails, decoding HTML entities and mailto: links.
  • Filters role-mailbox junk (noreply@, sentry@, image-filename "@" matches) and platform-CDN leakage (wixpress.com, googleapis.com, …).
  • Sorts results so role mailboxes (contact@, info@, sales@, …) come first.

Executive enrichment

  • Discovers team/leadership pages from the homepage navigation (/team, /leadership, /our-attorneys, /who-we-are, etc.).
  • Scans for title regex hits (CEO, CTO, Founder, Partner, President, Director, Head of …, Managing Partner, …) and pairs each with the nearest capitalized name in the preceding 80 characters.
  • For each named executive:
    • Verified email: searches the page for an email whose local-part matches the name (e.g. jane.doe@, jdoe@).
    • Proximity email: nearest valid email within 250 chars if no verified match.
    • Pattern inference: votes the company's email convention across verified pairs (first.last, flast, first, …) and derives an email for execs we couldn't directly match.
    • MX validation: runs a live DNS check on every derived email; you only pay the $0.015 event when MX returns yes.
  • Pulls a LinkedIn URL and "Direct phone:" labeled number from the same proximity window when present.

No GPT involved. Trade-off vs an LLM-validated approach: more false positives from testimonial/partner sections — the title-regex gate filters most, but expect 5–10% noise on busy sites. Buy the executive event only when that's an acceptable cost.

Limitations

  • Google Maps caps at ~120 results per viewport; we work around it by gridding and subdividing, but extremely dense urban areas may still miss some places at the bottom of the long tail.
  • Nominatim has a 1 req/sec TOS — we make one call per actor run, well within bounds.
  • Captcha responses cancel the run early. With Apify Proxy in residential mode, this almost never happens.
  • No JavaScript rendering on enrichment pages — sites that hide emails behind JS (rare) won't yield contacts.