Local SMB Prospecting Reference
For when the user sells to local small businesses — shops, gyms, restaurants, salons, clinics, professional services, contractors, real estate, fitness studios, dental practices.
Adapted from and generalized beyond the local-client-prospector pattern (browser-assisted discovery + website status classification + proximity scoring).
ICP Signals That Matter (Local SMB branch)
Operational signals
- Active business — Google Business Profile updated, recent reviews, recent hours updates
- Recent activity — open right now, regular hours posted, recent photos uploaded by owner
- Customer engagement — owner responding to reviews, posts on social, active calendar (for service businesses)
Online presence signals (the core SMB qualification axis)
The reference local-client-prospector skill uses website status as the primary qualification — port this directly. Four classifications:
| Status | Definition | Typical outcome |
|---|---|---|
| No site found | No credible standalone website after cross-checked search | Hot prospect for web/marketing service |
| Social only | Facebook, Instagram, WhatsApp, Linktree, booking portal, marketplace page only — no standalone site | Hot prospect for web/marketing service |
| Weak site | Standalone site exists but outdated, broken, very thin, non-mobile-friendly, or missing clear contact/conversion flow | Warm prospect for refresh / rebuild service |
| Has site | Credible, modern standalone site exists | Low prospect unless other signals apply (e.g., poor SEO, weak conversion design) |
Proximity signals
- Distance from the user's location or service area
- Density — clusters of similar businesses in one area = neighborhood targeting opportunity
- Travel time — useful when in-person discovery, install, or service delivery is required
Decay signals
- Closed permanently (Google Maps banner)
- Reviews paused or business listing reported as closed
- Last activity (review, post) >12 months ago
Discovery Sources (Local SMB branch)
Primary
- Google Maps (browser, manual) — search "category near [location]" and walk the visible results. Cross-check details. Don't bulk-extract.
- Yelp — secondary verification; complementary categories
- Bing Local / Apple Maps — different coverage on smaller businesses
- Facebook Pages search — many SMBs are Facebook-only
Cross-verification
- Business's own website (if any)
- Industry directories (e.g., Healthgrades for medical, OpenTable for restaurants, Avvo for legal)
- Local Chamber of Commerce listings
- State business registries for incorporation status
- Search results for "[business name] [city]" to discover non-Maps presence
Browser Research Workflow
- Open a browser and search Google Maps for the category near
base_location - Build a candidate list from visible local results, search results, and public directories
- For each candidate, inspect public sources to fill required fields
- Search the exact business name plus city/town to check whether a standalone website exists
- Classify website status per the table above
- Mark confidence: High (2+ sources), Medium (1 source + consistent evidence), Low (incomplete/ambiguous)
When the user explicitly asks for subagents AND subagents are available, split candidates into non-overlapping batches and ask each subagent to verify only website/social/contact status. Don't use subagents for the primary search if it slows progress.
Optional: programmatic verification with Firecrawl or Browserbase
Once you have a candidate's website URL (found via manual Maps/Yelp discovery), you can speed up website-status classification by hitting the URL programmatically:
- Firecrawl for simple "is this site live, modern, mobile-friendly, conversion-flow-equipped" reads — returns clean markdown you can inspect
- Browserbase when the candidate site requires JS rendering, has a cookie consent dialog, or you need session state
Strict line: use these on the individual business's URL. Don't point them at Google Maps, Yelp, or any platform whose ToS prohibits bulk extraction — discovery stays manual.
See data-sources.md for setup details.
Qualification Checklist (Local SMB branch)
- Business is active (recent reviews or activity in last 6 months)
- Category matches user's service offering
- Distance / proximity within target radius
- Website status classified
- Phone or contact channel verified
- At least one cross-source confirms business operates at the listed address
- Not a duplicate / chain location / out-of-scope category
- Not closed permanently
Lead Scoring (Local SMB)
Use this simple rubric (matches local-client-prospector pattern):
| Score | Criteria |
|---|---|
| Hot | No site found OR social-only + phone present + active business + within target radius |
| Warm | Weak site, poor online presentation, or marketplace/booking-page only |
| Cold | Good website already present OR low confidence |
| Skip | Closed, duplicate, outside radius, irrelevant category, or not a business prospect |
Output Columns (Local SMB branch)
Chat table (≤15 rows):
| Score | Business | Category | Area | Distance | Website status | Website/Social | Phone | Why it's a prospect | Confidence |CSV:
score,business,category,area,distance_km,website_status,website_url,social_urls,phone,email,source_urls,why_prospect,confidence,verified_date,notesRules:
- Keep "Why it's a prospect" short and actionable
- Use
Not foundinstead of leaving blank fields - Include source links sparingly, not all of them
- After the table, add Best first outreach targets with the top 3 leads and one practical reason each
- If confidence is low, state exactly what remains uncertain
Top Outreach Targets Selection (Local SMB)
Prioritize for the top 3 hot leads:
- No site / social only + phone present = clearest service opportunity
- High review count = active, established business with real customers
- Owner-responded reviews = engaged owner = more likely to evaluate a vendor
- Industry alignment with your service specialty beats generic category match
Each top target rationale should be one sentence naming the gap and the signal: "No standalone website (cross-checked); 80+ Google reviews with owner replies; 2 km from target area."
Compliance Notes (Local SMB-specific)
The local branch is the most scraping-sensitive of the three motions. Specifically:
- Google Maps Terms of Service prohibit bulk extraction. Treat browser visits as research, not as data acquisition.
- Don't store full Google Maps Place IDs in your CRM — the ToS limits storage of Maps data.
- Public business contact channels only: published phone, contact form, info@ email. Don't reach individual employees through their personal channels.
- Owner/operator name when published on the business's own site is OK to use. If you only got it from LinkedIn, mark the source.
Common Mistakes (Local SMB)
- Bulk-scraping Google Maps — fastest way to violate ToS and lose the research channel.
- Treating Google Maps data as truth — listings go stale. Cross-check hours, status, and reviews.
- Skipping the website status cross-check — finding "no site" on Maps doesn't mean no site exists; do an exact-name web search before classifying.
- Targeting only the largest businesses — they're already covered by other providers. The 2–5 employee SMBs are the under-served opportunity.
- Generic outreach to all hot leads — local SMBs respond better to outreach that names their specific gap ("I noticed your menu isn't visible on mobile") than generic pitches.
- Ignoring chains and franchises as Skip — sometimes the franchisee is the buyer and they have local marketing authority. Verify before skipping.