Prospecting Agent is a local full-stack sales research workspace that coordinates account research, scoring, outreach drafting, supervised review, and export workflows.
A user can give the system a product, an ideal customer profile, and a list of companies. The system researches those companies, scores them, explains the reasoning, drafts outreach, lets the user review the work, and exports a usable prospecting file.
The MVP is intended to let a user create a campaign, upload target companies, run research, review results, and export approved prospects from one local workspace.
The project now includes the Phase 10 MVP flow:
- Campaign setup, listing, and detail pages
- CSV upload with duplicate detection and validation
- Background campaign runs with progress polling
- Results dashboard and account detail workspaces
- Supervised review controls and draft editing
- Local export generation and downloads
- Backend test coverage for health, campaigns, CSV upload, scoring, review, and exports
- Frontend typecheck, lint, and small component tests
- Demo seed script plus sample CSVs for repeatable walkthroughs
CRM integrations, email sending, authentication, billing, and production deployment are still out of scope.
- Copy
.env.exampleto.envif you want to customize local values. - Start the backend from
apps/api. - Start the frontend from
apps/web.
For Phase 4 there are two research modes:
RESEARCH_MODE=fakekeeps the deterministic no-key workflow from Phase 3.RESEARCH_MODE=realuses Tavily and Firecrawl for public web research and requiresTAVILY_API_KEYplusFIRECRAWL_API_KEY.
cd apps/api
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
uvicorn app.main:app --reloadcd apps/web
npm install
npm run devIf you need a custom backend URL:
VITE_API_BASE_URL=http://localhost:8000 npm run dev- Backend health: http://localhost:8000/health
- Frontend: http://localhost:3000
To create a demo campaign and preload accounts:
cd apps/api
python3 scripts/seed_demo.pyTo also run the deterministic fake workflow:
cd apps/api
RESEARCH_MODE=fake python3 scripts/seed_demo.py --run-fake-workflowThe script prints the campaign, run, and results URLs for the browser.
Backend:
cd apps/api
python3 -m pytestFrontend:
cd apps/web
npm run typecheck
npm run lint
npm run test- Open http://localhost:3000
- Click through to
/campaigns - Create a campaign from
/campaigns/new - Upload
samples/devtools_companies.csvon the campaign detail page - Confirm the uploaded accounts appear in the table
- Start the research run from the same page
- Open the run progress page and wait for
completedorpartial - Click
View results - Open one account to inspect evidence, signals, scores, draft, and quality notes
- Approve or reject the account, edit the draft, and return to results
- Create an export for approved accounts and download the generated files
The browser can now show run progress through polling, let the user supervise review decisions, edit drafts locally, and generate export artifacts after a run finishes. The app still does not send outreach or write to a CRM.