Documentation
Everything you need to get leads flowing out of Google Maps and into your pipeline.
1. Requirements
- Chrome version 114 or later (or any Chromium-based browser: Edge, Brave, Opera, Arc)
- Windows, macOS, or Linux
- A free OpenRouter account for AI outreach generation
- No Node.js, no build step, no npm — the extension loads directly into Chrome
2. Installation
MapScout is distributed as an unpacked Chrome extension. There is no Chrome Web Store listing yet — installation requires Developer Mode.
- Download and unzip the MapScout extension files to a folder on your computer
- Open Chrome and navigate to chrome://extensions
- Enable Developer mode using the toggle in the top-right corner
- Click Load unpacked
- Select the folder containing the extension files (the folder with
manifest.jsonat the root) - MapScout will appear in your extensions list
- Click the puzzle piece icon → pin MapScout to your toolbar
- Navigate to google.com/maps — the extension activates automatically
- Click the MapScout icon to open the side panel
3. First-Time Setup
On first launch, an onboarding overlay appears. Click Open Settings and fill in the following before capturing leads.
Your Profile
These fields personalise the AI outreach. The more specific you are, the better the emails.
| Field | Example |
|---|---|
| Your name | Shah |
| Agency name | Onliverse Agency |
| What you sell | I build modern websites that convert visitors into booked appointments for local businesses in under 3 weeks. |
| Unique offer / angle | I send a fully built live mockup before you commit — no risk, no obligation. |
| Price range | $3,000 – $8,000 |
| Target customer | cosmetic dentists and med spas |
OpenRouter API Key
- Go to openrouter.ai and create a free account
- Navigate to API Keys and create a new key
- Paste the key (starts with
sk-or-) into Settings → AI → OpenRouter API Key - Click Test Connection — you should see “✓ Connected”
- Click Save
The default AI model is Llama 3.3 70B (free). If it is rate-limited, the extension automatically tries 4 other free models. You can type any OpenRouter model ID into the model field.
4. Passive Capture Mode
Passive capture is the recommended mode. The extension monitors your browser URL in the background. Whenever you click into a listing on Google Maps, it waits 900ms for the page to load, then automatically captures and scores the lead.
A badge appears in the bottom-right of the Maps page showing how many leads have been captured this session.
To use passive capture
- Make sure Auto-scrape mode is OFF in Settings
- Open Google Maps and search for your target business type and city
- Click into listings — each one is captured automatically
- Switch to the MapScout side panel to see leads appear in real time
Passive mode mimics natural browsing and does not interact with the Maps DOM in any automated way. It is the safest and most reliable capture method.
5. Auto-Scrape Mode
Auto-scrape mode automates the entire capture process. It scrolls the Google Maps results feed, collects all listing URLs, opens each one in a background tab (3 at a time), extracts the data, and closes the tab.
To use auto-scrape
- Enable Auto-scrape mode in Settings → Scrape Behavior
- Open Google Maps and run a search (e.g. “cosmetic dentist Austin TX”)
- Click ▶ Start Scrape in the side panel
- Watch leads appear in real time. Check the Logs tab for detailed progress
- After all listings are processed, website audits run automatically for leads above your audit threshold
CAPTCHA: running many extractions quickly can trigger Google bot detection. If a CAPTCHA appears, the tab is brought to the foreground — solve it manually and extraction resumes automatically.
6. Batch Search Mode
Batch mode runs multiple search queries sequentially without you having to type each one. Use it to cover multiple cities, niches, or both — unattended.
To run a batch search
- Enable Auto-scrape mode in Settings
- Go to Settings → Batch Search
- Enter one search phrase per line, for example:
cosmetic dentist Austin TX med spa Denver CO personal injury lawyer Nashville TN
- Open Google Maps
- Click ▶ Run Batch
- The extension navigates the Maps tab to each search URL in sequence and processes each automatically
7. Lead Scoring System
Leads are scored 1–10. The raw point total across all signals is normalised to this scale. Expand any lead card and scroll to “Score breakdown” to see exactly which signals contributed.
Phase 1 — Google Maps Signals
| Signal | Points | Condition |
|---|---|---|
| Rating | +15 | 4.5+ stars |
| Rating | +10 | 4.0–4.4 stars |
| Rating | +3 | 3.5–3.9 stars |
| Review count | +15 | 50–500 reviews (sweet spot) |
| Review count | +5 | 500+ reviews (may be chain) |
| Review count | +5 | 20–49 reviews |
| Recent reviews | +10 | Reviews within ~3 months |
| Has website | +5 | Required for redesign pitch |
| No website | −10 | Wrong ICP |
| Not a chain | +10 | Owner-operated |
| Is a chain | −15 | Cannot sell to franchise HQ |
| Directory booking | +15 | Zocdoc, Booksy, Vagaro, etc. |
| Scheduling tool | +5 | Calendly, Acuity, etc. |
| No booking at all | +10 | Needs a system built |
| Price level $$$ | +12 | Premium positioning |
| Price level $$ | +6 | Mid-range |
| Premium category | +8 | Cosmetic dentist, med spa, law, etc. |
Phase 2 — Website Audit Signals
After running a website audit, these additional signals update the lead’s score:
| Signal | Points |
|---|---|
| Template platform (WordPress, Wix, Squarespace, etc.) | +8 |
| Copyright 4+ years old | +10 |
| Copyright 2–3 years old | +5 |
| No booking form on website | +8 |
| Off-site booking confirmed on site | +5 |
| No testimonials section | +5 |
| No before/after gallery | +5 |
| Not mobile-responsive | +10 |
| No SSL certificate | +8 |
| Phone not tappable (no tel: link) | +5 |
| No LocalBusiness schema markup | +5 |
| No live chat widget | +4 |
| No analytics (GA / GTM / Meta Pixel) | +3 |
| No video content | +3 |
| No map embed | +3 |
8. Website Audit
The website audit opens each lead’s website in a hidden background tab, injects an analysis script, and collects 25 data points in under 15 seconds per site.
What it checks
- Platform (WordPress, Wix, Squarespace, Weebly, GoDaddy, Webflow, Duda, Showit, or Unknown)
- Copyright year (detected from © YYYY patterns)
- Booking form presence (button/link text matching)
- Off-site booking links (Zocdoc, Booksy, Vagaro, Mindbody, Calendly, Acuity, etc.)
- Testimonials section
- Before/after gallery
- Email addresses (from mailto: links and body text)
- Owner name (from JSON-LD schema or "Meet Dr. Smith" patterns)
- Mobile viewport meta tag
- SSL (HTTPS vs HTTP)
- Contact form
- Social media links (Facebook, Instagram, TikTok, LinkedIn, X/Twitter)
- Analytics tracking (Google Analytics / GTM / Meta Pixel)
- Clickable phone number (tel: link)
- Business hours text
- Google Map embed
- Video content (YouTube, Vimeo, Loom)
- LocalBusiness JSON-LD schema
- Chat widget (Intercom, Drift, Tidio, LiveChat, Tawk, Crisp, etc.)
- Pop-up / exit intent
- Nav item count
- Page title
To run an audit
Click 🌐 Audit in the controls bar. All leads with a website that score above your audit threshold (default: 5) and haven’t been audited yet will be processed in parallel (4 at a time).
Timeout: 15 seconds per site. Sites that don’t load in time are skipped and marked with an error. The audit reads static HTML only — it does not execute client-side JavaScript.
9. AI Outreach Generation
Each lead card has a ✨ Generate AI Outreach button. Click it to produce a full outreach pack tailored to that specific lead.
Prerequisites
- OpenRouter API key saved in Settings → AI
- Your service profile filled in (Settings → Profile)
What it generates
- 3 subject line options (click any to copy)
- Primary cold email (under 150 words, references specific issues found on their site)
- 3-day follow-up email
- LinkedIn message (under 300 characters)
- SMS (under 160 characters)
Model fallback
If the configured model is rate-limited or unavailable, MapScout automatically tries up to 4 fallback models in sequence: Llama 3.3 70B → Gemini Flash → Qwen QwQ → DeepSeek R1. A 600ms pause is inserted between retries.
Common outreach errors
401 errorInvalid API key. Re-copy it from openrouter.ai/settings/keys.402 errorNo credits. Add $5 at openrouter.ai or use a free model.All models failedFree model rate limits exceeded. Wait 30–60 seconds and retry.OpenRouter 404Model ID no longer available as free tier. Change the model in Settings → AI.
10. Exporting Leads
Click ↓ Export in the controls bar to download a CSV file.
- Filename:
leads_YYYY-MM-DD.csv - Encoding: UTF-8 with BOM (renders correctly in Excel and Google Sheets)
- 40 columns covering all Phase 1 and Phase 2 fields
- Sorted by search phrase, then by score descending
- By default, only leads with score 7+ are included. Enable “Export all leads” in Settings to include everything
JSON backup: In Settings → Data, click ↓ Backup JSON to export all lead data as JSON. Use this to archive before clearing storage (chrome.storage.local has a 10 MB limit, ~3,000 leads at ~3 KB per lead).
11. Settings Reference
| Setting | Location | Description |
|---|---|---|
| Your name | Profile | Sender name used in AI outreach prompts |
| Agency name | Profile | Agency name used in AI outreach prompts |
| What you sell | Profile | 2–3 sentences describing your service |
| Unique offer | Profile | Your pitch angle / hook for AI |
| Price range | Profile | Helps AI set tone and urgency in emails |
| Target customer | Profile | Who you're emailing (used in AI prompt) |
| OpenRouter API key | AI | Starts with sk-or-. Get free at openrouter.ai |
| AI model | AI | Any OpenRouter model ID. Free models end in :free. Auto-fallback through 5 models |
| Auto-scrape mode | Behavior | OFF = passive capture (recommended). ON = automated scraping |
| Auto-audit threshold | Behavior | Min score for auto-audit after scrape (default: 5) |
| Export all leads | Behavior | Include all scores in CSV (default: score 7+ only) |
12. CRM Status & Notes
Each lead card has a status selector and a notes textarea. Both save automatically.
Status values
newresearchedcontactedrepliedclosed
The lead card border colour changes with status so you can see your pipeline at a glance without opening each card.
Notes are free text and auto-saved on blur. They persist across browser restarts via chrome.storage.local.
13. Troubleshooting
For a full list of common issues and their solutions, see the Support page. Key points:
- Check the Logs tab first — it shows exactly what the extension did and where it failed
- Reload the Google Maps tab if the content script doesn’t seem active (look for “Lead Finder connected” in Logs)
- Google periodically updates Maps class names — if extraction breaks after a Maps update, contact support for a selector fix
- Chrome.storage.local has a 10 MB limit. Export and clear data regularly if you capture thousands of leads