Marcus sells a scheduling app to dental practices. His first “lead list” was 60 clinics he found by scrolling Google Maps on a Sunday afternoon. His second was 34,000 practices with a detected email address, pulled in under ten minutes.
Same source. Wildly different outcome. The difference wasn’t effort; it was process.
This is that process. Five steps, no fluff, and a few numbers along the way so you know what to expect before you start.
Table of Contents
Step 1: Pick a category you can actually sell to
The temptation is to scrape everything. Resist it.
A Google Maps scrape works best when the category maps cleanly to a problem you solve. “Dentists” is a category. “Small businesses” is not. Google Maps organises the world into more than 4,000 business types, and the good news is that most of them are oddly specific: pediatric dentist, cosmetic dentist, emergency dental service.
To give you a sense of scale, here’s what a few common US categories look like in Scrap.io’s index right now:
- Restaurants: 670,027 listings
- Auto repair shops: 397,020
- Dentists: 346,084
- Real estate agencies: 282,282
- Hair salons: 224,488
- Plumbers: 76,209
Mon conseil, as the French say: start narrower than feels comfortable. A tight category with a sharp message beats a broad one with a vague pitch every time.
Step 2: Choose a territory that matches your sales motion
If you sell by phone across the whole country, scrape the whole country. If you do in-person demos, scrape a 50 km radius around your office. The territory should reflect how you actually close deals, not how ambitious you feel.
Most tools let you search by city. Fewer let you search by county or state. Only a handful can return an entire country in one job. Draw the line where your sales team stops.
Step 3: Filter for buying signals (this is the whole game)
Here’s what nobody says loudly enough: the value of scraping Google Maps for leads is not in the extraction. It’s in the filters.
Every listing carries signals. Rating and review count tell you about reputation. The presence or absence of a website tells you about digital maturity. Whether the website runs an ad pixel tells you whether they already spend on marketing. Each of these is a filter, and each filter is a segment with its own pitch.
Sébastien Tissier, co-founder of Scrap.io, puts numbers on it: “Take US plumbers. We count 76,209 of them. Only 44,783 have a website. 28,287 have a detectable email. And just 18,284 run an advertising pixel on that website. Those are four completely different audiences. The 31,000 plumbers with no website are a web agency’s dream. The 18,000 running ads are already spending money and are far more likely to buy a tool that makes that spend work harder.”
A few filter combinations that consistently perform well:
- Website: no → for web design, hosting, and “get online” services.
- Rating below 4.0 + more than 50 reviews → for reputation management and review software.
- Email detected + ad pixel present → for marketing SaaS, analytics, and attribution tools.
- Listed for the first time in the last 90 days → for anything a brand-new business needs: POS, insurance, accounting, signage.
- Claimed listing: no → for local SEO agencies (an unclaimed listing is an open invitation).
One more thing: apply filters before you export, not after. Filtering a 200,000-row spreadsheet in Excel is a hobby. Filtering at the source is a workflow.
Step 4: Export the right columns, not all of them
A good scrape returns 30+ data points per business. You will use about eight. For outbound, the ones that matter are: business name, category, city, phone (and whether it’s a mobile or landline), website, email, rating, and review count.
Emails deserve a word. On a listing, they don’t exist; scrapers find them by crawling the business’s website. Better tools classify what they find: a generic contact@ address, a sales@ address, or an individual’s name attached to a personal inbox. If you’re writing cold emails, the individual one is gold, the generic one is fine, and the “info@” one is where messages go to die.
If you want to skip the spreadsheet altogether, platforms such as Scrap.io expose the same search through an API, so filtered leads can land directly in your CRM or a Make/n8n scenario without a human touching a file.
Step 5: Turn rows into conversations
You now have a list. Congratulations, you’re exactly where 90% of people stop.
The rows are only worth something if the message references what you know about the business. And you know a lot: their rating, their review count, whether their website is responsive, which CMS it runs on, whether they have an Instagram account. Use it.
Compare these two openers:
“Hi, we help dental practices get more patients.”
“Hi Dr. Patel, I noticed Riverside Dental has 212 reviews and a 4.7 rating but no online booking on your site. Practices in that position usually lose 10 to 15 appointments a month to phone tag. Would a 15-minute look be worth your time?”
The second one was written from a scraped row. Nothing in it required a human to research anything.
A practical sequence that works for local B2B:
- Email 1: observation about their listing + one specific outcome.
- Day 3: short follow-up with a proof point (a similar business, a number).
- Day 7: phone call, referencing the emails.
- Day 14: last email, low pressure, leave the door open.
Common mistakes (so you can skip them)
Scraping once and reusing the list for a year. Businesses close, move, and change hands constantly. Re-run the scrape before each campaign. If your tool re-validates data at export time, this is free; if it sells you a static database, it’s impossible.
Ignoring the phone type. Sending SMS to landlines is a fast way to burn budget. Outside North America, good scrapers classify each number as fixed-line or mobile.
Emailing generic inboxes with a personal-sounding pitch. “Hi there” to info@ is fine. “Hi John” to info@ is weird.
Forgetting compliance. Business data is public and legal to collect; contacting people still falls under GDPR, CCPA, CAN-SPAM, and their cousins. Keep an unsubscribe path, honour it, and don’t scrape personal data you don’t need.
A realistic expectation
Let’s finish with math, because hope is not a strategy.
Say you scrape 10,000 US dentists. Roughly 55% have a website, and roughly a third have a detectable email; call it 3,300 emailable practices. A decent cold email campaign to a well-filtered local list sees 2 to 5% positive replies. That’s 66 to 165 conversations from one afternoon of setup.
Marcus, from the intro, booked 41 demos from his first properly filtered scrape. His pitch didn’t change. His list did.
FAQ
Is it legal to scrape Google Maps for leads?
Collecting publicly displayed business information is legal in most jurisdictions. How you contact people afterwards is governed by privacy and anti-spam laws, which you must follow regardless of where the data came from.
How many leads can I expect from one city?
It depends on the category. A mid-sized US city typically has a few hundred dentists and a few thousand restaurants. A state has tens of thousands.
Should I scrape Apple Maps and Bing Maps too?
If your tool supports it, yes: some businesses maintain a listing on one platform but not the others, and merging sources fills gaps.
