The method

How a row earns its place

Most lead tools assert data from a database and let you find out the hard way. We research accounts one at a time, then make every claim survive a verifier before you see it. This page shows the machinery — and its measured error rates.

Five stages, one bar

1 · Infer your ICP — then ask you

You paste your URL. We read your site and infer who you sell to: buyer roles, anti-personas (who a naive pitch would reach but must not), verticals, size, and the trigger events that create a reason to talk. Then we show you our read and ask you to correct it before spending a minute on research. Where only you can answer, we ask — in the app, on your schedule. Research proceeds on our best inference either way; answers sharpen, never block.

2 · Source wide, blind

Six research angles run in parallel — verticals, trigger events, analog customers, industry watering holes, hiring signals, stated pain — each blind to the others, so one angle's blind spot doesn't cap the list. A candidate only exists if it was actually encountered in a source, with the URL where it was found. No guessed domains, ever.

3 · Research one account at a time

Each surviving account gets its own research run: what they do, at what scale; a trigger dated within nine months, or an honest null; why-them written so specifically it would be false under any other company's name; and contacts — a named person with the page their name appears on, or a gap row saying no one is publicly named for the role.

4 · Verify mechanically

Every factual claim carries a source URL and a verbatim quote. Before you see a row, code — not a model — re-fetches every cited page and string-matches every quote and every contact name against the page text. A claim that fails is dropped and logged. A contact that can't be confirmed is degraded to a gap row, with a note saying exactly why. The failure report ships with the row. The verifier itself is open source — we think every AI pipeline that cites sources needs one, ours included.

5 · Judge adversarially

Finally a judge is asked to refute the row: could this why-them be pasted under another company's name? Does anything hit your disqualifiers? Does the trigger actually create a reason to reach out now? Rows that don't survive don't ship. If we find 22 accounts that earn a place instead of 30, you get 22 — and we say so.

Our numbers

From our latest calibration run (August 2026, 12 deeply-researched accounts, 115 factual claims checked). We publish these the way hosting companies publish uptime, and they update as we measure.

0

invented contact names shipped — every unverifiable name was degraded to an honest gap row before delivery

78%

of claims survived mechanical re-fetch and verbatim matching; the rest were dropped and disclosed, not shipped

2 of 12

rows rejected outright by the judge — including one where every quote failed verification. Rejection is the product working

What lives on after delivery

Weekly, we re-check your accounts for new triggers and tell you who to contact this week — and why. When nothing qualifies, we say nothing; a digest of noise would spend your trust for our engagement metrics. Reject any row and a researched replacement takes its slot. Outreach drafts are grounded only in the row's verified evidence and send from your own mailbox, capped at 20 a day.

Get early access