🏕️SnackPro Camp GTM
outreach as allon@snackpro.ai

Agent control plane

Discovery → Enrichment → Quality. Toggle nightly agents, or run any on demand.

Nightly enrichment OFF
When ON, enabled agents run automatically via /api/cron/agents. "Run now" & the priority box work regardless.
Priority run — plain English, on demand

Discovery — find camps

Directory Harvestersuccess
Crawls camp directories & association finders (ACA, MySummerCamps, US Sports Camps, iD Tech, Jewish/Diabetes finders, Canadian/UK/Irish associations) and harvests candidate camp sites.
last: found 36 · new 24 · enriched 0
Search Sweep (backstop)
Catch-all long-tail discovery across {camp type × region} via a search API, so no camp is missed. Needs SERPAPI_KEY; safe no-op until configured.
Chain Expander
Reconciles multi-location chains/franchises (YMCA, JCC, KE Camps, iD Tech…) under a shared parent org and flags location counts.

Enrichment — complete the record

Site Crawler & Contact Extractorsuccess
Fetches each camp's website + contact/about/staff/register subpages and extracts every EMAIL (typed + confidence-scored), PHONE (E.164), CONTACT FORM, social link & named person. The workhorse.
last: found 1600 · new 0 · enriched 1456
Classifier
Assigns multi-label category tags, residential|day setting, faith affiliation & age range from name/description (AI when keyed, heuristics otherwise).
Geocodersuccess
Resolves each camp's address to lat/lng via free OpenStreetMap Nominatim for the map view & regional filters.
last: found 362 · new 0 · enriched 328

Quality — clean & score

Dedupersuccess
Merges records that are the same camp (shared website host / phone), keeping the richest and folding in the rest.
last: found 0 · new 0 · enriched 0
Validator (dead-site → INACTIVE)removing
Detects dead websites and marks them INACTIVE. The only agent that can deactivate a camp — cautious, OFF by default.
Scorersuccess
Recomputes contact rollups & the 0-100 actionability qualityScore that drives the default sort and the 'ready to outreach' filter.
last: found 5000 · new 0 · enriched 0

Recent runs

successgeocodermanualfound 362 · new 0 · enriched 32821:17
successscorermanualfound 5000 · new 0 · enriched 021:16
successdedupermanualfound 0 · new 0 · enriched 021:16
successscorermanualfound 5000 · new 0 · enriched 020:38
successsite_crawlermanualfound 1600 · new 0 · enriched 145618:29
successgeocodermanualfound 1949 · new 0 · enriched 193714:30
successscorermanualfound 5000 · new 0 · enriched 014:30
successdedupermanualfound 0 · new 0 · enriched 014:30
successgeocodermanualfound 1781 · new 0 · enriched 177022:49
successscorermanualfound 3087 · new 0 · enriched 022:48
successdedupermanualfound 0 · new 0 · enriched 022:48
successgeocodermanualfound 1045 · new 0 · enriched 103318:32
successscorermanualfound 1318 · new 0 · enriched 018:32
successdedupermanualfound 0 · new 0 · enriched 018:32
successsite_crawlermanualfound 120 · new 0 · enriched 11218:21
successsite_crawlermanualfound 50 · new 0 · enriched 5017:56
successdirectorymanualfound 36 · new 24 · enriched 017:56
successscorermanualfound 397 · new 0 · enriched 017:35