Google Maps has listings for roughly 80% of local businesses in the US and UK. Most of them have websites. Most websites have email addresses. The gap between “Google Maps search” and “cold email list ready to send” is smaller than you think — and you don’t need Apollo or a $500/month data subscription to close it.
Here’s how to pull a targeted local B2B prospect list from Google Maps in 30 minutes (manual) or 5 minutes (automated), find emails, and have it ready to import into your outreach tool.
What Google Maps Actually Contains
Before the tactics: understand what you’re working with.
A Google Maps business listing typically includes:
- Business name
- Category (restaurant, plumber, marketing agency, etc.)
- Address
- Phone number
- Website URL
- Hours, reviews, photos
The phone is there. The website is usually there. The email is not — but the website is the bridge to the email. The domain alone is enough to run a Hunter.io lookup or find the contact manually.
Google Maps doesn’t have owner names, direct email addresses, or LinkedIn profiles. You fill those in separately, and the quality of your final list depends on how well you do that step.
The Manual Method: 100 Leads in 30 Minutes
This is the baseline. No tools required beyond a browser and a spreadsheet.
Step 1: Search with intent
Open Google Maps. Search for a category + city: “marketing agencies Chicago” or “landscaping companies Austin” or “dental clinics London.”
Zoom level matters. Google Maps shows 20 results at a time within your current map view. Zoom out and you get more results. Zoom in on specific neighborhoods for hyper-local targeting.
Step 2: Open, copy, move on
Click each result. Grab:
- Business name
- Website URL
- Phone (optional — depends on your outreach)
- Any specifics from the listing (reviews, size signals, service area)
Paste into a spreadsheet. Name, URL, phone in separate columns. Takes 15–20 seconds per listing.
At 20 results per map view, 5 views gives you 100 listings. That’s 25–35 minutes depending on how densely populated the area is and how many listings you skip (no website = skip).
Step 3: Domain to email lookup
Once you have 100 domains, open Hunter.io. Paste domains into Domain Search. Hunter returns every email pattern it’s found for that domain: info@, founder@, contact@, specific names.
Free tier: 25 searches/month. Paid: 500+/month for $49. For 100 leads in a batch, use bulk domain search if you’re on paid, or work through them 25 at a time on free.
For businesses that don’t show up in Hunter:
- Visit the website and look for a Contact page
- Check the website footer
- Search
site:domain.com emailin Google - Find the owner’s name on LinkedIn, then guess the pattern ([email protected], [email protected])
Step 4: Qualify before you build
Not every listing is a prospect. During the manual pull, skip:
- Listings with no website
- Businesses with fewer than 3 reviews (too small or just opened)
- Chains or franchises (decision-maker is corporate, not local)
- Any category that doesn’t match your ICP
Filter as you go — it’s faster than filtering 100 records after the fact.
The Automated Method: 500 Leads in 5 Minutes
The manual method has a ceiling. Once you need 500+ leads or want to target 10 cities at once, you need a scraper.
Tools that actually work:
Maps Extractor (webscraper.io, $49/month) — Chrome extension that runs alongside Google Maps. Start a search, hit extract, watch it pull names, addresses, phones, and websites from all visible results and paginate automatically. Exports to CSV. Works reliably.
Outscraper (outscraper.com) — API-based. Feed it a search query (“marketing agencies + NYC”) and it returns a CSV. Paid per search with a generous free tier for testing. Returns more fields than manual (website, phone, category, rating, review count). Good for batch runs across multiple cities.
PhantomBuster Google Maps Export — Scrapes Maps results to a spreadsheet. Works well for 200–500 records. Above that, Maps starts rate-limiting. Use delays.
What doesn’t work:
Skip the wave of “free Google Maps scrapers” on GitHub, ProductHunt, and various SaaS sites. Most of them hit Google’s anti-scraping limits after 50–100 results, return garbled or outdated data, and haven’t been maintained in 12+ months (Google Maps changes its DOM structure every few months). Any tool that promises “unlimited free Maps scraping” is either nonfunctional or will burn your IP and get your Google account flagged.
Using Google Places API directly:
This is the most reliable path at scale, and it’s not as expensive as people assume. Google Places API’s Text Search Pro endpoint returns business name, website, phone, address, and coordinates. The free credit ($200/month) covers around 125,000 lookups. For a founder running outreach against a city or two, that’s free in practice.
The catch: you need to write or run a script. If you’re comfortable with Node or Python, the API returns clean JSON. If not, Outscraper abstracts this at a markup.
Finding Emails at Scale
Once you have 500 domains in a spreadsheet, manual Hunter searches won’t cut it.
Hunter.io bulk domain search:
Hunter’s $49/month plan includes 500 searches. Upload your domain list as CSV, run bulk search, download results. Each result includes the most common email pattern for that domain — which is what you want. You’re after the owner or marketing lead, not a generic info@ address.
Hunter’s confidence score matters. Below 70%: verify before sending. Sending to risky emails inflates your bounce rate and damages your sender reputation.
Apollo.io free tier:
Apollo’s free plan gives 10 email credits/month — not useful at scale. But the company search is worth using to enrich your list with person names, titles, and LinkedIn. Pull the domain into Apollo, find the owner or relevant contact, then use that name plus Hunter’s domain pattern to guess the email even if Apollo doesn’t surface it directly.
Manual fallback:
For your highest-value prospects — large businesses, perfect ICP fit — do it manually. Visit the site, find the owner name, cross-reference LinkedIn, and either find the email directly or use a pattern from Hunter’s domain data.
The goal is a clean, verified email for each lead before it enters your sequence. Every unverified email that bounces damages your sender reputation cumulatively. Recovering from a high bounce rate is harder than building it right the first time.
Structuring Your List for Cold Outreach
A raw CSV with names and emails is not a lead list. A list ready for outreach includes:
| Column | Source | Example |
|---|---|---|
| Business name | Maps | Thornwood Marketing |
| Website | Maps | thornwoodmktg.com |
| City | Maps | Chicago, IL |
| Category | Maps | Marketing Agency |
| Contact name | Manual / Apollo | Sara Thompson |
| Hunter / Manual | [email protected] | |
| Note | Manual | 47 reviews, 8 years open |
The Note column is for personalization. One specific detail — a recent Google review, a product mentioned on their site, a local award — makes a cold email read less cold. You don’t need this for every lead, but for the top 20% of your list it’s worth 2 extra minutes.
PitchGale’s lead discovery pipeline handles the Google Places scrape, web enrichment, and email verification steps automatically. If you’re pre-tool or just validating your ICP, this manual process builds the same list.
What to Do With 500 Leads
Don’t blast 500 emails on day one. That’s how sender reputations die.
Start with 20–30 per day, even with a warmed domain. Local B2B has higher personalization expectations than SaaS — a generic email to a Chicago marketing agency reads as lazy, and the owner will mark it spam.
Segment by category first. A plumbing company and a marketing agency have completely different pain points. Write one core email, then vary the first sentence and call to action by segment. Same structure, different context.
Track reply rate per category. After 100 sends, you’ll know which segments are responding. Double down there, pause the dead ones.
500 leads at 30% open rate and 5% reply rate is 25 conversations. For local B2B, that’s a solid two weeks of pipeline.
The Realistic Time Budget
| Method | Leads | Time | Tools |
|---|---|---|---|
| Manual Maps + Hunter | 100 | 45–60 min | Browser + Hunter free |
| Maps Extractor + Hunter | 500 | 20–30 min | Maps Extractor ($49) + Hunter ($49) |
| Outscraper + Hunter bulk | 1000+ | 15–20 min | Outscraper + Hunter ($49) |
| Google Places API + script | Unlimited | Setup: 2 hrs / Run: 5 min | API key (free tier) |
Start with the manual method. It forces you to look at each listing and makes you better at recognizing a good prospect. Once you know what you’re looking for, automate it.
Google Maps is the most underused B2B prospecting tool for local outreach. The data is fresh, it’s specific, and most of your competitors are on LinkedIn — where everyone goes and nobody responds.