Marketing

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.

By Makeinfo Team
#lead-generation #google-maps-scraper #local-business-leads #email-enrichment #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:

  1. Search “plumbers in Denver” on Google Maps
  2. Click each business listing
  3. Copy name, address, phone, and website into a spreadsheet
  4. Open each website manually to find an email address
  5. 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

BeforeAfter
6 hours manual research20-minute run
Name + phone onlyName, phone, email, health score
Unsorted listSorted by website health for prioritization
Duplicates includedDeduplicated
Static listRepeatable — 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:

  1. Create a queue of city + category pairs in a configuration sheet
  2. Run the scraper sequentially across all pairs
  3. Combine results into one master sheet
  4. 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 →