Nine stages, one question.
A website goes in. Nine stages later, between twelve and twenty companies come out, each one carrying the evidence that put it there. This is the whole machine, in order, including the parts that throw work away.
- Input
- One website
- Output
- 12–20 companies / day
- Refuses
- Uncited claims
- Free filter~1,000
- Harvested~300
- Qualified40–50
- Contactable25–28
- Sent12–20
A thousand companies are checked so that between twelve and twenty are contacted. The engine is built to throw work away.
Design targets from the engine’s own volume model, per customer per day at steady state. Not a customer result.
The biggest problem isn't volume. The biggest problem is targeting.
Only a small share of any market is evaluating a purchase in a given month. Most outbound software treats every company as equal and then spends its engineering on sending faster. The nine stages below spend it on deciding better.
Every other tool asks
“How can we send 1,000 more emails?”
We ask
“Which 20 companies should we contact today?”
01–04Deciding whonothing is contacted yet
First it learns your business. Then it refuses most of the market.
Nothing is contacted in the first four stages. They exist to make the fifth defensible.
- 01
Business intelligence
What does this company actually sell, and to whom does it already win?
The first thing the system receives is a website. It does not go looking for leads. It reads the business the way a consultant would: services, pricing floors, geographic reach, delivery capacity, positioning, and the customers it has already won and lost.
A website alone is not enough, and we do not pretend otherwise. Agency and service-business sites are the least differentiated pages on the internet, and a profile built from one produces a vague ideal customer that quietly poisons every stage after it. So onboarding includes a short interview and your won-and-lost list. The interview is a requirement, not an upsell.
The profile also records what must never be contacted: your existing clients, your partners, and anyone already on your suppression list.
Emitsbusiness profile
- 02
ICP intelligence
Who should you sell to, and is there enough of them to be worth the month?
The profile compiles into two to four concrete hypotheses rather than one blurred average — each a specific combination of vertical, geography, size band, and the signals that would indicate a buying window in that segment.
Each hypothesis is then backtested against the customers you actually won. If the compiler cannot recognise your own best accounts, the hypothesis is wrong and gets rewritten before a single company is harvested.
The compiler also sizes the universe before it promises anything from it. A narrow ideal customer produces a smaller monthly delivery, and the system says so up front instead of padding the number later.
Emits2–4 ICP hypotheses
- 03
Prospect discovery
Who exists at all?
Only now does the system build a candidate universe: thousands of companies assembled from place data, public registries, and organisation search, deduplicated against itself and against everyone you have already been shown.
This list is the least valuable artifact in the pipeline. Anyone can buy one. It exists so the next stage has something to reject.
Emitscandidate universe
- 04
Qualification
Not can we contact them — should we?
This is the stage the company exists for. A free deterministic pass runs first, because it costs nothing and removes most of the list: mail and domain records, site builder markers, an existing agency footprint, whether there is any contactable path at all.
What survives is harvested — technology in the page, activity in the public ad libraries, roles in the job feeds, a change digest from the web archive, page performance, public review counts. Every finding is stored as a row with a claim, a source URL, the moment it was observed, and a shelf life, because evidence goes stale and a score built on stale evidence should decay with it.
Then the gate. A company needs at least one trigger-class signal less than forty-five days old. Fit alone never qualifies — a company that matches your ideal customer perfectly but shows no timing event is not rejected, it waits in a nurture pool until something changes. And signals have to be independent: one hiring event detected three different ways is still one event, and it is counted once.
Emitsqualified pool
Signal trace8 signalsWindow openAdvertisingHiringSiteReputationVerdict180 days agoTodayQualification76%Illustrative record. Halden Dental Group is fictional; the source types are the public ones the harvester reads.
Signals plotted8 rows- Advertising
- Meta pixel added to the tag container 2026-03-25
- Advertising
- Meta ads stopped — no active creatives 2026-05-21
- Advertising
- Google ads last served 2026-06-14
- Hiring
- Posted a treatment-coordinator role 2026-06-29
- Site
- Homepage unchanged since September 2024 2026-04-21
- Site
- Mobile LCP 6.1s, performance 34/100 2026-07-24
- Reputation
- 4.2★ across 41 reviews 2026-03-09
- Reputation
- Nearest four practices sit at 4.6–4.8★ 2026-08-05
04Inside the qualification gate
Before it commits, it argues with itself.
A model asked to justify a decision will justify it. So the engine is not asked once. A qualifier states the case, an adversary attacks its weakest link, and the case is rewritten or dropped.
- ProposeA qualifier states the case from the evidence.
- ChallengeAn adversary attacks the weakest link in it.
- ReviseThe case is rewritten, or dropped.
The judge never browses. It sees only the harvested evidence rows, numbered, and it must name the rows it used for every score it gives. That requirement is enforced in code rather than requested in a prompt: an evidence id that does not exist gets one retry, and then the criterion is scored zero.
Each case is judged three times with the evidence presented in a different order, and the middle score is taken — a model that changes its mind when you shuffle the inputs was never reading the inputs. A second pass then tests every surviving claim against the evidence it cited and deletes the ones that do not follow. If the buying-window claim loses all of its evidence, the company is demoted rather than shipped.
Scores come back as small anchored ordinals, never as a confident-looking number out of a hundred. A judge asked for two decimal places will invent them.
Qualify Halden Dental Group for outreach this week?
- ProposeQualifier
Paid acquisition ran and then stopped. The tracking pixel is still live in the container but there are no active creatives, and the last Google ad served on 14 June — an eleven-week stop across both platforms.
Meta Ad Libraryfacebook.com/ads2026-08-14 - ChallengeAdversary
A stop event is not a buying window. Spend may have moved to an agency account under a different payer, and the pixel looks identical either way.
- ProposeQualifier
There is a second line that does not depend on the first. They posted a treatment-coordinator role on 29 June, which is the hire that appears when chair capacity is being added.
- ChallengeAdversary
The site-age row is being counted as timing and it is not. A homepage untouched since 2024 says nothing about this month. Strip it from the window claim.
- ReviseArbiter
Case rewritten on the ad stop and the hire, which are independent of each other. Site age is demoted to supporting fit, and the email asks whether the pause was deliberate rather than assuming it failed.
Illustrative transcript. Turn text is shortened for reading; the moves, the citation requirement and the verdict format are the real ones.
05–09Reaching them, and learningexecution starts here
Only now does anyone get contacted.
Everything from here is execution — and execution is the part every other tool starts with.
- 05
Contact discovery
Who is the decision-maker, and can we actually reach them?
A qualified company you cannot reach is not an opportunity. Contact discovery runs as a waterfall that stops at the first confident answer, and every address carries the method that produced it and the verification that cleared it.
Roughly a quarter to a third of qualified companies fail here. They are held, not shipped with a shaky address, and the next company on the list is promoted in their place. Accuracy matters more than scale, because a bounce costs the domain that has to send tomorrow.
Emitsverified contact, tiered
Contact waterfallstops at first confident hit- 01The company's own surfacesSite, public listing, filings. If they published it, no inference is needed.
- 02Provider matchA paid match on the person, used only where the tier pays for it.
- 03Pattern inferenceThe domain's observed address format, applied to a named person — never to a guessed one.
- 04VerificationEvery address is verified before it is used. Unverifiable addresses do not get sent to.
- 05Catch-all resolutionDomains that accept everything are quarantined rather than counted as valid.
- 06Tier A / B / CThe confidence in the address is recorded alongside it, and low tiers are held back.
- 06
Research
What would a good analyst know before picking up the phone?
Selected companies are researched properly. This is Scout, and what it returns is a case file rather than a lead row — because a company is a case, with an argument attached and the sources printed at the bottom.
The format is deliberately old-fashioned: evidence, analysis, conclusion, recommendation, impact, risk, confidence. It is designed to be read by a person who is about to speak to someone, and to be falsifiable by them.
Emitscase file
4 rows supporting one decision
- TimingE-1104
Paid acquisition stopped on both platforms eleven weeks ago.
StrongMeta Ad Libraryfacebook.com/ads2026-08-14 - HiringE-1109
Hiring a treatment coordinator — the role added when chair capacity grows.
Strong - Site qualityE-1117
Mobile largest-contentful-paint of 6.1 seconds on the booking page.
ModeratePageSpeed Insightspagespeed.web.dev2026-07-24 - NegativeE-1121
No incumbent agency footprint in the tag container or the DNS records.
ModerateSite crawl2026-08-13
Case fileanatomy- Evidence
- Numbered rows, each with a source URL and the date it was observed.
- Analysis
- What the rows mean together, referring to them by number.
- Conclusion
- Whether the window is open, and how many independent sources say so.
- Recommendation
- The angle to lead with — and the over-fished angle to avoid.
- Impact
- What is plausibly at stake for them.
- Risk
- The reading that would make this wrong, stated plainly.
- Confidence
- With the count of claims that survived the critic pass.
- 07
Campaign intelligence
What is true about this company that is worth writing down?
The message is written from the case file, so the first line can only say something the evidence supports. There is no template with a company name dropped into it, and there is no research paragraph invented to sound informed.
It leads with the timing trigger, not the most over-fished angle in the category. And where the evidence is ambiguous, the email asks instead of assuming — a stopped ad campaign might be a failure or it might be a deliberate pause, and the version that asks gets answered.
Emitsdrafted sequence
- 08
Send
Is this still true four hours from now?
Sending is the least interesting stage and it is where every competing product spends its engineering. Here it is deliberately small: between twelve and twenty a day, from your own domain, at a volume a real inbox can carry.
Email is one execution channel, not the product. The intelligence above it does not change when another channel is added underneath.
Emitssends
12–20Never a forced twenty
A quota is the reason every intent product eventually degrades. Empty slots are shown as empty: nine of twenty cleared the evidence bar today.
T−4hThe trigger is re-checked
Four hours before send, the trigger rows are verified again. If the trigger is gone, the company is held and the next one is promoted.
Your domainSent from your own mailboxes
Per-inbox daily caps, warm-up ramps and send windows that respect the recipient’s working hours — no three-in-the-morning sends, no Sundays.
- 09
Continuous learning
Which of yesterday's decisions were wrong, and by how much?
Every approval, rejection, reply and meeting is an outcome, and outcomes are the only thing that improves the ranking. Weights update globally first, because one customer’s twenty decisions a day is not enough data to learn from alone; per-customer adjustments only switch on once there are enough outcomes to mean something.
Three of the twenty daily slots are held back for deliberate exploration — companies the ranking is least sure about. If the confident slots do not out-perform the uncertain ones, the ranking is noise and we need to know that, so the test runs permanently.
A hand-scored reference set is re-run nightly to detect the judge drifting. Rubric changes are made by people, versioned, and have to pass that set before they ship.
Emitsrevised weights → 02
08–10When they reply
The dossier does not stop at the inbox.
A reply is where most outbound software finishes its job and hands you a calendar invite. The case file that earned the reply is still the best preparation available for the call it produced, so it keeps going.
Scout’s dossier becomes Sonar’s practice room. You rehearse against the buyer it describes — their objections, their evidence, their likely first question — before you take the real call. Then Sonar listens on the call itself and surfaces the qualifier you just walked past.
- 01DossierEvery claim about them, with the source it came from.
- 02RehearsalThe practice room plays the buyer back at you, using their own evidence.
- 03LiveOn the call, the missing qualifier and the objection you skipped.
- 04Back to 09What happened on the call is an outcome, and outcomes retrain the ranking.
One correction
It is not actually a funnel.
The diagram above is drawn as a funnel because that is how a pipeline reads on a page, but it describes the first few weeks only. A local market is a fixed universe, not a stream: there are only so many dental practices in a metro, and once they have all been harvested there is nothing left to pour in.
After the first pass the engine stops behaving like a funnel and starts behaving like a standing pool with a change detector on top of it. It is watching companies it already knows for the moment something moves — a small share of any market is in-market in a given month1, and the job is catching that share on the week it becomes true.
This matters for what you should expect. Month one produces a backlog of everything that was already true. Month four produces the deltas, which is a smaller number and a better one.
1. The 95-5 rule is published research from the Ehrenberg-Bass Institute, not an Arvyn measurement.
The customer’s job should not be running outbound. The customer’s job should be closing deals.
See it decide on your own market.
Connect a website and the first stages run against your actual ideal customer. You will see the evidence before you see a single email.