🔍 Local Lead Scanner — by GuardLabs

Find local businesses
with broken websites.
Sell them yours.

The actual Python tool we use at GuardLabs to fill our Care funnel. Scans Google Maps for cafes, clinics, lawyers, shops, and photographers — finds the ones with no site or a broken site — sends them targeted cold email.

Get for $79 lifetime → See how it works

How it works

OSM Overpass (free) ───OR─── Google Places API (paid, better) │ ▼ "cafes in Dallas" │ ▼ Site checker → classifies into: ├── no_site ← no website listed ├── down ← timeout / connection error ├── ssl_invalid ← SSL expired / self-signed ├── no_https ← HTTP-only ("Not Secure") ├── http_4xx ← error page └── http_5xx ← server crashed Only broken sites = leads. Working sites filtered out. │ ▼ Email scrape (deep: /, /contact, /about pages) │ ▼ SQLite DB (dedupe by source_id) │ ▼ Render personalized email (your template + business name + issue) │ ▼ SMTP send via Gmail (or any SMTP) │ ▼ 30 emails/day per outbox ─→ Anti-spam safe

What's included

📜 Single-file Python script

500 lines. Python 3.10+. No Docker, no Postgres, no Redis. Runs on a $5 VPS or your laptop.

🌐 9 cities pre-configured

Dallas, Atlanta, Phoenix, Toronto, Calgary, London, Dublin, Austin, Miami. Add more in 2 minutes (just lat/lon bbox).

🎯 5 niches

cafe / clinic / lawyer / shop / portfolio — each maps to curated OSM & Places categories. Add your own.

💸 Free OSM source

OpenStreetMap Overpass API — no keys, no billing. Catches 50-70% of US/CA/EU local businesses.

⚡ Optional Google Places

Plug in your Google Cloud Service Account → 90% phone rate, 30%+ email rate. $0.017/call, $300 trial covers 17K.

📧 Email render + SMTP send

Plug in your Gmail App Password → personalized templated emails go out. Rate-limited 30/day for anti-spam.

Realistic conversion math

For a freelancer or agency selling websites/hosting at $200-500:

StageRate
POIs scanned200
Broken-site leads~30 (15%)
Leads with email~10 (10-30% with Places enrichment)
Email open rate40-60%
Reply rate (positive)1-3% of opens
Close rate on positive replies25-35%
Sales per 1000 emails sent3-8

Cron at 28 emails/day = 840/month = 3-8 sales/month. Pricing your service at $300+ pays back the tool in week one.

Pricing

RECOMMENDED

Lifetime

$79 once

Full script + 12 months of updates. Use as long as you want.

  • All 9 city presets + 5 niches
  • OSM + Google Places integration
  • Email render + SMTP send
  • SQLite DB + dedupe
  • Updates for 12 months included
  • Email support
Get Lifetime →

Updates Subscription

$19 / month

After year 1 — for ongoing updates as Google APIs evolve, new city presets, anti-spam improvements.

  • All script updates
  • New city & niche presets
  • API change patches
  • Cancel anytime
Subscribe

FAQ

Is this legal? Cold email feels spammy.

Yes — public business emails (from Google Maps, contact pages) are fair game for B2B outreach in the US, CA, EU under CAN-SPAM / GDPR §47 / CASL §6(8). The tool includes a soft unsubscribe ("reply 'no thanks'") and rate-limits to 30/day per outbox to stay below spam-trap thresholds. You're responsible for your own compliance — set SPF/DKIM, warm up your Gmail, don't add purchased lists.

Will my Gmail get banned?

Not at 30/day with proper warm-up. The tool enforces this limit. For higher volume, run multiple Gmail accounts in parallel (one DB instance per account). For 100+/day, switch to a transactional service (SES, Mailgun) — the script is SMTP-agnostic.

What if I sell something other than websites?

Edit the email template in config.json. Sell SEO services, social-media management, photography, anything that helps a local business with their online presence. The 6 issue types (no_site, down, ssl_invalid, no_https, 4xx, 5xx) are universal pain.

Why not just use Hunter.io / Snov.io?

Those find emails for any business. This finds businesses where the website is broken — much higher buyer intent. Combine both for max yield. The script has hooks for adding Hunter.io as an enrichment step.

Do I need Google Cloud account?

Optional. OSM-only mode is free and finds plenty of leads. Google Places improves phone rate from ~10% to ~90% and email rate proportionally. New Google Cloud accounts get $300 free credit (covers 17K Places calls).

What if a city isn't in the preset?

Add it to CITY_BBOX in 2 lines: just lat/lon corners. Google "city name bbox" — done.

Can I resell this script?

No. Personal/business use license — sell as many websites/services to as many leads as you want, but don't repackage and resell the script itself. We use it internally too.

Built by people who use it daily

GuardLabs runs the same tool to find leads for our $240/yr Website Care service. We don't ship anything we don't run ourselves.

Get for $79 lifetime →