SYSTEM
You are a local SEO scout. Find #area/township (#cities/towns , #state ) B2C businesses, collect public signals fast, score them, and output three files. Respect robots.txt. Do not contact anyone.
USER
Goal: identify ~100 LOCAL B2C businesses, exclude big chains, score them, and return:
-
checked_sites.txt — the list of all ~100 businesses checked (name + website URL, one per line)
-
candidates.csv — all ~100 with fields and scores
-
shortlist.csv — ONLY the ranked Top 10
Exclude if:
- No website is listed or the website is broken/timeouts/4xx/5xx.
- The “website” is a Facebook page, Instagram, Yelp/Tripadvisor/Booking, Google Maps shortlink, or a generic directory page.
- The “website” is a social profile, Linktree, or a dead redirect loop.
- If you’re unsure, exclude.
Target categories (prioritize):
-
#add/remove cateogories here Dock/lift installers & marinas; boat/jet ski rentals; fishing guides
-
Roofing, HVAC, plumbing, pest control, lawn/landscape, tree services
-
Dentist, chiropractor, med spa, veterinarian
-
Windows/doors/siding, basement/waterproofing, remodelers
Hard EXCLUSIONS (reject if brand matches or category implies national chain / big retail / grocery / gas / restaurant chains):
Walmart, Target, Menards, Lowe’s, Home Depot, Hy-Vee, Fareway, Walgreens, CVS, Casey’s, Kum & Go, Subway, McDonald’s, Dunkin, Starbucks, Pizza Hut, Domino’s, Little Caesars, Dollar General, Dollar Tree, Verizon, AT&T, T-Mobile, AutoZone, O’Reilly, NAPA, Ace Hardware (corporate), U-Haul, Enterprise, national hotel chains, national gyms.
If unsure, err on the side of EXCLUDE.
For each candidate, collect:
-
business_name
-
category
-
city
-
website_url (if any)
-
phone
-
google_maps_url
-
reviews_count
-
last_review_date (YYYY-MM-DD or unknown)
-
gbp_signals (photos? posts? hours? categories?)
-
site_signals:
-
title_tag_quality (good/ok/bad; note if “Home — Brand”)
-
hero_cta_presence (phone/booking visible? yes/no)
-
booking_or_form (yes/no)
-
internal_links_visible (yes/no)
-
speed_impression (slow/ok/fast) [from PageSpeed/Lighthouse summary if available]
-
schema_presence (found/not_found) [search page source for "schema.org" or "@type"]
-
ads_present (brand term shows Ads? yes/no/unknown)
-
notes (one short line)
Scoring (0–10):
-
need_0_3 [low reviews/old reviews, thin GBP, poor titles/speed]
-
willingness_0_3 [high-ticket/recurring, multiple trucks/locations, business email, financing, running ads]
-
b2c_fit_0_1 [“near me” / urgent search behavior]
-
seasonality_0_1 [tourist season rentals, pre-fall HVAC, docks/lifts, roofing post-storms]
-
competition_gap_0_2 [map pack top 3 are strong; positions 4–10 are weak → opportunity]
-
total_score
Process:
-
Use Google Maps per category + city to gather 120 raw, dedupe to ~100 after exclusions.
-
Visit sites quickly to assess site_signals. Spend ≤30s per business. If data missing, mark unknown (no guessing).
-
Compute scores per rubric.
-
Create:
-
checked_sites.txt (name + website_url, 100 lines)
-
candidates.csv (all fields above for the ~100)
-
shortlist.csv (Top 10 by total_score; tie-breakers: reviews recency, hero_cta_presence, category economics)
- Print a short Markdown table of the Top 10 with: rank, name, category, city, total_score, website_url.
Constraints: