Salvo
Deliverable

Architecture

Salvo is four agents orchestrated through a state machine, persisted in Postgres, with deterministic guardrails around deliverability and reply classification.

External dataApollo.ioHunter.ioClearbitZoomInfoSalvo agentsAgent 1SourcerICP filter, enrichmentAgent 2CopywriterPersona-aware sequenceAgent 3SenderThrottle, warmup, sendAgent 4QualifierClassify, score, pushStatePostgres (Drizzle)campaigns · leads · email_sequences · replies · agent_runsOutputsCRM (HubSpot/Pipedrive)Slack notifyOperator dashboardClaude API + mlx-brain
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.