Google Maps Lead Scraper
Targeted lead scraper for local service businesses.

Outbound sales for local service businesses needs targeted lists. HVAC contractors in Phoenix with 20-300 Google reviews. Medspas in Scottsdale open more than three years. Plumbers in Mesa with a website but no blog.
Apollo, Outscraper, and the other structured-data vendors charge per lead and miss half the long tail. Google Maps has all of it, for free, if you can get it out.
Google Maps rate-limits aggressive scraping and will serve stale or sparse results if you look like a bot.
Maps results are paginated and lazy-loaded, which breaks naive scrapers.
Results include chain locations, duplicates, and closed businesses that need filtering.
Phone numbers and websites are behind a second click per result.
Playwright-driven with human-like scroll, randomized delays, and session rotation. Each search query (category + geography) triggers an exhaustive scroll to the end of results, then a per-result detail pull for phone, website, review count, and rating.
Deduplication runs on normalized business name plus address. Filters strip chains (based on a known-chains list) and closed/temporarily-closed results.
Output is a structured CSV with business name, owner name where available, phone, website, review count, star rating, and address. Drops straight into Apollo for email enrichment or into a dialer for cold calls.
Playwright · Python · pandas · asyncio · proxy rotation · CSV export
Built the initial lead list for BasisWeb cold outreach. 51 verified Phoenix-metro HVAC and plumbing leads in the first batch, feeding the cold email and call pipelines that followed.