About
ClientRadar answers one question: which businesses should we contact first? It combines lead discovery (OpenStreetMap Overpass or CSV import), automated website audits, and rule-based scoring so outreach teams can prioritize from a single Next.js dashboard backed by a FastAPI API.
MVP workflow
- Discover — Pull leads from Overpass by niche tags or import a CSV template
- Audit — Fast HTTP checks plus Playwright screenshots of each site
- Score — Transparent rule-based breakdown (no black-box ML)
- Prioritize — Filter, sort, and track outreach status on the dashboard
Architecture
| Layer | Tech |
|---|---|
backend/ | FastAPI, SQLAlchemy, Playwright audits, pytest suite |
frontend/ | Next.js dashboard (API at 127.0.0.1:8000) |
shared/niches.json | Single source of truth for niches, Overpass tags, and UI selector |
docs/ | CSV import templates |
Niche catalog drives everything: backend registry at startup, Overpass discovery filters, and frontend import/filter UI — add a vertical in JSON (category, overpassTags, Lucide icon, color) and both apps pick it up after restart.
Local development
Backend:
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.txt
playwright install chromium
uvicorn app.main:app --reload
Frontend:
cd frontend
npm install
npm run dev
Open http://localhost:3000 — dashboard talks to the API on port 8000. Run pytest in backend/ for automated checks; see backend/README.md for smoke steps (CSV import, audit, outreach).