Cavisite
Lead intake for dentist offices that still do not have websites.
The first vertical slice is a configurable scraper command that searches a US city or ZIP code, filters to Google Maps listings without websites, and stores those prospects in PostgreSQL.
Default market
Memphis, TN
Persistence
`prospects` table
Provider order
Google, then SerpAPI
Run the scraper
npm run scrape:prospects -- --location "Memphis, TN" --provider auto