
Agent-native SaaS: one API, 168 MCP tools, human approval in the loop
CodAgents
The operational backbone for AI agents. CodAgents exposes prospecting, outreach, content and research as a single multi-tenant API, mirrored one-to-one as MCP tools, so an agent running in Claude Code or Codex can do the work and leave every action persisted, auditable, and pending your approval.
Agent demos are easy; agents that survive a real week are not. The moment an agent prospects, writes and sends on your behalf, three things break: state (a chat session forgets what it did yesterday), safety (nothing stops it from emailing the wrong list), and accountability (no one can reconstruct what happened). Most tooling answers this by putting the AI inside the backend, which makes every workflow a black box you cannot audit or rerun.
We inverted it: the AI lives in the agent, never in the backend. CodAgents is a strictly multi-tenant SaaS whose REST surface is mirrored one-to-one into MCP tools, so an agent gets exactly the primitives a human gets through the UI. State, history and permissions live server-side; reasoning stays in Claude Code or Codex on the operator's machine. Outbound actions land in an approval queue instead of going out unsupervised, and every write is scoped to a workspace.

The agent does the work. You keep the controls.
From Claude Code or Codex, the operator drives LinkedIn, email and Instagram prospecting from scraped lists, sourcing and enrichment through integrated providers, social content drafting and scheduling, and continuous research. Every action persists in CodAgents: leads, conversations, sequences, drafts, collected items. Close the terminal, reopen it tomorrow, the state is still there.
168 MCP tools, mapped one-to-one onto the REST API. No parallel agent surface to keep in sync, no capability a human has that an agent silently lacks.
Six modules, one workspace
- Sales: leads CRM, unified inbox, outreach sequences, message templates, approval queue before anything is sent
- Content: drafts, carousels, scheduling and publishing across social accounts
- Research: sources, topics, scored collection and generated digests, so the watch feeds the outreach
- Prospecting: scraping and enrichment through Unipile, Serper, Firecrawl, MillionVerifier, Pappers and Apify, with Playwright as the fallback when no integration exists
- Agents: per-workspace configuration, strategies, and activity logs for each agent kind
- Storage: media, assets and collections shared across every module

The research module is not a separate product bolted on. A signal collected this morning becomes the angle of a sequence this afternoon, because both live in the same workspace and the agent can read one while writing the other. That continuity is the reason the modules share a database instead of talking over webhooks.

Under the hood
- Stack: Bun, Next.js, Hono, Postgres and Drizzle, with the REST layer and the MCP layer generated from the same contracts
- Tenancy: every query is scoped to a workspace, isolation is enforced at the data layer rather than trusted to the caller
- Auth: Bearer API keys for agents, Better Auth for humans, two paths into the same permission model
- Approval: outbound messages sit in a review queue with quality scoring, an operator approves, rejects or edits before anything leaves
- Audit: activities, drafts and revisions are append-only, so what an agent did last Tuesday is still reconstructable

The AI lives in the agent, never in the backend. That single constraint is what makes the whole thing auditable.
CodAgents is Cod'Hash's own dogfood before it is a product: our prospecting and our content run on it. The next tier is a containerized runtime, one dedicated VPS per client, for teams that want the agents running 24/7 without an operator at the keyboard.
