Why This Document Exists
Most agencies will not tell you how they run your campaigns. They call it a trade secret, but the real reason is simpler: most of them are running spreadsheets and a virtual assistant who copies and pastes.
We tell you the full architecture because the architecture is the product. If you are paying us to run a managed pipeline, you deserve to know whether there is a real system on the other side or just a person.
This page documents every layer of the ENPITS pipeline: what it does, what happens when it fails, and what stays visible to you at every step.
Log vs. Logic
A typical vendor will tell you what they shipped:
"This week we sent 240 emails and got 6 replies."
That is a log. It tells you nothing about whether the 6 replies were qualified, whether the 240 were safe to contact, or what happens the day a step fails.
We tell you what the pipeline enforces:
"Every lead passes seven stages (source, filter, verify, research, personalize, suppress, send), and every stage has an error path, a retry policy, and a fallback that keeps your domain safe even when a step breaks."
The seven stages below describe that enforcement.
The Seven Stages
The pipeline is a single directed graph. Leads enter at Stage 1 and either reach Stage 7 as a sent message on your behalf, or get parked at one of six earlier exits with a reason logged against the lead record.
Stage 1 Source -> lead database query
Stage 2 Pre-AI Filter -> cheap rules reject before any AI cost
Stage 3 AI Classifier -> Anti-ICP dossier match + signal extraction
Stage 4 Research -> company-specific context assembly
Stage 5 Personalize -> first-touch message generated under rules
Stage 6 Suppression -> three independent gates before send
Stage 7 Send + Log -> Gmail send + row written to outreach log
Each stage is described below. If you are evaluating whether to hire us, the detail that matters most is not the stage itself. It is the failure path under each stage.
Stage 1: Source
Question the stage answers: What is the universe of people we could contact this week?
A verified lead database query runs on a schedule you approve. Queries are versioned, so when we adjust the ICP definition mid-campaign you see the diff in the next weekly report.
What happens when a source fails
If the upstream database rate-limits or returns empty, the stage writes source_failed to the daily log and halts downstream stages for that run. No lead is manufactured from memory. No fallback database is used silently. The next run retries with exponential backoff.
What you see
Weekly report: the exact query definition, the returned count, and the delta from the previous week. If a source failure happened, a Slack message arrives within minutes of detection.
Stage 2: Pre-AI Filter
Question the stage answers: Can we reject this lead before spending a cent on AI classification?
Deterministic rules run before any language model touches the record. These rules are cheap, explainable, and catch a large share of rejections at zero inference cost.
What the filter catches
- Missing fields (no first name, no company domain, no role)
- Hard excludes (government emails, role accounts, known competitor domains)
- Geographic scope violations (outside the campaign's target regions)
- Domain blocklist overlap (anything on your suppression list from previous campaigns)
Why the order matters
Running cheap rules before expensive AI calls is the difference between a pipeline that scales to a thousand leads a week and one that breaks at two hundred. Every rule that can be a simple string check stays a simple string check. AI is reserved for judgment, not for tasks deterministic code can answer faster and cheaper.
What happens when the filter fails
A filter crash is a logic bug, not a business failure. The run halts, the error is escalated to Slack immediately, and no leads flow through until the bug is fixed. There is no "skip the filter and try again" path.
Stage 3: AI Classifier
Question the stage answers: Is this lead actually a fit, or does it look like a fit on paper?
This is the expensive stage, and it is fenced by Stage 2 for a reason. A classifier prompt runs against the lead record plus a small context window of public company information, and returns one of four verdicts: PASS, HOLD, KILL, or REVIEW.
- PASS: clear ICP, no Anti-ICP Dossier hits. Proceeds to Stage 4.
- HOLD: ambiguous signal. Routed to a background enrichment queue that tries again with fresh context after a cooldown.
- KILL: structural Anti-ICP match. Rejected and never re-evaluated on this campaign.
- REVIEW: edge case. Escalated to Brooks for a brief manual review.
What happens when the classifier fails
API errors fail open to HOLD, not PASS. A lead we could not classify is never treated as qualified. The error is logged with a retry counter, and the lead re-enters the classifier queue after the cooldown.
What you see
The classifier returns a one-sentence reason for every decision. Those reasons appear in your weekly report grouped by verdict, so you can spot drift in how the classifier reads your ICP.
Stage 4: Research
Question the stage answers: What does this specific person appear to be working on this quarter?
A research task assembles a small, structured context pack for each PASS lead: recent public posts, the company's last two hires in the function we are selling to, any press or funding event in the trailing 90 days, and the prospect's observable tech stack where relevant.
This stage is slower on purpose. A research task takes roughly a minute or two per lead. That is the cost of not sounding like a stranger.
What happens when research comes up empty
If no signal meets our freshness threshold, the lead is routed back to HOLD and re-evaluated later. We do not fabricate a signal. We do not send a generic message with a placeholder. A lead without a real signal is not worth your domain reputation.
Stage 5: Personalize
Question the stage answers: What is the single specific sentence that earns the reply?
A personalization task takes the Stage 4 context pack and generates the first-touch message under the five rules documented in the Sniper Formula. The message is enforced against those rules before it leaves the task:
- Under 90 words
- Opens with a signal from Stage 4, not a pitch
- Names a specific pain grounded in the prospect's own public work
- Closes with a single asynchronous CTA that costs under 10 seconds
- Zero em dashes, zero "I hope this finds you well," zero generic compliments
What happens when a rule is violated
The message is regenerated, up to three attempts. If the third attempt still violates a rule, the lead is moved to REVIEW and Brooks writes the message manually. No message that violates a rule is ever auto-approved.
Stage 6: Suppression
Question the stage answers: Is it still safe to send to this person right now?
Every message that made it this far is re-checked against three independent gates documented in the Suppression 3-Gate Protocol. The gates run in order: sourcing, writing, and most importantly, sending.
The sending gate is the last line of defense. It re-verifies that the email has not opted out, has not bounced in a previous campaign, and does not match any new patterns added to the Anti-ICP Dossier since the lead was sourced.
What happens when a suppression match fires at the last second
The message is killed, logged as suppressed_at_send, and the Stage 7 row is written with status blocked. You see it in your weekly report with a one-line reason. We would rather lose a message than lose a domain.
Stage 7: Send and Log
Question the stage answers: Did the message land, and is the receipt preserved?
The message is sent through your sending domain, not ours. Every send writes a row to a persistent outreach log with the following immutable fields:
- Timestamp, lead ID, message body, subject
- Sending domain, delivery status, bounce reason if any
- Thread ID for reply detection
- Reviewer pass/fail if the message was auto-reviewed
The log is the source of truth. Reports are generated from it. Follow-ups are scheduled from it. Disputes are resolved with it.
What happens when a send fails
A send failure triggers a three-tier response:
- Retry with exponential backoff if the failure is transient (rate limit, temporary 5xx).
- If the failure persists, the lead is routed to a manual queue and you get a Slack notice.
- If the pattern repeats across multiple leads in the same hour, the entire campaign halts and a diagnostic runs before any further sends.
We treat a send failure the way a pilot treats a red light. Not something to route around.
The Invisible Eighth Stage: Reply Detection and Hand-off
Everything above is outbound. The eighth stage is the part most agencies forget: what happens when the prospect replies.
Every inbound message is classified into one of four buckets within minutes:
- INTERESTED: hand-off to you via Slack, with the thread context and a suggested next action.
- OBJECTION: an objection response template is drafted, reviewed by Brooks, and sent with your approval.
- OPT-OUT: logged to your suppression list immediately, no exceptions, no "one more email."
- NOISE: auto-responders, out-of-office, wrong department. Parked without action.
The point of the eighth stage is that the goal of the pipeline is not sent emails. It is booked meetings. Everything upstream exists to make the eighth stage productive.
What Stays Visible
At every stage, three things are always available to you:
- The rule or prompt. You can read exactly what the classifier, researcher, or personalizer is doing. No black box.
- The log row. Every lead has a complete history, from source query to final send or rejection.
- The one-sentence reason. Why a lead was PASSED, HELD, KILLED, or SUPPRESSED, in human language, in your weekly report.
If any of those three things is ever missing from something we do for you, that is a bug and you can hold us to fixing it.
What We Will Not Do
- Run your campaign on our sending domain. Your domain, your reputation, your asset.
- Hide the rules. If you ask for the current prompt of any stage, you get it.
- Retry into suppression. An opt-out is permanent, enforced at three gates.
- Fabricate signal. If Stage 4 comes up empty, we hold the lead rather than generate a message without grounding.
- Sell your data. The pipeline reads public signals only. We do not maintain or monetize a lead database.
Why This Works at a Small Scale
This architecture was designed for a single operator, not a room full of SDRs. Two consequences follow.
Lower ceiling. We cannot serve a business that needs a hundred BDRs on day one. That is fine. There are agencies for that.
Higher floor. Every client gets a pipeline that was built by the person you are hiring, not handed off to a junior contractor. When a stage breaks, the same person who wrote it is the one who fixes it. No ticket queue, no handoff delay.
If you are running a small agency and you are tired of pipelines that disappear into an operations team, this architecture is built for you.
Related Documents
- Sniper Formula: the psychology behind every first-touch message
- Suppression 3-Gate Protocol: the three gates behind deliverability
This document is part of the ENPITS Proof of Work series. Each document in the series is an attempt to move one more decision from behind the curtain to in front of it.