Set the inputs
A business keyword, a city or region, and a search radius (5, 10, or 20 km). "Whole region" mode also builds a grid of overlapping cells instead of one search.
MapLeadScout runs a keyword-and-location search against Google Maps from inside your own Chrome browser, then normalizes, deduplicates, and exports the businesses it finds. It is a browser tool today, not a hosted API — the sample below shows the exact shape of the output before you install anything.
Last reviewed September 4, 2026 · Written and reviewed by MapLeadScout Team
Austin, TX · Dental clinic
10 km · Illustrative records · no live search is being run
Brightline Dental · Sample
Austin, United States
Northstar Studio · Sample
London, United Kingdom
Arunika Beauty · Sample
Jakarta, Indonesia
A business keyword, a city or region, and a search radius (5, 10, or 20 km). "Whole region" mode also builds a grid of overlapping cells instead of one search.
Each grid cell runs its own Maps search. This is what gets past Google Maps’ roughly 120-results-per-search cap for a dense area or a common keyword.
Phone numbers are kept as text (no scientific notation) and standardized to the international format for the country named in the business’s address — Indonesia’s +62 when none is named — and public emails or social links found on a business’s own website are attached when present.
Records are matched by Google place ID first, then by normalized phone and canonical Maps URL. What is left exports to Excel (.xlsx) or CSV, or syncs to a team database when that is turned on.
This is the same column set the API accepts and the database stores — see api/db/migrations in the MapLeadScout repository for the exact schema.
| business_name | Required. The name shown on the Maps listing. |
| category | The primary category Maps assigns the listing, e.g. "Dental clinic". |
| phone | Kept as text. Standardized to +62… when the sanitizer setting is on. |
| formatted_wa_link | A wa.me link, only when the phone is a mobile number. |
| website | The URL the listing links to, when one is published. |
| A public email found on the business’s own website, when present. | |
| rating | The average rating shown on Maps at capture time, 0–5. |
| review_count | The review count shown on Maps at capture time. |
| address | The formatted address shown on the listing. |
| opening_hours | The hours text shown on the listing, when Maps publishes one. |
| latitude / longitude | Coordinates from the listing, when Maps exposes them. |
| maps_url | A canonical, stable Maps URL — the field a database upsert keys on. |
| captured_at | When this specific record was collected. |
A sales team runs one search per target city and category, then filters the export by contact-ready phone before the first outreach pass.
Limitation: coverage is only as good as what businesses have listed on Maps in that area.
An agency keeps one saved-leads list per client browser profile today; per-workspace separation on the server is on the roadmap — see the Platform section on the home page.
Limitation: without server-side workspaces, keeping client lists apart is a manual/browser-profile discipline right now.
A practitioner pulls every competitor in a category and radius to check listing completeness — rating, hours, website presence — rather than for outreach.
Limitation: rating and review counts are a snapshot at capture time, not a live feed.
No. MapLeadScout automates a real Chrome tab against the public Google Maps website; it does not call the Places API and does not carry an API key or usage quota. If you need guaranteed uptime, an official SLA, or very high volume, Google’s own Places API is the intended path — see the FAQ on the home page for the tradeoff.
A single dense city district is usually enough for a 10 km "visible area only" search; use "whole region" grid mode for anything wider than that, so the cell size stays small enough to stay under Google’s per-search results cap.
The job itself can run unattended, but the current engine still needs Chrome open and the Maps tab active — it is not a cloud job yet. Human-like speed in Settings makes long runs less likely to trigger a verification challenge.
It is written to local extension storage immediately, deduplicated against what is already saved, and stays there until you export a file or turn on database sync — see the privacy notice for exactly what sync sends and to where.
Related pages