← All Growth Drops
·9 min read

Google Maps Lead Generation: Apollo Misses Plumbers. Maps Does Not.

lead-generationscrapingoutbound

Watch the full video: Google Maps Lead Generation: Apollo Misses Plumbers. Maps Does Not.

Apollo and ZoomInfo miss plumbers. They miss dentists, HVAC companies, funeral homes, and every other local business that does not have a LinkedIn presence. Google Maps does not miss them. Maps is the local outbound database.

If your ICP is local services, stop paying for B2B databases that were never built for your market.

Why B2B Databases Fail for Local

"Apollo and ZoomInfo miss plumbers, dentists, HVAC, funeral homes."

Maps vs Apollo post

A plumber in Paramus, New Jersey does not have a LinkedIn company page. They do not have 50 employees on LinkedIn. They do not show up in Apollo's headcount filters. They do have a Google Business Profile with a phone number, address, reviews, and sometimes a website.

Maps has them. Apollo does not.

The CES Scrape Rule

We use a simple rule for every Maps scrape: CES 3565.

"CES scrape rule — 7462928895928029184-YKSF."

CES scrape rule post

CES 3565 is our internal benchmark for replies per 1,000 sends. Every Maps scrape campaign gets measured against it. If the scrape + enrichment + copy pipeline cannot beat CES 3565, we kill it before scaling.

This is the same benchmark from our Claude Code lead generation loop. Maps is the list source. Claude Code is the campaign engine. CES 3565 is the gate.

The Economics: $19/Category, 42,734 Zips

"$19/category, 42,734 zips — framed as June 29 claim."

Maps economics post

We scrape Google Maps by category and zip code. One category (e.g., "plumber") across all US zips costs roughly $19 through Scraper Tech on RapidAPI. There are 42,734 zip codes in the US. You do not need all of them on day one. Start with your target metros.

The math: $19 for ~5,000-15,000 businesses per category per metro area. Compare that to a ZoomInfo seat at $15,000/year that does not even have the data.

Funeral Home Aliases

Category naming is harder than it looks. "Funeral home" returns different results than "mortuary" or "cremation services."

"Funeral home aliases — mortuary, cremation services, memorial chapel."

Funeral home aliases post

We maintain an alias list per category. When we scrape "funeral home," we also scrape "mortuary," "cremation services," and "memorial chapel." Dedupe by phone number and address.

Build the alias list once. Reuse it on every scrape.

Six-Tool Owner Bake-Off: HTML2Text + Gemma Wins

Finding the business on Maps is step one. Finding the owner is step two. We ran a bake-off of six tools for extracting owner names from local business websites:

  1. Raw HTML scrape + GPT-4o
  2. Raw HTML scrape + Claude
  3. HTML2Text + Gemma (winner)
  4. Firecrawl + GPT-4o
  5. browser-use + Claude
  6. Manual research (baseline)

"Six-tool owner bake-off — HTML2Text + Gemma winner."

Owner bake-off post

HTML2Text + Gemma won on accuracy and cost. Convert the website HTML to clean text, feed it to Gemma on a Vast.ai GPU ($0.69/hour), ask "who is the owner?" Done.

For the full Claude Code pipeline (scrape → owner → email), see Inside Our Claude Code Google Maps Lead System.

info@ Is Owner, Spouse, or Office Manager

Once you have the domain, the email waterfall starts. But local businesses are messy.

"info@ is owner, spouse, or office manager."

info@ post

info@ on a plumber's website might be the owner checking it on their phone. It might be the spouse. It might be an office manager who has worked there 15 years. All three are valid targets for local outbound.

Do not skip info@ because it is "generic." On local businesses, generic emails are often the decision maker.

Our email waterfall: ProspeoLeadMagicSmartlead Email Finder. Same order as the Clay tutorial function.

Pair With Headcount Growth for Local

Maps gives you the list. Headcount growth gives you the filter. For local businesses where LinkedIn data is thin, Maps is the primary source and headcount growth is a bonus signal when available.

See How to Filter Leads for Cold Email for the 1% growth filter that lifted replies 30-50%.

FAQ

What scraper do you use? Scraper Tech Google Maps API on RapidAPI. Alternatives: Serper.dev, Apify, Outscraper. Pick one and standardize.

How do you dedupe across alias scrapes? Phone number + address. If both match, it is the same business.

What about businesses with no website? Skip them for email outbound. Call the phone number or run a direct mail campaign. No website = no email waterfall.

How many emails do you find per 10,000 businesses? Roughly 3,000-4,000 with our HTML2Text + Gemma + Prospeo pipeline. Your mileage varies by category.

What I Would Do This Week

  1. Pick one local category (plumber, dentist, HVAC)
  2. Scrape one metro area on Maps (~$19)
  3. Run HTML2Text + Gemma for owner names
  4. Waterfall emails through Prospeo
  5. Send 500 rows with the 5-check copy framework
  6. Measure against CES 3565

Apply for a free test campaign at coldoutbound.com.

Key Takeaways

  • Apollo and ZoomInfo miss local businesses — Maps is the database for plumbers, dentists, HVAC, funeral homes
  • $19/category across US zips — fraction of the cost of B2B database seats
  • Category aliases matter — "funeral home" ≠ "mortuary" ≠ "cremation services"
  • HTML2Text + Gemma won our six-tool owner bake-off
  • info@ is often the decision maker on local businesses
  • Measure every scrape against CES 3565 — kill losers before scaling
  • Full pipeline: Claude Code Google Maps Lead System

Want results like these for your business?

Apply for a free test campaign and see positive responses before you commit.

Apply for Free Test →