AgentryBook a call
← Writing
Case study

An autonomous outreach engine that runs a consulting pipeline

A multi-channel AI-agent system that sources, qualifies, writes, sends, and triages — daily, unattended. Built in-house, in production.

TL;DR

We built an autonomous system that runs our own consulting pipeline end to end: it sources prospects from LinkedIn and email, scores each one against a target profile with an LLM, writes a personalized opener, sends across channels under human-safe rate limits, detects and classifies replies, and drafts responses for us to approve. It runs on hourly crons with no human in the loop until a real prospect replies — and it's a working demonstration of exactly what we build for clients.

The problem

Independent consultants live and die by pipeline, but cold outreach is a grind: find the right people, research each one, write something that doesn't read like a template, send it without torching your sender reputation or your LinkedIn account, then actually notice and respond when someone bites. Done by hand it's hours a day. Done by a generic SaaS tool it's spammy and converts poorly.

We wanted a system that did the boring 95% autonomously and only surfaced the 5% that needs a human: a real reply from a real prospect.

What we built

A closed loop that runs on a schedule:

source → score → draft → send → detect reply → triage → follow up

Engineering decisions worth calling out

What makes this a production system and not a script:

Cost-engineered by design

LLM scoring gates the expensive steps, so no credit is spent on a poor-fit lead. Email reveals are held to one credit each. Prompt caching keeps a campaign's context warm across a batch. The whole pipeline runs on free-tier compute, database, and hosting plus metered LLM spend.

Account safety as a first-class constraint

LinkedIn and email each carry rolling-window rate limits, per-mailbox warmup ramps, and per-campaign fair-share caps — because the failure mode that matters most isn't a bug, it's a banned account or a burned sending domain.

Deliverability as engineering

Plain-text bodies, one-tap unsubscribe headers, domain-aligned message IDs, mailbox warmup, automatic bounce-pausing, and a filter that recognizes and discards warmup-network traffic so it never pollutes the real inbox.

Idempotent and durable

Every send checks for a prior send; every contact is recorded in a database-backed ledger that survives ephemeral compute. Re-runs are safe by construction.

Multi-tenant from the foundation

Per-user account routing so a teammate's leads send from their own connected accounts, with row-level security on every table that holds credentials or personal data.

Dynamic targeting

Audience and offer are data, not code: a campaign carries its own profile, pitch, and voice, so pointing the whole machine at a new market is a config change, not a rewrite.

The stack

Python workers on scheduled serverless compute, Postgres, a Next.js dashboard on Vercel, the Anthropic API for scoring and drafting and reply triage, a unified LinkedIn + email API for sending and enrichment, and email verification and warmup tooling. One person, end to end.

Status & what it demonstrates

The system is live and running daily — sourcing across multiple campaigns and sending across LinkedIn and email on autopilot, with email volume deliberately throttled while new domains finish warming. Reply results compound as that warmup completes and the funnel fills.

More to the point: it's a working demonstration of exactly what we build for clients — a real, autonomous, multi-channel AI-agent system with the unglamorous production concerns handled, not hand-waved. Most people selling “AI agents” can show you a demo. We can show you one we trust enough to run our own business on.

Want one of these for your team?