Deliverable
Architecture
Salvo is four agents orchestrated through a state machine, persisted in Postgres, with deterministic guardrails around deliverability and reply classification.
Stack recommendation
- Frontend / API: Next.js 15 (App Router) + React 19
- DB: Postgres + Drizzle ORM
- LLM: Claude (Haiku 4.5 for copy, Opus for classification calibration)
- Lead data: Apollo.io API (Hunter as fallback for missing emails)
- Sending: Smartlead (multi-mailbox + warmup) or Instantly
- CRM push: HubSpot / Pipedrive API; Slack for sales notify
- Orchestration: Postgres-backed state machine over Vercel Cron / Trigger.dev
Why not n8n / Make
n8n is excellent for prototyping but breaks down on (a) per-mailbox throttling logic, (b) reply classification reliability, and (c) auditability when something goes wrong. Postgres-backed state machine + typed agent code is the maintainable shape for a production pipeline. n8n stays useful for ad-hoc CRM webhooks at the edges.