Google Maps Scraper Lets Your Agent Turn Map Listings Into a Business List
Use this skill when the user wants public information about businesses of one type in one city (name, address, phone, website, rating, reviews, and optionally public emails on the business website) for B2B lead generation, local market research or competitor analysis. It comes from gosom/google-maps-scraper, under the MIT license. It is written in Go and runs on the user's computer through Docker. The repository ships with an Agent Skill.
Triggers
The user says things like "Find all the dentists in Berlin", "Pull a list of local coffee shops", "Get the business info from Google Maps", "Collect the reviews for a certain shop", or "Build a list of potential customers in a certain industry in a certain area".
Not suitable for:
- Collecting information about individuals (not businesses) or private contact details.
- Getting around Google's access limits or CAPTCHAs, or large-scale, high-frequency scraping.
- Sending marketing emails to the people on the list without following the local law (see hard rule 3).
Hard rules
- Explain the risks first. Before starting, tell the user that scraping Google Maps may breach Google's terms of service, and the account or IP may be restricted. The project's own README also says to use it responsibly under applicable law. Continue only after the user confirms.
- Only public business information. Do not collect or store personal data. Use reviews only for analysis, and do not turn reviewers' information into a list.
- Follow the rules when reaching out. If the user plans to send cold emails, remind them that the EU's GDPR, the US CAN-SPAM Act and similar laws set rules for commercial email. These include identifying the sender, offering an unsubscribe option, and, in the EU, often having a lawful basis. Include an unsubscribe method and keep the send volume low. Do not send emails for the user.
- Start small. First test with one query as a sample, using the default shallow depth and low concurrency. Consider a wider scope only when the results are unusually few. Do not help the user get around Google's anti-abuse controls or CAPTCHAs.
- Clean the emails. Automatically extracted emails often include false matches, such as image file names. Before delivering, remove entries with a bad format or that clearly are not emails, and label the rest "unverified".
- Never display credentials. The user's own proxy account is entered only through the repository script's local masked input. Do not ask for it in the conversation, print it or write it to logs.
Install
Check first:
ls ~/.claude/skills/google-maps-scraper/SKILL.md ~/.agents/skills/google-maps-scraper/SKILL.md 2>/dev/null || echo "not installed"
docker --version; node --version
If it is not installed, explain that a Skill needs to be installed (this also pulls the Docker image). With the user's agreement:
npx skills add gosom/google-maps-scraper
It needs Docker and Node.js. It works on macOS and Linux. On Windows, run it inside WSL. After installing, open a new conversation. The Skill then checks the version and image using its own process.
Workflow
- Ask three things: the business type or search terms, the location, and the scope (a quick sample, a normal search, or a whole area). The defaults are English, CSV, no email extraction, no extra reviews and shallow depth. Restate the setup in one sentence first.
- Sample run: run one representative query. It passes only if the container finishes normally and returns results.
- Full run: run the complete query file. Report the container status, elapsed time and result count from time to time. Do not promise a finish time.
- Show results: report the total, and preview up to 20 rows (name, category, rating and review count, phone, website, address). Show emails only if the user asked for them.
- Follow-up: deduplicate, filter, sort by rating or review count, or export, as the user asks. If emails are involved, clean them first under hard rule 5.
Proxies are optional. For large jobs, the project lets the user choose their own proxy, see sponsor recommendations, or use no proxy. Sponsor links are referral links, and you must tell the user so.
Fields available
| Category | Fields |
|---|---|
| Basics | Name, category, address, latitude and longitude, opening hours |
| Contact | Phone, website. With -email, it looks for public emails on the website's pages (this takes noticeably longer) |
| Reputation | Rating, review count, review text (extra reviews need a separate option) |
| Export | CSV, JSON, or written to PostgreSQL or S3 |
Output format
- Before starting: a one-sentence setup summary and a risk reminder.
- While running: container status, elapsed time and current result count.
- When done: the result file path, the total count, and a preview of the first 20 rows. For emails, say whether they were cleaned and whether they were verified.
In one line
Explain the terms and legal risks first, start with a sample from one query, keep only public business information, and label cleaned emails as unverified.

Comments (0)
No comments yet. Start the conversation.