An autonomous GTM & user-acquisition engine, run by 14 AI agents.
A standalone, always-on growth service that turns raw signup events into scored leads, compliant multi-channel outreach, human-quality replies, and activation — with a central Orchestrator coordinating the whole funnel and an operator dashboard keeping a human in command.
The whole growth funnel, running itself
The client is a two-sided services marketplace. Growth depends on one hard loop: a new user signs up, and someone has to score them, reach them on the right channel with the right message, answer their reply, and nudge them to their first real action — fast, at volume, and without breaking email/SMS compliance law. Doing that by hand doesn't scale.
The GTM & User Acquisition service is a separate deployment — its own database, its own compute, its own release train — that consumes events from the core product monolith over webhooks and drives the entire post-signup journey autonomously. Fourteen Claude-powered agents, organized into six layers under a central Orchestrator, own segmentation, scoring, channel choice, copywriting, sending, reply handling, and analytics. A human operator supervises everything through a purpose-built admin console — approving, tuning, and overriding, never hand-cranking.
Why a generic marketing stack wouldn't do
Compliance is not optional
SMS falls under TCPA — prior consent, 9PM–8AM quiet hours, STOP keyword, a hard 4-per-week cap, at $500–$1,500 per violation. Email falls under CAN-SPAM. Voice is stricter still. A wrong send is a legal event, not a bounced metric.
Every lead is different
Different service categories need different segments, scoring, channels, and — critically — different voice. Template blasts convert poorly and read as spam.
Dependent on a live monolith
The GTM engine stalls if the core product is down. It needed idempotent processing, retries, and circuit breakers so a hiccup upstream never double-sends or drops a lead on the floor.
LLM cost has to be governed
Running fourteen reasoning agents on every event gets expensive fast. Spend had to be tiered by task and capped daily — per agent — with hard budget gates in the client itself.
Autonomy without a runaway
Agents that send email, SMS, and place phone calls on their own are powerful and dangerous. Every autonomous path needed to be gated, auditable, and reversible — human-approvable by default.
Operators need real control
"Trust the AI" isn't a product. The team needed live per-agent metrics, on/off switches, prompt tuning, and copy approval — without a redeploy.
Fourteen agents, six layers, one Orchestrator
Every agent inherits a common BaseAgent contract — Claude reasoning, structured generation, inter-agent Redis pub/sub, and a full audit log. Models are tiered by cognitive load: Opus for strategy, Sonnet for standard reasoning, Haiku for high-volume personalization — so cost tracks value.
Agents never carry business logic inside Celery tasks — tasks are thin wrappers that instantiate an agent and call execute(). Work flows across priority queues; a Beat scheduler drives recurring jobs; Redis pub/sub lets agents react to one another's output.
From a webhook to an activated user
A single user.created event fans out through the agent pipeline. Every hop is idempotent and logged, so the same event can never double-fire and every decision is traceable after the fact.
Webhook
Monolith event received, acked in <200ms, queued async.
Segment + Score
Behavioral segment + multi-factor lead score computed.
Channel
Best channel chosen — email, SMS, or voice — per consent + fit.
Copy
Sub-ICP-voiced copy generated, compliance-filtered before it ships.
Outreach
Compliant send via Instantly / Telnyx / Retell.
Reply + Activate
Reply classified & answered; activation milestones nudged.
Three channels, each compliant by construction
Cold acquisition through Instantly with managed domain warmup and sequence rotation; lifecycle & marketing mail through AWS SES.
- CAN-SPAM unsubscribe enforced
- Up to 26 A/Z subject/body variants per step, winner-tracked
- Two-way inbox with AI-drafted, thread-aware replies
💬 SMS
Trigger-driven SMS via Telnyx, with Ed25519-verified webhooks and full delivery observability in the dashboard.
- TCPA consent gate + STOP keyword revocation
- Quiet-hours-aware scheduling (21:00–08:00 local shifted)
- Max 4/week cap; every send & status tracked
📞 Voice
Real-time, two-way AI voice calls via Retell AI — turn-by-turn qualification and activation nudges as a third channel.
- AI-disclosure & guardrails locked server-side on every write
- Stricter voice-consent gate than SMS
- Operator-managed agents; ships behind a consent-pending flag
Copy that sounds like a person, not a template
Generic AI copy is the fastest way to look like spam. The Creative layer is driven by a 20-file copywriting knowledgebase — a curated voice playbook — loaded at startup and injected into every generation. Copy is differentiated per sub-ICP(the lead's service category), so two different segments receive genuinely different openings, angles, and seasonal hooks.
A rotation counter guarantees two consecutive generations for the same segment don't repeat themselves — no two leads in a cohort get the same first line.
Escalated copy no longer piles up for a human, either — an auto-retry engine re-runs render → compliance → approve when a template becomes available, recovering variants automatically instead of stranding them in a review queue.
Agent Studio — tune the fleet without a deploy
Autonomy only ships when a human can steer it. The admin console evolved from a static roster into a live control surface, then into a full runtime tuning studio — all backed by a per-agent override store, so changes take effect across web, worker, and beat within seconds and never require a redeploy.
Live metrics & kill switches
Per-agent success rate, token spend, latency, and run counts straight from the audit log — plus enable/disable toggles that flip an agent off across every process in seconds.
Prompt & parameter tuning
Edit an agent's system prompt, switch its model tier (Opus/Sonnet/Haiku), adjust temperature and cadence — at runtime, per agent.
Approval-gated feedback loop
Operators rate runs 👍/👎. Ratings become proposedfew-shot examples that only enter an agent's runtime behavior after a human approves them — augment-not-replace, always revertible.
Evaluation harness
A structured eval layer scores agent behavior against reference cases, so tuning changes are measured rather than guessed — closing the train/tune/verify loop.
The hard part was making autonomy safe
A system that sends legally-regulated messages on its own has to be defended at every seam. These are patterns the build institutionalized — many hard-won from real production near-misses.
⛔ No silent fallbacks
When AI output fails a check, the system escalates the original — it never substitutes a static template and hides the failure. A single early lapse hid four bugs; the rule is now enforced by construction and by test.
🔁 Idempotent by design
Every webhook and every send de-dupes on a stable id. Postgres partial unique indexes enforce single-default and single-primary invariants at the database layer, not just in code.
🧮 Budget-gated LLM calls
A daily token cap (default 5M) is enforced per agent inside the Claude client itself — no reasoning path can bypass the budget gate, and cost is tiered Opus→Sonnet→Haiku by task.
🐘 Postgres-truth testing
SQLite masks real Postgres behavior — partial-index conflicts, GROUP-BY expressions, string-function differences. Critical paths are smoke-tested against live Postgres, not just the fast in-memory suite.
🔐 Verified webhooks
Telnyx (Ed25519) and Instantly webhooks are signature-verified before any state changes. Delivery events are mirrored into the DB and surfaced in the dashboard so nothing lives only in a vendor console.
🚩 Everything ships behind a flag
Auto-send, auto-opt-out, SMS dispatch, and voice outreach all default off and turn on per-flag — so a new autonomous path is proven in the dark before it ever touches a real lead.
Shipped in disciplined milestones
The autonomous funnel
Orchestrator + all six layers, webhook ingestion, lead scoring, segmentation, channel selection, Instantly cold email with sequence variants, Telnyx SMS with TCPA enforcement and observability, the knowledgebase-driven copy engine with its compliance filter, and the two-way inbox with human-gated AI draft replies.
Conversational AI voice
A third outreach channel. Re-architected mid-milestone from a self-built media pipeline to Retell AI, which owns the real-time speech loop, with AI-disclosure and guardrails locked server-side and operator-managed voice agents. Ships behind a consent-pending flag.
Fast auto-reply + Agent Studio
The 3-minute auto-send loop for interested replies, then the Agent Studio arc: live metrics and toggles, runtime prompt/parameter tuning, an approval-gated feedback loop, and an evaluation harness.
Lifecycle email via AWS SES
Extending owned-audience lifecycle and marketing mail on SES alongside the Instantly cold-email channel — the next stage of the activation story.
A production system, not a prototype
coordinating the full post-signup funnel autonomously under one Orchestrator, tiered across Opus, Sonnet, and Haiku.
email, SMS, and voice — each compliant with TCPA / CAN-SPAM by construction, not by afterthought.
from an interested reply to an auto-sent, thread-aware response — momentum captured with no human in the loop.
prompts, model tiers, kill switches, and approved examples take effect fleet-wide in seconds.
a durable, versioned data model with a full per-agent audit trail behind every decision.
of operator control — leads, campaigns, inbox, sequences, voice, copy review, analytics, and the Agent Studio.
Idea in your head? Let’s
bring it to life.
Got a project? A wild idea? Or just want to say hey?
We're here for all of it — reach out anytime.
