Search Google Maps for local businesses by keyword and location. One row per place: name, category, address, phone numbers, website, ratings, opening hours, place ID. Optional website contacts: emails, social media, WhatsApp. Filter leads free: no website, low rated, unclaimed, new businesses.
Fixed: is_claimed was true for every place, so the unclaimed lead flag never appeared. It is now read from Google's own "Claim this business" link (in tests on Shibuya restaurants, 4–14% of listings are unclaimed).
New free filter isClaimed (any / yes / no): keep only unclaimed listings — the ones Google still offers to "Claim this business" — or only claimed ones. Filtered places are not charged.
Listing rewritten for AI agents and MCP clients: the inputs an agent needs first (contacts, email-only, website, rating, review and claimed filters, monitoring) now lead the input schema, every input says what to pass and what it costs, and the README opens with a request-to-input table.
1.0 — 2026-09-21
First release.
Google Maps places as one flat row each: ids and link, name and categories, address in parts, coordinates and plus code, phone in local and international format, website and domain, rating, review count and the per-star histogram, claimed and closed status, opening hours, description, attributes, booking link, cover photo and photo count, timezone.
Searches × locations, full phrases, circles, bounding boxes and polygons, pasted search URLs, place URLs, short links, place ids, feature ids and CIDs. Input saved for other Google Maps actors pastes unchanged (searchStringsArray, locationQuery, maxCrawledPlacesPerSearch, countryCode).
Free filters applied before billing: rating, review count, has website, has phone, categories, name, closed, inside the area, skip-lists by id or by dataset, only places with an email. The status row counts what each filter removed.
Contact enrichment from the place's own website (home page plus contact, about, team and imprint pages): emails with their source page, phone numbers, Facebook, Instagram, LinkedIn, X, YouTube, TikTok, WhatsApp. contact-found is charged only when something was found. Measured on 200 places: a contact for 51%, an email for 34%.
Full coverage: the area is split into a grid to go past the 120–220 places a single query lists; every place is delivered and billed once.
Only-new monitoring with a monitor key: later runs deliver and bill only places not delivered before.
A location Google Maps does not know ends as a successful, free run with an explanation instead of another town's places; a small town that answers empty is searched again around its looked-up centre.
Answers that arrive with review counts stripped (about half of them) are asked again, so review_count is filled on every row.
Charged equals delivered: rows are charged first and only the charged rows are written; the spending limit and an abort both stop billing and delivery at the same moment.