Google Maps Lead Enricher
Pricing
Pay per usage
Google Maps Lead Enricher
Search Google Maps for any business type and location, then automatically enrich every result with emails, phone numbers, team contacts, email patterns, and lead quality scores. Combines Google Maps Scraper with a 3-step B2B enrichment pipeline.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

ryan clinton
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Search Google Maps for any business type and location, then automatically enrich every result with emails, phone numbers, team contacts, email patterns, and lead quality scores.
One search query in, fully enriched leads out. No manual data piping between actors — this orchestrates the entire pipeline for you.
How it works
"plumbers in LA" → Google Maps → 200 businesses → Contact Scraper → Pattern Finder → Lead Qualifier → Enriched leads
- Search Google Maps — finds businesses matching your query (Google Maps Scraper)
- Scrape contact info — emails, phones, team member names, social links from each website (Website Contact Scraper)
- Detect email patterns — figures out the company's email format, generates emails for team members (Email Pattern Finder)
- Score and rank leads — analyzes 30+ business quality signals, assigns a score (0-100) and letter grade (B2B Lead Qualifier)
You get back one comprehensive record per business with Google Maps data merged with full pipeline enrichment.
How to use it
- Go to the Google Maps Lead Enricher on Apify
- Enter search queries like "dentists in Austin TX" or "marketing agencies in London"
- Click Start — the pipeline runs all 4 steps automatically
- Download your enriched leads as JSON, CSV, or export to Google Sheets
Output
Each business produces one enriched record. Here's a real example:
{"businessName": "Expert Web Design Co","searchQuery": "web development agencies in San Francisco","googleMapsCategory": "Web designer","googleMapsAddress": "123 Market St, San Francisco, CA 94105","googleMapsPhone": "+1-415-555-0123","googleMapsRating": 4.8,"googleMapsReviewsCount": 142,"googleMapsPlaceId": "ChIJ...","googleMapsUrl": "https://www.google.com/maps/place/...","domain": "expertwebdesign.com","url": "https://expertwebdesign.com","emails": ["hello@expertwebdesign.com"],"phones": ["+1-415-555-0123"],"contacts": [{ "name": "Sarah Chen", "title": "Founder & CEO" }],"socialLinks": {"linkedin": "https://linkedin.com/company/expertwebdesign","twitter": "https://x.com/expertwebdesign"},"emailPattern": "{first}.{last}@expertwebdesign.com","emailPatternConfidence": 0.8,"generatedEmails": [{ "name": "Sarah Chen", "email": "sarah.chen@expertwebdesign.com" }],"score": 75,"grade": "B","scoreBreakdown": {"contactReachability": 18,"businessLegitimacy": 22,"onlinePresence": 15,"websiteQuality": 12,"teamTransparency": 8},"signals": [{ "signal": "hasPersonalEmail", "category": "contactReachability", "points": 8, "detail": "sarah.chen@expertwebdesign.com" },{ "signal": "hasLinkedInCompany", "category": "contactReachability", "points": 4, "detail": "LinkedIn company page" }],"address": "123 Market St, San Francisco, CA 94105","techSignals": ["google-analytics", "hubspot"],"pipelineSteps": ["google-maps", "contact-scraper", "email-pattern-finder", "lead-qualifier"],"processedAt": "2026-02-07T..."}
Signals array shortened for brevity — the full output includes all signals that fired.
Output fields
| Field | Type | Description |
|---|---|---|
businessName | String | Business name from Google Maps |
searchQuery | String | The search query that found this business |
googleMapsCategory | String | Business category on Google Maps |
googleMapsAddress | String | Address from Google Maps |
googleMapsPhone | String | Phone from Google Maps |
googleMapsRating | Number | Google Maps rating (0-5) |
googleMapsReviewsCount | Number | Number of Google reviews |
googleMapsPlaceId | String | Google Place ID |
googleMapsUrl | String | Google Maps URL |
domain | String | Company domain |
url | String | Website URL |
emails | Array | All discovered email addresses |
phones | Array | All phone numbers (Maps + website) |
contacts | Array | Named contacts with name, title |
socialLinks | Object | Social media profile URLs |
emailPattern | String | Detected email pattern (e.g., {first}.{last}@domain) |
emailPatternConfidence | Number | Pattern confidence 0-1 |
generatedEmails | Array | Generated emails for team contacts |
score | Integer | Lead quality score (0-100) |
grade | String | Letter grade: A, B, C, D, F |
scoreBreakdown | Object | Points per category |
signals | Array | Business quality signals that contributed to the score |
address | String | Physical address (from website or Maps) |
techSignals | Array | Technologies detected on the website |
pipelineSteps | Array | Which pipeline steps were executed |
processedAt | String | ISO timestamp |
Input
| Field | Type | Description | Default |
|---|---|---|---|
searchStringsArray | Array of strings | Google Maps search queries (required) | — |
maxCrawledPlacesPerQuery | Integer | Max businesses per search query | 100 |
language | String | Google Maps search language | "en" |
includeBusinessesWithoutWebsite | Boolean | Include businesses with no website (Maps data only) | false |
maxPagesPerDomain | Integer (1-20) | Pages to crawl per website for contact scraping | 5 |
minScore | Integer (0-100) | Only output leads at or above this score | 0 |
skipEmailPatternFinder | Boolean | Skip email pattern detection | false |
skipLeadQualifier | Boolean | Skip lead scoring | false |
proxyConfiguration | Object | Proxy settings for all pipeline steps | Apify Proxy |
Example input
{"searchStringsArray": ["plumbers in Austin TX","electricians in Austin TX"],"maxCrawledPlacesPerQuery": 50,"minScore": 50}
How to use the API
Python
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_API_TOKEN")run = client.actor("ryanclinton/google-maps-lead-enricher").call(run_input={"searchStringsArray": ["dentists in Austin TX"],"maxCrawledPlacesPerQuery": 50,"minScore": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['businessName']} ({item['domain']}): {item['score']}/100 ({item['grade']})")print(f" Google: {item['googleMapsRating']}★ ({item['googleMapsReviewsCount']} reviews)")print(f" Emails: {item['emails']}")print(f" Contacts: {len(item['contacts'])} people")
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('ryanclinton/google-maps-lead-enricher').call({searchStringsArray: ['dentists in Austin TX'],maxCrawledPlacesPerQuery: 50,minScore: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`${item.businessName} (${item.domain}): ${item.score}/100 (${item.grade})`);console.log(` Google: ${item.googleMapsRating}★ (${item.googleMapsReviewsCount} reviews)`);console.log(` Emails: ${item.emails.join(', ')}`);});
Pipeline architecture
┌─────────────────────────────────────────────────────────────────────┐│ Google Maps Lead Enricher ││ ││ Input: ["plumbers in Austin TX"] ││ │ ││ ▼ ││ ┌─────────────────────────────────────────────────┐ ││ │ Step 1: Google Maps Scraper │ ││ │ Search Maps → get businesses with websites │ ││ └──────────────────────┬──────────────────────────┘ ││ │ 200 businesses, 180 with websites ││ ▼ ││ ┌─────────────────────────────────────────────────┐ ││ │ Step 2: Website Contact Scraper │ ││ │ Scrape emails, phones, names, socials │ ││ └──────────────────────┬──────────────────────────┘ ││ │ emails + contact names ││ ▼ ││ ┌─────────────────────────────────────────────────┐ ││ │ Step 3: Email Pattern Finder │ ││ │ Detect format, generate emails for contacts │ ││ └──────────────────────┬──────────────────────────┘ ││ │ patterns + generated emails ││ ▼ ││ ┌─────────────────────────────────────────────────┐ ││ │ Step 4: B2B Lead Qualifier │ ││ │ Score 30+ signals, grade A-F │ ││ └──────────────────────┬──────────────────────────┘ ││ │ ││ ▼ ││ Output: Maps data + enrichment merged, sorted by score │└─────────────────────────────────────────────────────────────────────┘
Use cases
Local service businesses
Search "plumbers in Austin TX" → get 200 plumbing businesses with emails, direct contact names, and quality scores. Focus outreach on grade A and B leads.
B2B lead prospecting
Search "marketing agencies in New York" → get decision-maker names and direct emails for every agency. Filter by score to focus on established businesses.
Multi-location research
Run multiple queries at once:
{"searchStringsArray": ["dentists in Austin TX","dentists in Dallas TX","dentists in Houston TX"],"maxCrawledPlacesPerQuery": 100,"minScore": 50}
Get a ranked lead database covering your entire target market.
CRM enrichment
Export results as CSV and import directly into your CRM with complete contact data, quality scores, and Google Maps metadata.
Performance and cost
This Actor calls 4 sub-actors (Google Maps Scraper + 3 pipeline actors):
| Businesses | Estimated time | Estimated cost |
|---|---|---|
| 10 | ~2 minutes | ~$0.10 |
| 50 | ~5 minutes | ~$0.50 |
| 100 | ~10 minutes | ~$1.00 |
| 500 | ~30 minutes | ~$5.00 |
Estimates include all 4 pipeline steps. The Google Maps Scraper is the most expensive step. Skipping Email Pattern Finder or Lead Qualifier reduces cost.
Cost breakdown per step:
- Google Maps Scraper: varies by query (see pricing)
- Website Contact Scraper: ~$0.50 per 1,000 sites
- Email Pattern Finder: ~$1.00 per 1,000 domains
- B2B Lead Qualifier: ~$1.00 per 1,000 domains
- Orchestrator: minimal (no crawling, just API calls)
Tips
- Start small — test with
maxCrawledPlacesPerQuery: 5before running large queries. - Use
minScore— set to 50+ to filter out low-quality leads and reduce noise. - Skip steps for speed — if you only need contact info, set
skipEmailPatternFinderandskipLeadQualifiertotrue. - Multiple queries — you can search different locations or business types in a single run.
- Exclude no-website businesses — keep the default (
includeBusinessesWithoutWebsite: false) to only get businesses you can actually enrich.
FAQ
How does billing work?
This Actor calls 4 sub-actors as separate Apify runs. You'll see 5 runs in your dashboard: the orchestrator (minimal cost) plus Google Maps Scraper, Contact Scraper, Email Pattern Finder, and Lead Qualifier. Total cost is the sum of all runs.
How much does the Google Maps Scraper cost?
The Google Maps Scraper (compass/crawler-google-places) has its own pricing. Check their page for current rates. The enrichment pipeline adds roughly $2.50 per 1,000 businesses on top.
Can I skip enrichment steps?
Yes. Set skipEmailPatternFinder: true to skip pattern detection, or skipLeadQualifier: true to skip scoring. Fields from skipped steps will be null in the output.
What if a business has no website?
By default, businesses without websites are excluded since they can't be enriched. Set includeBusinessesWithoutWebsite: true to include them — they'll have Google Maps data only (name, address, phone, rating) with null enrichment fields.
Does this work internationally?
Yes. The Google Maps Scraper works worldwide. Set the language parameter to match your target market. Note that contact extraction and name parsing work best with English-language websites.
What if a step fails?
Step 1 (Google Maps Scraper) is required — if it fails, the run stops. Steps 2-4 are fault-tolerant — if any fails, the pipeline continues with whatever data was collected. The pipelineSteps array shows which steps completed.
Actors in this pipeline
- Google Maps Scraper — find businesses by location and category
- Website Contact Scraper — extract emails, phones, names, social links
- Email Pattern Finder — detect email formats, generate addresses
- B2B Lead Qualifier — score and rank leads by website signals
Responsible use
This Actor processes publicly available data from Google Maps and company websites. By using it, you agree to:
- Comply with all applicable laws, including GDPR, CAN-SPAM, and CCPA
- Respect each website's Terms of Service
- Use extracted data only for legitimate business purposes
- Not use this tool for unsolicited bulk email or spam
Changelog
v1.0 (2026-02-07)
- Initial release
- Orchestrates Google Maps Scraper → Website Contact Scraper → Email Pattern Finder → B2B Lead Qualifier
- Combined output with Google Maps metadata + full B2B enrichment
- Domain deduplication (multiple businesses on same domain enriched once)
- Skip toggles for Email Pattern Finder and Lead Qualifier
- Option to include businesses without websites
- Results sorted by lead score