Picture an assistant walking down every street in a city. It walks into every gym, clinic and salon, and comes back with a card for each one: name, phone number, website, rating. The Google Maps Scraper Kit gets Claude to do a version of that on your own computer, and turns a city into a spreadsheet you can actually work from.
The rest of this guide covers the setup, the safety rules, the best ways to use a scrape, and how to turn a list into clients. Safety comes before the money, on purpose.
01. What the Kit Is
The short answer. The Google Maps Scraper Kit is a free, MIT-licensed toolkit that runs a Google Maps scraper on your own computer and lets Claude drive it. Name a business type and a city, gyms in Miami, and it returns a lead list: name, phone, email, website, category, address, rating and review count. It wraps an existing scraper by Georgios Komninos, and it is not a social media scraper.
The kit's CREDITS file says the wrapper pulls the official Docker image, doesn't modify the upstream code, and adds a Docker Compose setup, helper scripts, docs and a Claude skill. All scraping capability comes from upstream, gosom/google-maps-scraper by Georgios Komninos, MIT licensed since 2023. The wrapper itself is published under the account Mahanaicoach, also MIT licensed. On September 19, 2026, GitHub showed it at 632 stars, 108 forks, created June 21, 2026, one open issue, not archived. Those numbers move, they show whether it's maintained, not proof it works.
| Piece | Who provides it |
|---|---|
| Scraping engine and field extraction | Upstream: gosom/google-maps-scraper, by Georgios Komninos |
| One-command Docker setup | The kit |
| Ready-to-run scripts, scrape.sh and scrape.py | The kit |
| A Claude skill and four slash commands | The kit |
| A trimmed lead list as the default output | The kit's scripts, from upstream's ~34 raw fields |
Sources: the kit's README, LICENSE and CREDITS.md · gosom/google-maps-scraper
It is not a social media scraper, and the README says so bluntly: it cannot touch Instagram, TikTok or YouTube. It reads Google Maps listings, and if you ask, it looks for social links on each business's own website. Claude isn't doing the scraping either, it works as an AI agent on top: it checks the scraper is running, looks up coordinates, starts the job, waits, downloads the file and shows you a table.
One claim worth labelling as the author's own: a chat AI fetching maps.google.com directly hits a consent wall and returns close to zero structured results, while the kit returns dozens to hundreds of clean rows per query. I have not repeated that test myself.
02. Set It Up in Three Steps
You need Docker Desktop. Claude Code and git are optional. Clone the original repo, not a fork, since not all of the 108 forks are documented.
Terminal · the three steps
git clone https://github.com/Mahanaicoach/google-maps-scraper-kit.git
cd google-maps-scraper-kit
# Step 1: start the scraper (Docker Desktop must be running)
docker compose up -d
# Step 2: check it is alive. It should print a JSON list, probably empty: []
curl http://localhost:8080/api/v1/jobs
# Step 3: run a first scrape. Arguments: keyword, latitude, longitude, depth
./scripts/scrape.sh "coffee shops in Austin TX" 30.2672 -97.7431 5
Step 1 starts the scraper at http://localhost:8080. Step 2 is a health check. Step 3 runs a real query, depth 5 to start. Skip the latitude and longitude if you want, scrape.py can geocode a city name for you.
Scrape With Claude
Open the folder in Claude Code and ask in plain English, for example "Scrape gyms in Miami and give me phones + websites." Behind the /scrape command, Claude checks the scraper is running, looks up coordinates, asks about social profiles, launches the job, waits, downloads a CSV and shows you a table.
The Four Slash Commands
| Command | What it does |
|---|---|
/scrape <business> in <city, ST> [depth] | Runs one scrape, shows a clean table |
/scrape-batch <keywords-file> [--city "City, ST"] | Runs many queries in one job |
/scrape-setup | Starts the scraper, runs a health check |
/scrape-jobs [list | delete <id>] | Lists or deletes jobs |
The Scripts, if You Skip Claude
scrape.sh (bash) handles one keyword. scrape.py (Python, standard library only) handles a single query, a batch file, and city-name geocoding. Add --full for every field, --socials for social profiles.
Terminal · scrape.py with a city name
python3 scripts/scrape.py "cafes in Austin TX" --city "Austin, TX" --depth 5
What You Get, and What It Costs
Default output: name, phone, email, website, category, address, rating, review count. Upstream captures about 34 raw fields, the kit strips the noise unless you add --full. --socials scans each business's own website for Instagram, Facebook and LinkedIn, in plain code, at zero AI token cost per the README, slower and partial. Email extraction is slower still, and the docs disagree on whether it's on by default, check the --no-email switch if a run drags. Both the kit and upstream are MIT licensed, no fee either way. If a site blocks a plain fetch, my Bright Data CLI guide covers that case.
Using It Outside the US
Every example in the docs is a US city. The README never mentions an Indian city, and I have not run the kit on one. Run one query at depth 5 for your city first, open the CSV, and check the results are really in your city before a bigger run.
03. Stay Safe First
Scraping Google Maps conflicts with Google's terms, and the kit's own README says so. I'm not a lawyer, and this is not legal advice. The Maps Platform terms, section 3.2.3(a), "No Scraping", say the customer will not export, extract, or otherwise scrape Google Maps Content for use outside the Services. The practical risk the README describes is a temporary block on your IP address, not a banned Google account, usually clearing in minutes to hours, with no published hard threshold.
- Run one job at a time.
- Start at depth 5, raise it only when you need to.
- Avoid big jobs back to back unless you use proxies.
- Add proxies (socks5, socks5h, http, https) for large or repeated runs.
- Treat every row as a lead to verify, and don't resell raw Google data, both from the kit's skill file.
The scraper binds to 127.0.0.1 only, so other devices on your network can't reach it. Claude's own rule is "warn, don't block": it flags the risk, suggests proxies, then runs a large scrape anyway, refusing only clearly abusive use. The tool won't stop you. You have to.
Scraped phone numbers and emails can be personal data. In India, the DPDP Act's Rules were notified November 13, 2025, but the main business duties, notice and consent, don't start until May 2027, per law firm AZB's summary, so build the habit now. TRAI's rules on commercial calls and texts apply today, under the Telecom Commercial Communications Customer Preference Regulations, amended February 12, 2025. GDPR and CAN-SPAM apply if you contact people in the EU or US.
What I'd do: one-to-one messages, from my own name, to a business contact, with an easy way to say no. No bulk blasts. Keep the file on your own machine, delete what you don't use, never sell it.
Sources: Google Maps Platform terms · the kit's skill file · AZB on the DPDP rollout · PIB, DPDP Rules notified · MeitY, the DPDP Act · TRAI, unsolicited commercial communication · TRAI, Second Amendment 2025 · WhatsApp Business Messaging Policy
04. The Best Ways to Use It
A list is not a business. Here are eight ways to turn a scrape into paid work, ranked from safest to most speculative, each with the fields that make it work.
- Sell one narrow automation to one niche in one city. Sourced, Leads Sniper. Fields: category, city. Pick a specific vertical, not "local businesses" everywhere. Watch out: a wide keyword list dilutes your pitch as much as your CSV.
- Missed-call and booking automation for phone-first businesses. Sourced, one vendor's US claims. Fields: phone, category. GrowwStacks markets AI receptionists to this exact segment, its numbers are US marketing claims, not a benchmark for you. Offer: catch the call that goes unanswered, book the slot.
- Reputation and review-reply offers for ratings under 4.0 with many reviews. Sourced, Leads Sniper. Fields: rating, review count. Offer: draft replies for the owner to approve. Watch out: read the reviews first, an old dip differs from a recent slide.
- Website or booking offers for listings with no website. Sourced, Leads Sniper. Fields: website, blank. Offer: a booking link or a one-page site. Watch out: no website can mean the owner chose that on purpose.
- Local SEO audits for listings under 20 reviews. Sourced, Leads Sniper. Fields: review count. Offer: a short audit on visibility versus a nearby competitor. Watch out: low reviews can just mean a new business.
- Market and competitor mapping before you pick a niche or city. Idea. Fields: the full CSV across an area. One broad scrape shows which niches are crowded and which are thin. Watch out: keep it to one pass and go slow.
- Partnership and referral lists. Idea. Fields: category, socials. Businesses serving the same customer without competing, a gym and a physio, can send each other work. Watch out: this needs a real conversation, not a cold pitch.
- Score and draft in one session with Claude. Sourced, per the X posts in section 07. Give Claude the CSV, ask it to rank prospects and draft an opener for each. Watch out: an AI score is still a guess, check the top few by hand.
Read the Spreadsheet for Signals
Three rules of thumb from Leads Sniper, using only columns the kit returns. Prompts to look closer, not verdicts.
| Signal in your CSV | What it may suggest | Where the idea comes from |
|---|---|---|
| Under 20 reviews | A new or quiet business, low visibility | Leads Sniper |
| Rating under 4.0 | A possible reputation problem | Leads Sniper |
| No website | A web or booking opportunity | Leads Sniper, booking angle is my read |
| Phone listed | Test how the phone is handled after hours | GrowwStacks |
| Email present | A written route for a first message | My read |
| Socials found | Where the business is active | My read |
| Many reviews, good rating | A busy business, many enquiries | My read |
Under 20 reviews can also mean a new business. No website can mean the owner doesn't want one. Check by hand before you pitch.
Let Claude Build the Shortlist
Give Claude the CSV and ask it to rank, using only what's in the file.
Prompt · paste into Claude with your CSV attached
Read the attached CSV of [niche] businesses in [city]. The columns are name, phone, email, website, category, address, rating and review count. Shortlist the best 15 prospects for one offer: [one offer, for example missed-call handling]. Use only what is in the CSV, do not guess anything about a business. For each one give the name, one line on why it made the list quoting the exact fields (for example: rating 3.8, 14 reviews, no website), and one thing to check by hand before contact. Flag any row that looks like a duplicate, a different category, or a chain rather than an independent business.
Claude can only reason over what's in the file. If it says a business "seems busy on weekends," it made that up.
Source for the qualifier rules and the niche advice: Leads Sniper, "How Agencies Use Google Maps Scrapers to Get Clients" (vendor blog, June 16, 2026)
05. Turn a List Into Clients
Send something small and true before you ask for a meeting, follow up a few times, ask good questions, and quote one setup fee plus one monthly fee.
The Offer, by Niche
| Niche | Look for | One automation to offer |
|---|---|---|
| Real estate | Few reviews, thin website | Fast follow-up on new enquiries, with a booking |
| Clinics | Phone-led, appointment-based | Missed-call callbacks and reminders. Read the privacy guide first. |
| Solar | Independent, low reviews | Quote follow-up and site-survey booking |
| Gyms | No booking link on site | Trial-class booking and follow-up |
| Salons | Socials found, no website | Appointment booking and reminders |
| Restaurants | High reviews, rating near 4.0 | Draft review replies for owner approval |
| Law firms | Independent, phone and email listed | Intake and consultation booking. Same privacy note. |
Pick the niche you understand best, and ignore the rest until the first one works.
Send the Example, Not the Pitch
A two-line audit, or a demo built from a business's own public details, beats a pitch because it shows you did the work. My method: find the business, research it, build a demo, send it instead of pitching, from landing clients in festive season. Nothing in it is voice-specific. Write only what you actually checked.
Three Short Messages
Fill every bracket with something true. One-to-one, from your own name, with an easy way to say no.
Email · first touch
Subject: A quick idea for [Business Name]
Hi [First Name],
I found [Business Name] on Google Maps while looking at [niche] in [City]. I noticed [one thing you actually checked].
I build small automations for [niche] businesses. One that may fit is [one automation], so that [the specific problem] stops happening.
I made a short example using only your public details: [link]. Would you take a look?
If this isn't for you, tell me and I won't write again.
[Your Name], [your phone number]
DM or message · on a public business channel, or after they reply
Hi [First Name], this is [Your Name]. I came across [Business Name] while looking at [niche] in [City] and noticed [one thing you actually checked]. I made a short example of [one automation] using only your public details: [link]. Want me to send anything else, or would you rather I didn't message again?
Call opener · about twenty seconds
Hi, is that [First Name]? I'm [Your Name]. I looked at [Business Name] on Google Maps and noticed [one thing you actually checked]. I have a short example of how [one automation] could handle that. Can I send it to you on [WhatsApp or email]?
Follow Up Four Times, Then Stop
- Day one: the email, with your example.
- A few days later: a short call or message with one new observation.
- About a week later: one useful tip, no ask.
- Another week later: a polite last note, then stop.
Stop at once if anyone says no.
Three Objections
"We already have staff for that." This handles the one job they don't have time for, like the reply at 9pm. Can I show you on your own enquiries?
"I'm not sure it will sound human." Fair. Don't take my word for it, read the example first.
"We have no budget." Let's make it smaller: one automation, a small setup fee, a short first month with a clear stop.
The Discovery Call: Five Questions
- What happens today when a new enquiry comes in? Who sees it first?
- What happens to enquiries that arrive after hours, or while the phone is busy?
- How many enquiries do you get in a normal week, and what is one worth to you?
- What have you already tried, and what happened?
- Who else has to say yes, and what would make this an easy yes for them?
Write their answers down in their words. Question three gives you the two numbers your price rests on, from the owner, not from me or a vendor.
One Setup Fee, One Monthly Fee
Keep the proposal to one page: one narrow automation, one setup fee, one monthly fee, and what's in and out. I'm not giving you my numbers, your market sets yours. One reference point, clearly labelled: GrowwStacks, a vendor blog, prices an AI receptionist at about $5,000 a year, a US marketing claim, not a benchmark for India.
Your Numbers
I don't have reply or close rates to give you. Fill this in as you go.
| Stage | What to count | Your number |
|---|---|---|
| Leads scraped | Rows after removing duplicates | |
| Shortlisted | Rows that passed your checks | |
| Messaged | Contacted one-to-one | |
| Replied | Any reply, including "no" | |
| Calls booked | On your calendar | |
| Clients won | Signed and paid | |
| Reply rate | Replied ÷ messaged | |
| Call rate | Calls booked ÷ replied | |
| Close rate | Clients won ÷ calls booked |
The formula: clients = messaged x reply rate x call rate x close rate. Change one thing at a time.
06. Run It Across Several Cities
Once one city works, keep the niche, the offer and the message, and change only the city, with /scrape-batch. Same discipline: one job at a time, start small, no big runs back to back.
cities.txt · one query per line
gyms in Austin TX
gyms in Denver CO
gyms in Miami FL
Run /scrape-batch cities.txt, or add --city "City, ST". Keep the file short, add proxies before you make it long. /scrape-jobs list shows your jobs, /scrape-jobs delete <id> clears old ones. Same message across cities lets you see whether the place or the pitch is the variable.
07. What People Are Doing With It
X and LinkedIn are login-walled for my tools, so I say what I could read, not what I couldn't.
- @leoxbtt on X, in Spanish, describes the kit as a city and business type in, a clean database of names, phones, emails, websites and ratings out. I could read the start of the post through a search result.
- Aaron (@IAmAaronWill) on X describes a different setup, not this kit: every morning, three Telegram messages with leads scraped, scored, and DM openers already drafted.
- Alex Vacca (@itsalexvacca) on X has a thread titled "here's how you can scrape unlimited leads using claude." I could only see the title.
- A LinkedIn post by codewithpp, "AI-Powered Lead Generation Workflow for Google Maps." I can confirm it exists, nothing more.
The shape across all four is the same: scrape, score, draft. A machine can do all three, so none of them sets you apart. Check an AI's score by hand. The offer you chose and the message you sign your name to are what set you apart.
A scraper can hand you a list of dentists. It cannot tell one of them why you deserve a reply. That part was always yours.
08. Related Guides
- Sell one automation to one niche. The playbook behind section 04.
- Landing clients in festive season. The "send it, don't pitch it" method.
- Local, private AI for a business. Read before promising a cloud model with client data.
- Bright Data CLI setup. For sites that block a plain fetch.
- Claude MCP setup. Lets Claude browse while you research a shortlist.
- What is an AI agent. What Claude does on top of the scraper.
The two repos behind this kit: the Google Maps Scraper Kit and gosom/google-maps-scraper, the scraper it wraps.
09. FAQ
Is the Google Maps Scraper Kit free?
Yes. The kit's code is MIT licensed, and so is the scraper it wraps, gosom/google-maps-scraper by Georgios Komninos. You need Docker Desktop. Claude Code is optional, the two included scripts run without it. The --socials option runs in plain code, at zero AI token cost per the README.
Does the Google Maps Scraper Kit run on my computer?
Yes. docker compose up -d starts the scraper at http://localhost:8080 on your own machine, bound to 127.0.0.1 only, per the README. Claude, if you use it, drives that local scraper. Requests go out from your own internet connection, so your IP is what can get rate-limited.
Will I get banned for scraping Google Maps?
The docs describe the risk as a temporary IP rate limit or block, usually clearing in minutes to hours, not a ban on your account, with no published hard threshold. They recommend one job at a time, starting at depth 5, and proxies for large runs. That is the author's description, not a guarantee.
Is scraping Google Maps legal?
I'm not a lawyer, and this is not legal advice. Google's Maps Platform terms, section 3.2.3(a), say the customer will not export, extract, or otherwise scrape Google Maps Content for use outside the Services. Scraped phone numbers and emails can be personal data. India's DPDP Act main duties start May 2027, TRAI's rules already cover commercial calls and SMS, and GDPR and CAN-SPAM apply in the EU or US.
Can the Google Maps Scraper Kit find emails and social profiles?
Yes, with limits. Email extraction is available but slower, and the docs disagree on whether it is on by default, so check the setting if a run is slow. --socials finds Instagram, Facebook and LinkedIn by scanning a business's own website, slower and partial. The kit cannot touch Instagram, TikTok or YouTube.
How many leads will I get from one Google Maps search?
There is no fixed number. The README says the kit returns dozens to hundreds of clean rows per query, the author's claim, and the real count depends on depth, area and category. Run one query at depth 5, count the rows, and check them before you plan around a number.
More guides like this live on the free resources hub. Want help choosing your niche and first offer? Book a call with me.
10. Sources
- Google Maps Scraper Kit. README, LICENSE, CREDITS.md, SETUP.md, slash-command files, read September 19, 2026.
- GitHub API record for the kit. Stars, forks and dates, September 19, 2026.
- The kit's Claude skill file. The "warn, don't block" rule.
- gosom/google-maps-scraper. The upstream scraper, MIT license.
- Google Maps Platform Terms of Service. Section 3.2.3(a).
- PIB, DPDP Rules, 2025 notified.
- AZB Partners, DPDP phased rollout.
- Digital Personal Data Protection Act, 2023.
- TRAI, unsolicited commercial communication.
- TRAI, TCCCPR Second Amendment Regulations, 2025.
- WhatsApp Business Messaging Policy.
- Leads Sniper, How Agencies Use Google Maps Scrapers to Get Clients. Vendor blog, June 2026.
- GrowwStacks, How to Sell AI Receptionists to Local Businesses With Cold Calls. Vendor blog, Nov 2025.
- @leoxbtt on X. Post about the kit, in Spanish.
- Aaron (@IAmAaronWill) on X. A Claude Code lead-scraping routine.
- Alex Vacca (@itsalexvacca) on X. Thread title only.
- codewithpp on LinkedIn. Existence and topic only.
// Free newsletter
I send out guides like this every week
Real setups, real sources, no hype. Drop your email and I'll send you the next one.