~/systems · companion to the case study

Fail closed, or don't ship.

Company: Omnibound AI · AI search marketing platform · Role: AI GTM Engineer · This page: the reliability layer under the case study numbers, not the pitch

88%Domains DMARC/SPF-clean
98.9%Bulk batch validator PASS
36.6KICP accounts sized (NA TAM)
~40Defects found + fixed, one audit day
8/50Fail-closed catches, live test

~/walkthrough · 2 min, narrated

Why a second page for the plumbing

The case study tells the revenue story: 5 logos, $897K+ pipeline, an engine live in under 3 days. None of that holds up if the layer underneath is sloppy - a mis-scored lead, a fabricated "signal," a duplicate send, or a domain that gets blocklisted mid-campaign will quietly cap every number above it.

This page is the part most GTM builds skip: the audits, the fail-closed gates, and the infrastructure discipline that make the funnel numbers trustworthy instead of just fast.

SYSTEM 01

Deliverability engineered, not assumed

A reusable mailbox-and-domain audit runs against Smartlead and live DNS: every sending domain checked for SPF, DKIM, and DMARC; every mailbox scored READY / WARN / NOT-READY against warmup reputation and blocklist status. Volume is deliberately throttled well under capacity rather than run hot.

MetricCurrent
Mailboxes tracked272
Sending domains, DMARC/SPF-compliant121 / 137 (88%)
Spamhaus DBL listings0
READY daily capacity vs. committed volume~3,000/day capacity, ~5% utilized
Mailbox status split198 READY · 42 WARN · 32 NOT-READY

The 5% utilization is intentional headroom, not idle capacity: committed send volume stays a fraction of what the infrastructure can safely carry, so reputation has room to absorb spikes without threatening inbox placement.

SYSTEM 02

An enrichment engine that fails closed

Every claim used in outbound copy - a funding signal, a "this company shows up in AI search answers," a person's current title - has to be verified against a live source before it can be sent. No verified claim, no copy; a blocked article or a dead API key holds the lead rather than guessing.

retrieve homepage + up to 4 article scrapes, cached per domain verify category confirmed via a verbatim homepage quote, not a keyword guess corroborate signal needs an exact-host primary source, or 2+ independent hosts route verified signal -> signal_led · verified category -> niche · else -> volume enforce ~20 deterministic Python checks, model output never self-graded on failure one retry with a hint, then the lead HOLDS - it never ships unverified

That discipline came from a real incident: a fabrication slipped through on July 2. The founder call two weeks later wasn't to patch the deterministic checker and move on - it was to compare it head-to-head against a slower, harder path where a Claude agent researches each lead directly instead of a fixed rule set.

Live 50-lead test: the agent path caught 8 leads the deterministic orchestrator's rules structurally couldn't - a stale title, a departed hire, a company that had shut down. It also ran 25% cheaper in retrieval credits (12.8 vs. 17.1 per lead).

The slower path won and became the default for real runs. Compute got more expensive per lead; false positives to real people got rarer. Same week, the engine dropped its one remaining third-party LLM dependency for the AI-search check and replaced it with the agent's own search tool - one less vendor in the trust chain, and the copy stopped naming any specific AI product it hadn't actually queried.

SYSTEM 03

Same-day audit discipline

Four parallel audits ran in one sitting - factual pipeline, intel/scoring, bulk runners, live-send safety - against the actual code and live data, not a design doc. ~40 findings surfaced; every critical and high was fixed the same day, then re-validated on a live batch.

Send safetyThe live-send confirmation gate didn't cover the push scripts or raw API calls at all - rewritten and proven against a 12-case block/allow test matrix before being trusted again.
Silent data lossA crash between "sent to the platform" and "recorded in the database" could make an already-contacted lead invisible to future dedup. Both writes now happen as one atomic transaction.
Dedup integrityDo-not-contact matching was case-sensitive end to end, and LinkedIn URL dedup treated a trailing slash as a different person. Both normalized.
Status syncReply-status sync had no pagination - anything past roughly the 100th lead in a campaign silently stopped updating, and a "replied" status could be overwritten back to "sent." Both fixed.
Post-upload reconciliationAfter every push, the system re-fetches what the sending platform actually accepted rather than trusting its own request. Caught in production: the platform's own dedup silently rejected 1 of 30 leads inside a bulk response that reported success - now only genuinely-accepted leads get recorded.
SYSTEM 04

Bulk operations, sized before they run

Total addressable market was cross-checked across two independent sources before any list-building started, rather than trusting one vendor's count.

Segment (NA, 51-5,000 employees)ICP accounts
Core tech / SaaS22,714
Fintech / B2B finance8,372
HR tech3,839
EdTech / enablement1,692
Total (~109K contacts)36,617

Every batch job into that pool runs through fail-closed gates before a single row moves: a missing suppression file kills the run rather than silently sending anyway, competitors are hard-excluded, and previously-contacted people and their whole domain are skipped by default. The most recent full batch processed 2,804 contacts across a 6-way engine and mailbox-combo grid, with 2,772 passing validation - 98.9%, run in dry mode and reviewed before any send authorization.

~/proof · not slideware

Where this actually lives

Screens, not diagrams: the real repo, the real sending infrastructure, the real enrichment pipeline.

PROOF 01 · THE CODEBASE

Real scripts, in task order

scripts/build_cohort.pysourcing - fail-closed suppression, competitor exclusion, live MX-combo routing
scripts/factual_orchestrator.pyenrichment - verbatim-quote gates, deterministic Python-owned validator
scripts/mailbox_audit.pylive Smartlead + DNS audit, READY / WARN / NOT-READY scoring
scripts/bulk_master_run.pybatch validator across the full engine x MX-combo coverage grid
scripts/push_factual_to_smartlead.pygated push - dry-run default, post-upload reconciliation against the platform
scripts/push_factual_to_heyreach.pyLinkedIn push, same validator gate as email
reports/every audit, every run, dated - nothing overwritten, everything re-checkable
PROOF 02 · THE SENDING INFRA

Smartlead, the actual mailbox fleet

272Mailboxes tracked
198READY (42 WARN, 32 NOT-READY)
137Sending domains, 121 DMARC/SPF-clean
5%Daily capacity utilized, on purpose
0Spamhaus DBL listings

Provider mix: 201 Gmail · 41 Outlook · 30 SMTP. The same numbers that gate every send are what the reusable audit script pulls live, not a one-time snapshot.

PROOF 03 · THE ENRICHMENT PIPELINE

Clay, the pipeline that fails closed

Retrievehomepage + up to 4 article scrapes, cached per domain
Verifycategory confirmed via verbatim homepage quote
Corroborateexact-host primary source, or 2+ independent hosts
Routesignal_led / niche / volume, by what's actually verified
Enforce~20 deterministic checks, model output never self-graded
Pushgated, reconciled against what the platform actually accepted

The loop closes on itself

Every send feeds back into the same suppression list that gates the next one: reply classifications (bounce, unsubscribe, left-company, negative) get pulled before each re-engagement cycle, and stop-on-reply is enforced at the platform level as a second net. The system that sends today is measurably harder to send a bad lead through than the one that shipped six weeks earlier - the fail-closed changes compound instead of getting patched around.

"Every claim ships verified or it doesn't ship. The discipline underneath the funnel is the whole system." - the operating principle behind this layer, mirrors the one behind the case study