Google Maps Scraper + Email Extractor & AI Lead Enrichment avatar

Google Maps Scraper + Email Extractor & AI Lead Enrichment

Pricing

from $3.50 / 1,000 leads

Go to Apify Store
Google Maps Scraper + Email Extractor & AI Lead Enrichment

Google Maps Scraper + Email Extractor & AI Lead Enrichment

Scrape Google Maps businesses, extract & verify emails from their websites, and let AI score which leads to contact first. CRM-ready B2B lead output. $5/1k leads with volume discounts. Works with n8n, Make, LangChain & MCP for AI agents.

Pricing

from $3.50 / 1,000 leads

Rating

0.0

(0)

Developer

AIDevs

AIDevs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 days ago

Last modified

Share

Google Maps B2B Lead Finder + Email Verifier + AI Enricher

Turn Google Maps search results into outreach-ready business leads. This Actor searches Google Maps for local businesses, crawls each business website for contact details, discovers and verifies email addresses, runs AI-based qualification, and outputs clean, scored lead objects ready for your CRM, outreach sequences, or downstream automation.

Extract local businesses from Google Maps, discover and verify contact channels, and let AI score which leads are worth contacting first.

What does this Actor do?

  1. Searches Google Maps by keyword + location (or direct Maps URLs) and extracts place records: name, category, address, phone, website, rating, review count, coordinates, and open/closed status.
  2. Deduplicates places found across multiple search terms (place ID, domain, phone, name+address keys).
  3. Crawls each first-party business website (contact, about, and team pages first) and extracts emails (including mailto:, obfuscated, and JSON-LD sources), phone numbers, contact forms, booking links, and social profiles.
  4. Verifies discovered emails - syntax, disposable-domain, and MX checks - using the standard verification vocabulary: ok, invalid, disposable, catch_all, unknown, error.
  5. Runs AI enrichment (Anthropic, OpenAI, OpenRouter, or free built-in heuristics): niche classification, website quality score, digital maturity, opportunity tags, pain-point signals, and a one-line personalization hook.
  6. Scores every lead 0-100 with an A/B/C/D quality band across contactability, commercial fit, digital-presence gap, reputation, and legitimacy.
  7. Delivers results to the dataset (JSON/CSV/Excel export), a run-summary record, and an optional webhook.

Who is it for?

Lead generation agencies, local SEO and web design agencies, B2B sales teams, franchise expansion and market research teams, and AI workflow builders using n8n, Make, LangChain, or custom APIs.

Quick start

{
"searchTerms": ["dentist", "dental clinic"],
"locationQuery": "Malmö, Sweden",
"maxPlaces": 200,
"crawlWebsite": true,
"verifyEmails": true,
"enableAiEnrichment": true,
"aiProvider": "none"
}

Set aiProvider to anthropic, openai, or openrouter with your own aiApiKey for LLM-grade enrichment, or keep none for free rule-based enrichment.

Output example

{
"business": {
"name": "Bright Smile Dental",
"categoryName": "Dentist",
"address": "Storgatan 1, 211 34 Malmö",
"phone": "+46 40 123 456",
"website": "https://brightsmile.se",
"rating": 4.7,
"reviewsCount": 132
},
"contacts": {
"emails": [
{
"email": "info@brightsmile.se",
"type": "generic",
"sameDomain": true,
"verification": { "status": "ok", "subResult": "mx_accepts_mail" }
}
],
"contactForms": ["https://brightsmile.se/contact"],
"socials": { "facebook": ["https://facebook.com/brightsmile"] }
},
"ai": {
"normalizedNiche": "family dental clinic",
"digitalMaturityLevel": "medium",
"websiteQualityScore": 62,
"serviceOpportunityTags": ["needs-seo", "no-booking-flow"],
"personalizationHook": "Family clinic with strong ratings but no online booking flow.",
"leadQualityScore": 81
},
"scoring": {
"leadQualityScore": 78,
"leadQualityBand": "A",
"contactabilityScore": 84
}
}

Three dataset views are provided in the Output tab: Business leads, Contacts, and AI summary. A RUN_SUMMARY record with aggregate metrics is saved to the key-value store.

Pricing (pay per event)

You pay only for what the Actor actually produces:

EventWhen it's charged
Place scrapedA business record passed your filters
Website crawledA first-party website was successfully crawled
Same-domain email foundA unique same-domain email was discovered
Email verified (decisive)Verification returned ok, invalid, or disposable - non-decisive results are free
AI enrichment producedA valid AI enrichment result was produced
Qualified leadA lead reached the A/B quality band

Base extraction stays cheap; you opt into website crawling, verification, and AI scoring only when you need them. Cost controls are built in: maxPlaces, maxWebsitePages, maxAiEnrichments, and minLeadQualityScore.

Input reference

See the Input tab for all options. Highlights:

FieldPurpose
searchTerms + locationQueryBroad geographic discovery (recommended - covers more than a raw Maps URL)
startUrlsDirect Maps search/place URLs (note: Google caps a single search URL at ~120 results)
minRating, minReviews, skipClosed, categoryFiltersMaps-level filters
crawlWebsite, maxWebsitePages, contactPagePriorityWebsite crawl policy
discoverEmails, verifyEmailsEmail discovery + verification
enableAiEnrichment, aiProvider, aiApiKey, aiPromptProfileAI qualification
requireWebsite, requireEmailOrForm, minLeadQualityScoreCommercial usability filters
webhookUrl, batchIdDownstream automation

Example automations

  • Push A-band leads into HubSpot/Pipedrive via the webhook + Make/n8n.
  • Schedule weekly runs per territory using batchId to track batches.
  • Chain with an outreach tool: filter dataset to verification.status = "ok" and export CSV.

Limitations

  • Google Maps markup changes over time; the Actor uses defensive selectors and retries, but extraction coverage can vary. Report issues and we ship fixes.
  • A single direct Maps URL search is capped by Google at roughly 120 results; use searchTerms + locationQuery for full coverage.
  • Built-in email verification uses DNS/MX checks (no SMTP mailbox probe), so ok means the domain accepts mail, not a guaranteed mailbox.
  • Use of proxies (proxyConfiguration with residential proxies) is strongly recommended for runs above ~100 places.

This Actor extracts publicly available business information (not private personal data). Scraping public data is generally legal, but you are responsible for how you use the output: respect GDPR/CAN-SPAM and regional outreach rules, honor takedown requests, and review the target sites' terms of use. Person-level extraction is off by default; the Actor practices data minimization (no raw HTML stored unless you opt in).

Use it in n8n, Make & Zapier (no code)

Use this Actor as the lead-generation step in any no-code workflow. In n8n, add the Apify node (or an HTTP Request node) and call entranced_gelato/google-maps-lead-engine with {"searchTerms": ["dentist"], "locationQuery": "Austin, TX", "maxPlaces": 50, "verifyEmails": true} - every result is a scored, CRM-ready lead record.

n8n workflow 1 - Fresh leads straight into your CRM. Schedule trigger runs the Actor for your niche + city, a Filter node keeps leads with verification.status = "ok" and quality band A/B, and a HubSpot/Pipedrive node creates contacts and companies automatically.

n8n workflow 2 - Weekly outreach queue with AI personalization. Weekly schedule scrapes a new territory, a Code node dedupes against your CRM by website domain, Google Sheets appends the new leads, and Gmail creates draft emails using each lead's personalizationHook field from the AI enrichment.

n8n workflow 3 - Hot-lead alerts in Slack. After each run, a Filter node keeps only A-band leads with a verified email and phone, and Slack posts them to your sales channel for same-day calls.

No Apify node? POST input JSON to https://api.apify.com/v2/acts/entranced_gelato~google-maps-lead-engine/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN from any HTTP node. The same pattern works in Make, Zapier, LangChain, and as an MCP tool for AI agents.