I wanted to share a technical problem we ran into while building our scraper and how we solved it.
If you ever tried scraping Google Maps at scale, you probably hit the 200 result cap. Search for any dense niche in a big city, and Google only gives you around 120-200 results even if there are thousands of businesses. Most people end up pitching the same surface 200 places while 80% of businesses never get seen.
We ended up tackling this mathematically:
Micro-grid subdivision: Instead of searching the whole city at once, we split the coordinates into smaller tiles and zoom all the way down to street level per tile. Because each small tile behaves as its own local search, Google returns up to 200 results per micro-zone instead of capping the whole city.
Skipping non-commercial terrain: Running hundreds of tiles wastes a ton of time over oceans, lakes, and forests. We added spatial checks to auto-skip grid cells that are mostly water/wilderness.
Background website crawling: Phone numbers from maps are cold. So we set up crawlers to check the business websites directly for emails and social links.
Connecting to Claude via MCP: Instead of clicking around the UI every time, we implemented an MCP server so we can just prompt Claude or ChatGPT to trigger the search and parse the data right in the chat.
I'm the founder of Maps Scraper Pro (Data Sniper). Happy to answer any questions about the scraping logic, handling Google rate limits, or how we wired up the MCP protocol!