How to Find and Enrich Local Business Leads from Google Maps (Without Manual Copy-Pasting)
A practical guide to scraping Google Maps by city and category, then automatically enriching each business with verified emails and website health scores — all inside Google Sheets.
Google Maps is one of the most underused lead generation tools in B2B. For anyone selling to local businesses — contractors, agencies targeting SMBs, SaaS products for service businesses — it’s a category-filtered, geography-specific directory that updates itself.
The problem is getting the data out in a usable form.
The Manual Process (And Why It Doesn’t Scale)
Most teams currently do this by hand:
- Search “plumbers in Denver” on Google Maps
- Click each business listing
- Copy name, address, phone, and website into a spreadsheet
- Open each website manually to find an email address
- Repeat for 50, 100, or 500 businesses
At that speed, building a 200-business lead list takes the better part of a week. And the list is already outdated by the time you’ve finished building it.
What a Scraping + Enrichment Pipeline Does Instead
A Google Maps scraping pipeline automates every step:
Step 1: Maps Extraction Enter a search query (business type + location). The scraper pulls every Maps listing matching the query: name, address, phone number, rating, review count, and website URL.
Step 2: Website Email Discovery Each business website is crawled automatically. Contact email addresses are extracted from contact pages, footers, and header sections.
Step 3: Website Health Scoring A freshness score is calculated for each website — checking when it was last updated, whether it has modern infrastructure, and whether it’s actively maintained. This lets you prioritize leads with active, credible web presences.
Step 4: Deduplication Duplicate entries (same business appearing multiple times) are removed based on name, phone, and address matching.
Step 5: Clean Sheet Output The final list is written to a Google Sheet with columns for: business name, address, phone, email, rating, review count, website health score, and website URL.
What You Get vs. What You Started With
| Before | After |
|---|---|
| 6 hours manual research | 20-minute run |
| Name + phone only | Name, phone, email, health score |
| Unsorted list | Sorted by website health for prioritization |
| Duplicates included | Deduplicated |
| Static list | Repeatable — run weekly for fresh leads |
How to Prioritize the Output
Not all local business leads are equal. Two prioritization signals from the enrichment output:
Website health score: A high score means the business is actively maintaining their digital presence — they care about their online footprint and are more likely to be receptive to outreach about digital services. A low score means they may need help updating their presence — or that no one there manages digital at all.
Review count and rating: High review count means an active business. Low review count on a long-established business may indicate a passive operator. For service-oriented outreach, high-review businesses with active operations are usually the best targets.
Email found vs. not found: Businesses that publish a contact email are more digitally engaged and more likely to respond to email outreach. Businesses without a published email are likely phone-first — adjust your outreach channel accordingly.
Which Business Types Work Best
This approach works for any local B2B category, but it’s most effective when:
- The business type is likely to have a website (vs. purely word-of-mouth businesses)
- The business category has high volume in your target geography (100+ results per search)
- The lead value per conversion is high enough to justify outreach time per lead
High-performing categories: HVAC, plumbing, electrical, landscaping, roofing, dental practices, accounting firms, law firms, real estate offices, marketing agencies, fitness studios.
Running Multiple Cities
A single scrape query covers one city + category combination. For multi-city prospecting:
- Create a queue of city + category pairs in a configuration sheet
- Run the scraper sequentially across all pairs
- Combine results into one master sheet
- Deduplicate across city boundaries (some businesses serve multiple metro areas and may appear in multiple searches)
A 10-city, 3-category sweep — 30 queries — typically produces 500–3,000 leads depending on business density in those markets.
A Note on Google Maps API Costs
Google Maps Places API is required for the scraper. The pricing model:
- First $200 of monthly API usage is free
- Places API calls cost approximately $0.017 per call
- Each business result costs roughly one API call
- 1,000 businesses ≈ $17 in API costs
For most prospecting runs, a single month’s free tier covers the volume. High-frequency weekly scraping at scale will exceed the free tier — budget accordingly.
Run your first local business lead scrape → Google Maps Local Business Enrichment Template →