Extract Google Maps business leads, emails, reviews, phone numbers, websites, ratings, coordinates, and more with a free open-source CLI, Web UI, REST API, and optional self-hosted platform.
$ npx -y skills add gosom/google-maps-scraper --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: gosom/google-maps-scraper
What's inside
Extract Google Maps business leads, emails, reviews, phone numbers, websites, ratings, coordinates, and more with a free open-source CLI, Web UI, REST API, and optional self-hosted platform.
Use it for lead generation, local business research, sales prospecting, data enrichment, or developer automation.
The easiest way to use Google Maps Scraper is with an AI coding agent such as Claude Code, Codex, Cursor, GitHub Copilot, or any Agent Skills-compatible tool. You describe the leads you want; the agent plans the searches, runs a small validation, starts the full local scrape, monitors it, and helps you work with the results.
Install the skill:
npx skills add gosom/google-maps-scraper
Then ask your agent in plain language:
Find dentists in Berlin and include their websites and email addresses.
The agent automatically checks for the latest skill and Docker image, then asks only for details it still needs. For larger crawls, you can provide your own proxy, continue without one, or review three randomly selected proxy sponsors. Proxy credentials are entered through a masked local terminal prompt and are never pasted into the agent chat.
Requires Docker and Node.js on macOS, Linux, or Windows through WSL. See how the agent workflow works.
| Goal | Start here |
|---|---|
| Get leads into CSV/JSON | Command Line |
| Ask an AI coding agent to run a scrape | AI Agent Skill |
| Run a browser UI locally | Web UI |
| Automate scraping from your app | REST API |
| Run a multi-user scraping platform | SaaS Edition |
| Follow common workflows | Recipes |

If this project is useful to you, a GitHub star helps others discover it. Sponsorships help fund maintenance and new work.
Find ready-made workers for public websites, run them instantly, and get structured data you can export or connect anywhere. Get free test for $3 โ
Chrome extension that extracts emails, social profiles, phone numbers, reviews & more. Get 1,000 free leads โ
No keywords needed. No limits. Export millions of businesses in 2 clicks. Try it free โ
Fast, reliable, and scalable. Used by Fortune 500 companies. View all APIs โ
Real-time Google Maps data with a simple integration. Explore the API โ
Swiss quality proxies from $0.49/GB across 150+ countries, with 24/7 support and 99.9% uptime. Visit Evomi โ
Extract business leads, emails, addresses, phones, reviews and more. Get 1,000 free credits โ
Unlock global access with consistent, high-speed connections from $0.65/GB, 90M+ real residential IPs worldwide, and traffic that never expires. Try it free โ
Real-time SERP data APIs for Google Maps and search results, with structured JSON / HTML responses and 1,000 free API responses to start. Start using TalorData โ | Learn more
The most affordable premium proxies across 195 countries & 80+ million IPs, plus a FREE plan for new users. Learn more
Hey, we built BirdProxies because proxies shouldn't be complicated or overpriced. Fast residential and ISP proxies in 195+ locations, fair pricing, and real support. Try our FlappyBird game on the landing page for free data!
Visit BirdProxies โ | Join Discord
Mobile and residential proxies for Google Maps scraping, local SEO, lead generation, and data collection. Use code gmaps20 for 20% off. Visit Proxidize โ
NodeMaven provides high-quality proxies for automation, web scraping, SEO research, and social media management.
Why NodeMaven:
Special codes for Google Maps Scraper users:
MAPS35 - 35% off Mobile and Residential ProxiesMAPS40 - 40% off ISP Static Proxies| Completely Free & Open Source | MIT licensed, no hidden costs or usage limits |
| Multiple Interfaces | CLI, Web UI, REST API - use what fits your workflow |
| High Performance | ~120 places/minute with optimized concurrency |
| 33+ Data Points | Business details, reviews, emails, coordinates, and more |
| Production Ready | Scale from a single machine to Kubernetes clusters |
| Flexible Output | CSV, JSON, PostgreSQL, S3, LeadsDB, or custom plugins |
| Proxy Support | Built-in SOCKS5/HTTP/HTTPS proxy rotation |
Once you've collected your data, you'll need to manage, deduplicate, and work with your leads. LeadsDB is a companion tool designed exactly for this:
The scraper has built-in LeadsDB integration - just add your API key and leads flow directly into your database.
mkdir -p gmaps-output
docker run \
-v gmaps-playwright-cache:/opt \
-v "$PWD/example-queries.txt:/queries.txt:ro" \
-v "$PWD/gmaps-output:/out" \
gosom/google-maps-scraper \
-input /queries.txt \
-results /out/results.csv \
-depth 1 \
-exit-on-inactivity 3m
Useful options:
| Need | Flag |
|---|---|
| Extract emails from business websites | -email |
| Write JSON instead of CSV | -json -results /out/results.json |
| Collect extra reviews | -extra-reviews -json -results /out/results.json |
| Increase concurrency | -c 4, -c 8, or -c 16 |
| Run multiple pages per browser | -pages-per-browser 4 |
| Limit browser processes | -browser-pool-size 2 |
| Use proxies | -proxies "http://user:pass@host:port,socks5://host:port" |
| Read proxies from a credentials file | -proxies-file /path/to/proxies.txt |
-c controls how many scrape jobs run in parallel. Higher concurrency can finish large input files faster, but it also uses more CPU/RAM and can increase blocking or failures, especially without proxies. Start with the default for a first run. For larger jobs on a capable machine, try -c 4, -c 8, or -c 16 and measure the result.
Want to skip CSV files? Send leads directly to LeadsDB:
docker run \
-v gmaps-playwright-cache:/opt \
-v "$PWD/example-queries.txt:/queries.txt:ro" \
gosom/google-maps-scraper \
-input /queries.txt \
-depth 1 \
-leadsdb-api-key "your-api-key" \
-exit-on-inactivity 3m
Start the web interface with a single command:
mkdir -p gmapsdata
docker run \
-v "$PWD/gmapsdata:/gmapsdata" \
-p 8080:8080 \
gosom/google-maps-scraper \
-data-folder /gmapsdata
Then open http://localhost:8080 in your browser.
Or download the binary release for your platform.
Note: Results take at least 3 minutes to appear (minimum configured runtime).
macOS Users: Docker command may not work. See MacOS Instructions.
When running the web server, a full REST API is available:
| Endpoint | Method | Description |
|---|---|---|
/api/v1/jobs | POST | Create a new scraping job |
/api/v1/jobs | GET | List all jobs |
/api/v1/jobs/{id} | GET | Get job details |
/api/v1/jobs/{id} | DELETE | Delete a job |
/api/v1/jobs/{id}/download | GET | Download results as CSV |
Full OpenAPI 3.0.3 documentation available at http://localhost:8080/api/docs
Need a multi-user platform with API keys, admin UI, job queue, workers, and cloud provisioning? Use the optional self-hosted SaaS edition:
curl -fsSL https://raw.githubusercontent.com/gosom/google-maps-scraper/main/PROVISION | sh
See SaaS documentation for deployment and operations details. There is also a 5-minute deployment walkthrough and a YouTube video walkthrough.
More examples are available in Recipes. If you need proxies for larger jobs, see Proxy Sponsors.
The AI Agent Skill turns a natural-language lead request into a guided local scraping workflow. It is designed for nontechnical users as well as developers and keeps you in control of the search scope, proxy choice, and output.
If you have not installed it yet:
npx skills add gosom/google-maps-scraper
Then just ask your agent:
Find me all dentists in Berlin with their emails
The agent will:
Proxy sponsor recommendations are clearly disclosed and shown with equal placement. Any discount or offer is displayed only when it is configured in the skill's active sponsor registry. You can always use another provider or no proxy.
Requires Docker and Node.js on macOS, Linux, or Windows through WSL. See the skill definition for details.
The published Docker image uses Playwright:
docker pull gosom/google-maps-scraper
Requirements: Go 1.26.5+
git clone https://github.com/gosom/google-maps-scraper.git
cd google-maps-scraper
go mod download
go build
./google-maps-scraper -input example-queries.txt -results results.csv -exit-on-inactivity 3m
First run downloads required browser libraries for Playwright.
| Feature | Description |
|---|---|
| 33+ Data Points | Business name, address, phone, website, reviews, coordinates, and more |
| Email Extraction | Optional crawling of business websites for email addresses |
| Multiple Output Formats | CSV, JSON, PostgreSQL, S3, LeadsDB, or custom plugins |
| Proxy Support | SOCKS5, HTTP, HTTPS with authentication |
| Scalable Architecture | Single machine to Kubernetes cluster |
| REST API | Programmatic control for automation |
| Web UI | User-friendly browser interface |
| Fast Mode (Beta) | Quick extraction of up to 21 results per query |
| AWS Lambda | Serverless execution support (experimental) |
| # | Field | Description |
|---|---|---|
| 1 | input_id | Internal identifier for the input query |
| 2 | link | Direct URL to the Google Maps listing |
| 3 | title | Business name |
| 4 | category | Business type (e.g., Restaurant, Hotel) |
| 5 | address | Street address |
| 6 | open_hours | Operating hours |
| 7 | popular_times | Visitor traffic patterns |
| 8 | website | Official business website |
| 9 | phone | Contact phone number |
| 10 | plus_code | Location shortcode |
| 11 | review_count | Total number of reviews |
| 12 | review_rating | Average star rating |
| 13 | reviews_per_rating | Breakdown by star rating |
| 14 | latitude | GPS latitude |
| 15 | longitude | GPS longitude |
| 16 | cid | Google's unique Customer ID |
| 17 | status | Business status (open/closed/temporary) |
| 18 | descriptions | Business description |
| 19 | reviews_link | Direct link to reviews |
| 20 | thumbnail | Thumbnail image URL |
| 21 | timezone | Business timezone |
| 22 | price_range | Price level ($, $$, $$$) |
| 23 | data_id | Internal Google Maps identifier |
| 24 | street_view_url | Street View URL |
| 25 | place_id | Google's unique place id |
| 26 | images | Associated image URLs |
| 27 | reservations | Reservation booking link |
| 28 | order_online | Online ordering link |
| 29 | menu | Menu link |
| 30 | owner | Owner-claimed status |
| 31 | complete_address | Full formatted address |
| 32 | credit_cards_accepted | Accepted credit card networks |
| 33 | about | Additional business info |
| 34 | user_reviews | Customer reviews (text, rating, timestamp) |
| 35 | user_reviews_extended | Extended reviews up to ~300 (requires -extra-reviews) |
| 36 | emails | Extracted email addresses (requires -email flag) |
Custom Input IDs: Define your own IDs in the input file:
Matsuhisa Athens #!#MyCustomID
Direct Google Maps URLs: Input lines can be regular search queries or direct Google Maps URLs. Supported URL formats include:
https://www.google.com/maps/search/pizza
https://www.google.com/maps/place/Empire+State+Building/@40.7484405,-73.9856632
https://maps.google.com/maps?z=16&q=Empire+State+Building
maps.app.goo.gl/abc123
URLs on google.com subdomains must include a scheme (http:// or https://) and a /maps path. Short maps.app.goo.gl links are also supported without a scheme.
Usage: google-maps-scraper [options]
Core Options:
-input string Path to input file with queries (one per line)
-results string Output file path (default: stdout)
-json Output JSON instead of CSV
-depth int Max scroll depth in results (default: 10)
-c int Concurrency level (default: half of CPU cores)
Email & Reviews:
-email Extract emails from business websites
-extra-reviews Collect extended reviews (up to ~300)
Location Settings:
-lang string Language code, e.g., 'de' for German (default: "en")
-geo string Coordinates for search, e.g., '37.7749,-122.4194'
-zoom int Zoom level 0-21 (default: 15)
-radius float Search radius in meters (default: 10000)
-grid-bbox string Bounding box for grid scraping, format: "minLat,minLon,maxLat,maxLon"
-grid-cell float Grid cell size in km (default: 1.0, used with -grid-bbox)
Web Server:
-web Run web server mode
-addr string Server address (default: ":8080")
-data-folder Data folder for web runner (default: "webdata")
Database:
-dsn string PostgreSQL connection string
-produce Produce seed jobs only (requires -dsn)
Proxy:
-proxies string Comma-separated proxy list
Format: protocol://user:pass@host:port
-proxies-file Path to a file containing one proxy URL per line
Export:
-leadsdb-api-key Export directly to LeadsDB (get key at getleadsdb.com)
Advanced:
-exit-on-inactivity duration Exit after inactivity (e.g., '5m')
-fast-mode Quick mode with reduced data
-debug Show browser window
-writer string Custom writer plugin (format: 'dir:pluginName')
-browser-pool-size int Number of browser processes to launch (default: 0, derived from -c and -pages-per-browser)
-pages-per-browser int Max concurrent pages per browser process (default: 1)
Notes:
-grid-bbox requires a valid zoom level (1-21)
-fast-mode cannot be used together with -grid-bbox
Run ./google-maps-scraper -h for the complete list.
For larger scraping jobs, proxies help avoid rate limiting. Here's how to configure them:
./google-maps-scraper \
-input queries.txt \
-results results.csv \
-proxies 'socks5://user:pass@host:port,http://host2:port2' \
-depth 1 -c 2
Supported protocols: socks5, socks5h, http, https
Current proxy sponsors are listed in Proxy Sponsors. Using those links helps fund project maintenance.
Email extraction is disabled by default. When enabled, the scraper visits each business website to find email addresses.
./google-maps-scraper -input queries.txt -results results.csv -email
Note: Email extraction increases processing time significantly.
Fast mode returns up to 21 results per query, ordered by distance. Useful for quick data collection with basic fields.
./google-maps-scraper \
-input queries.txt \
-results results.csv \
-fast-mode \
-zoom 15 \
-radius 5000 \
-geo '37.7749,-122.4194'
Warning: Fast mode is in Beta. You may experience blocking.
Grid mode splits a bounding box into cells and runs one search per cell. This is useful when a single search does not return enough places.
queries.txt example:
cafes in Peristeri, Greece
Command example:
./google-maps-scraper \
-input queries.txt \
-results peristeri-cafes.csv \
-grid-bbox "38.0077,23.6719,38.0257,23.6947" \
-grid-cell 0.5 \
-zoom 16 \
-depth 1 \
-c 4
Notes:
-grid-bbox guides where searches are launched from, but results are not strictly clipped to the box.-fast-mode with -geo + -radius (or post-filter by latitude/longitude).With the default -pages-per-browser 1, each concurrent job (-c) effectively uses its own browser process with a single page tab. This can be inefficient because browser pages can be CPU- and memory-heavy, and each browser process adds overhead.
The -pages-per-browser flag lets you run multiple page tabs inside the same browser process, reducing overhead. Leave -browser-pool-size at 0 to derive the browser count from concurrency and pages per browser, or set it explicitly to cap the number of browser processes independently of concurrency.
How the flags interact:
| Flag | What it controls |
|---|---|
-c | Total number of concurrent scrape jobs |
-browser-pool-size | Number of browser processes to launch (default: 0, derived from -c and -pages-per-browser) |
-pages-per-browser | Number of page tabs per browser process (default: 1) |
When -pages-per-browser is greater than 1, the scraper opens multiple tabs within each browser process and routes jobs through a shared page pool. This can significantly increase job throughput on the same hardware.
Example โ 8 concurrent jobs across 2 browsers with 4 tabs each:
./google-maps-scraper \
-c 8 \
-browser-pool-size 2 \
-pages-per-browser 4 \
-input queries.txt \
-results results.csv \
-depth 1
Tuning guidance:
-c 4 -browser-pool-size 1 -pages-per-browser 4 for a 4:1 page-to-browser ratio.htop or docker stats; browser resource use varies significantly by workload, Chromium version, and page count.-browser-pool-size low and reduce -c or -pages-per-browser.-c or -pages-per-browser.-browser-pool-size ร -pages-per-browser should roughly equal or exceed -c to keep all jobs busy.-browser-pool-size is most useful in containerized environments (Docker, Kubernetes) where you want predictable resource usage.Skip the CSV files and send leads directly to a managed database. LeadsDB handles deduplication, filtering, and provides an API for your applications.
Using Docker:
docker run \
-v gmaps-playwright-cache:/opt \
-v "$PWD/example-queries.txt:/queries.txt:ro" \
gosom/google-maps-scraper \
-input /queries.txt \
-depth 1 \
-leadsdb-api-key "your-api-key" \
-exit-on-inactivity 3m
Using binary:
./google-maps-scraper \
-input queries.txt \
-leadsdb-api-key "your-api-key" \
-exit-on-inactivity 3m
Or via environment variable:
export LEADSDB_API_KEY="your-api-key"
./google-maps-scraper -input queries.txt -exit-on-inactivity 3m
| Google Maps | LeadsDB |
|---|---|
| Title | Name |
| Category | Category |
| Categories | Tags |
| Phone | Phone |
| Website | Website |
| Address | Address, City, State, Country, PostalCode |
| Latitude/Longitude | Coordinates |
| Review Rating | Rating |
| Review Count | ReviewCount |
| Emails | |
| Thumbnail | LogoURL |
| CID | SourceID |
Additional fields (Google Maps link, plus code, price range, etc.) are stored as custom attributes.
Get your API key at getleadsdb.com/settings after signing up.
For distributed scraping across multiple machines:
1. Start PostgreSQL:
docker-compose -f docker-compose.dev.yaml up -d
2. Seed the jobs:
./google-maps-scraper \
-dsn "postgres://postgres:postgres@localhost:5432/postgres" \
-produce \
-input example-queries.txt \
-lang en
3. Run scrapers (on multiple machines):
./google-maps-scraper \
-c 2 \
-depth 1 \
-dsn "postgres://postgres:postgres@localhost:5432/postgres"
apiVersion: apps/v1
kind: Deployment
metadata:
name: google-maps-scraper
spec:
replicas: 3 # Adjust based on needs
selector:
matchLabels:
app: google-maps-scraper
template:
metadata:
labels:
app: google-maps-scraper
spec:
containers:
- name: google-maps-scraper
image: gosom/google-maps-scraper:latest
args: ["-c", "1", "-depth", "10", "-dsn", "postgres://user:pass@host:5432/db"]
resources:
requests:
memory: "512Mi"
cpu: "500m"
Note: The headless browser requires significant CPU/memory resources.
Create custom output handlers using Go plugins:
1. Write the plugin (see examples/plugins/example_writer.go)
2. Build:
go build -buildmode=plugin -tags=plugin -o myplugin.so myplugin.go
3. Run:
./google-maps-scraper -writer ~/plugins:MyWriter -input queries.txt
Expected throughput: ~120 places/minute (with -c 8 -depth 1)
| Keywords | Results/Keyword | Total Jobs | Estimated Time |
|---|---|---|---|
| 100 | 16 | 1,600 | ~13 minutes |
| 1,000 | 16 | 16,000 | ~2.5 hours |
| 10,000 | 16 | 160,000 | ~22 hours |
For large-scale scraping, use the PostgreSQL provider with Kubernetes.
Anonymous usage statistics are collected for improvement purposes. Opt out:
export DISABLE_TELEMETRY=1
This project is free and open source. Stars, sponsorships, and sponsor referrals help fund maintenance.
Join our Discord to:
Contributions are welcome! Please:
See AGENTS.md for development guidelines.
This project is licensed under the MIT License.
Please use this scraper responsibly and in accordance with applicable laws and regulations. Unauthorized scraping may violate terms of service.
.github/
FUNDING.yaml
workflows/
build.yml
publish.yml
.gitignore
.golangci.yaml
.pre-commit-config.yaml
admin/
admin.go
constants.go
handlers_2fa.go
handlers_apikeys.go
handlers_auth.go
handlers_dashboard.go
handlers_jobs.go
handlers_settings.go
handlers_terminal.go
handlers_workers.go
middleware.go
postgres/
postgres.go
render.go
routes.go
state.go
static/
pico.min.css
styles.css
xterm-addon-fit.min.js
xterm.css
xterm.min.js
templates/
_head.html
_navbar.html
2fa_prompt.html
2fa_setup.html
2fa_verify.html
api_keys.html
dashboard.html
jobs.html
login.html
settings.html
terminal.html
workers.html
AGENTS.md
api/
api.go
doc.go
docs/
docs.go
swagger.json
swagger.yaml
middleware.go
postgres/
postgres.go
responses.go
banner.png
cli/
prompt.go
ui.go
cmd/
gmapssaas/
cmdadmin/
cmd_admin.go
cmdcommon/
common.go
cmdprovision/
provision.go
state.go
cmdserve/
cmd_serve.go
cmdupdate/
cmd_update_test.go
cmd_update.go
cmdworker/
cmd_worker.go
main.go
tools/
tools.go
cryptoext/
cryptoext.go
deduper/
deduper.go
hashmap.go
docker-compose.dev.yaml
docker-compose.saas.yaml
Dockerfile
Dockerfile.saas
docs/
development-saas.md
proxies.md
recipes.md
saas.md
env/
env.go
example-queries.txt
examples/
examples-api/
go/
main.go
keywords.txt
python/
scrape.py
README.md
typescript/
scrape.ts
plugins/
example_writer.go
exiter/
exiter.go
gmaps/
gmaps-extractor.md
dom_reviews_test.go
emailjob.go
entry_internal_test.go
entry_test.go
entry.go
job.go
multiple.go
place.go
reviews_test.go
reviews.go
searchjob.go
testdata/
review_aggregator.json
review_native_no_text.json
review_native_no_translation.json
review_native_with_reply.json
url_test.go
go.mod
go.sum
grid/
grid_test.go
grid.go
httpext/
httpext.go
middleware.go
img/
birdproxies.png
capsolver-banner.png
coreclaw.png
example.gif
gmaps-extractor-banner.png
gmaps-extractor-logo.png
hd-gm-banner.png
leadsdb-banner.png
nodemaven.png
premium_scrap_io_demo.gif
premium_scrap_io.png
proxidize-banner.png
rapidproxy-banner.png
scrapeless_dark.png
scrapeless_light.png
searchapi_google_maps.png
SerpApi-banner.png
SerpApi-logo-w.png
talordata.png
webshare-banner.png
webshare-logo.png
infra/
cloudinit/
cloudinit_test.go
cloudinit.go
digitalocean/
appplatform.go
digitalocean.go
hetzner/
hetzner.go
infra.go
planetscale/
planetscale.go
ssh_tofu.go
vps/
provisioner_test.go
provisioner.go
scripts.go
worker.go
internal/
jsonbsanitize/
entry_test.go
entry.go
proxyconfig/
proxyconfig_test.go
proxyconfig.go
leadsdb/
leadsdb.go
LICENSE
lint.go
local/
cloud-init-test.yaml
test_ssh_key
test_ssh_key.pub
log/
log.go
MacOS instructions.md
main.go
Makefile
migration-pro.md
migrations/
20260123144521_river_tables.sql
20260123155521_scrape_results.sql
20260124164611-admin_and_provisioning.sql
20260124213201-add_totp_2fa.sql
20260130100000-create_rate_limits.sql
20260208150322-add_dashboard_indexes.sql
20260208160000-add_missing_indexes.sql
dbconfig.yml
migrations.go
postgres/
pool.go
provider.go
resultwriter_test.go
resultwriter.go
PROVISION
ratelimit/
postgres/
postgres.go
ratelimit.go
README.md
rqueue/
jobs.go
rqueue_test.go
rqueue.go
ui.go
worker_jobs.go
runner/
databaserunner/
databaserunner.go
filerunner/
filerunner.go
installplaywright/
installplaywright.go
jobs_test.go
jobs.go
lambdaaws/
invoker_test.go
invoker.go
io.go
lambdaaws.go
runner.go
webrunner/
webrunner_test.go
webrunner.go
s3uploader/
s3uploader.go
saas/
constants.go
scrap_io.md
scraper/
centralwriter_test.go
centralwriter.go
provider_test.go
provider.go
scraper_test.go
scraper.go
scripts/
migrations/
0001_create_tables.down.sql
0001_create_tables.up.sql
0002_add_lat_lon_results.down.sql
0002_add_lat_lon_results.up.sql
0003_results_jsonb.down.sql
0003_results_jsonb.up.sql
0004_add-index-gmaps_jobs.down.sql
0004_add-index-gmaps_jobs.up.sql
SECURITY.md
serpapi.md
skills/
google-maps-scraper/
references/
advanced-coverage.md
local-execution.md
proxy-setup.md
proxy-sponsors.json
query-planning.md
recovery.md
results.md
scripts/
configure-proxy.sh
ensure-latest.sh
helpers_test.sh
run-local.sh
select-proxy-sponsors.mjs
select-proxy-sponsors.test.mjs
status-local.mjs
status-local.test.mjs
SKILL.md
sponsors/
hasdata.md
talordata.md
testdata/
output.json
panic.json
panic2.json
raw.json
raw2.json
tlmt/
gonoop/
gonoop.go
goposthog/
goposthog.go
tlmt.go
web/
errors.go
job.go
places.go
service_test.go
service.go
sqlite/
sqlite.go
static/
css/
main.css
spec/
spec.yaml
templates/
index.html
job_row.html
job_rows.html
job_view.html
redoc.html
web_test.go
web.go
webshare.mdFAQ
google-maps-scraper is a Claude Code plugin with 1 hand-picked skill for data work, indexed on Flowy. Install it with the command on its page. It includes google-maps-scraper. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.