ARKONE
Twelve upright marks on a dark ground, one for each stage of the engine, with mark 5 lit in amber and the book title beneath.

How do you actually get their email without guessing, so that writing to them happens by itself?

September 8, 2026 · 6 min read

S
Sobin George Thomas

A guessed address that reaches a stranger is a complaint against your domain. Every address carries its source, and accept-all is a verdict of its own.

Guess the pattern, then hope. First dot last at the domain. A free verifier tab. A green tick that means the domain answered, not the person. For a forty-person agency the guessed rows and the found rows sit in the same column, looking the same.


By hand today

“Always use an email verifier to clean up your list and avoid bounces that may affect your sending reputation”

William Paul, on Indie Hackers

That is good advice, and it describes the stage as most people run it. Take the name from the last chapter, guess the pattern the company probably uses, paste the guess into a verifier, and write the verdict into a column. The hire who does this weekly is told to replace bounced addresses with valid alternates, which means guess again.

The verifier is doing less than it looks. On many domains the mail server says yes to every address, so the green tick means the domain exists and nothing more. And when the run is over, the sheet does not say which rows were found on a page and which were guessed and ticked. They look the same.


What it costs you each week

Under 0.10%. The spam rate Google tells every sender to stay under, or the whole domain pays for it. A guessed address lands on the wrong person. That is a complaint waiting to happen.

Source: Google email sender guidelines, read 7 September 2026

The subscriptions are the visible cost. The real cost is the domain. Google publishes the spam rate a sender must stay under, and a small company sends so little mail that a handful of complaints moves the rate. A guessed address that reaches a stranger, or a shared inbox that reports you, is how a domain earns a number nobody sees until the mail stops landing.


The build

Open Claude Code. Ask for the source. Every address carries where it came from: the company site, a filing, a confirmed pattern. A bare guess is not a rung. An accept-all domain is written as accept-all, never as verified. Nothing reaches the CRM without its source.

Open Claude Code in the engine folder, where people.csv from the last chapter sits: one name per company, each with the page that proves it. Then say what you want:

Read people.csv. For every person, look for an email address in this order
and stop at the first that holds: the company site itself (a contact page,
a team page, a press release), then a public filing or trade press piece
that prints it, then the pattern used by a colleague whose address the site
confirmed. Record the address, the rung it came from and the page. Do not
guess a pattern with nothing to confirm it. Check each address against the
domain and record the verdict; where the domain accepts every address,
write accept-all rather than verified. Write emails.csv with a source on
every row, holding.csv for people with no address, and report four counts:
found, verified, accept-all, none.

What comes back is a script, a run over the list and a report with four counts. emails.csv holds the addresses you may write to, each with its rung, its page and its verdict. holding.csv holds the people with no address yet. Load the first into the CRM with three fields on each person: the address, where it came from, and what the check said. The holding rows are reached on LinkedIn until a page gives up an address.

Two honest limits, which Claude Code will tell you about. A laptop often cannot ask a mail server directly, because the port that conversation uses is blocked on most home and cloud connections, so a verdict may come from a public checker rather than from the server. And an accept-all domain answers yes to anything; the public verifier Reacher returns deliverable on such a domain without having tested the real address. That is why the build writes accept-all as its own verdict.

The count to expect is ArkOne’s own. Of 584 leads on one CEO list built from public sources, 147 carried an email address, and every one of the 147 had been pushed to the sending tool (plans/linkedin-ads-build-day/LEARNINGS.md line 35). The rest were reached on LinkedIn. One in four is what a list with no bought data looks like.


What it feeds

Writing to them. The next stage writes one message per person: email where the address is verified, LinkedIn where it is not. The number to read: verified addresses with a source against people in total. On our own list, 147 of 584.

The next stage writes one message per person, and it needs to know which channel each person is on. A verified address with a source gets an email. A holding row gets a LinkedIn message. An accept-all row is a ruling, below.

The number that proves this stage worked is the count of people holding a verified address with its source recorded, against people in total. Read it from the CRM field. On ArkOne’s list it was 147 of 584, and the next stage planned its week from those two numbers.


What stays with a person

The accept-all domain. Whether to write to an address the domain will never confirm. Whether a shared inbox counts as reaching the person. A person rules once, and the rule is written where the next run reads it.

The tool sorts addresses into found, verified, accept-all and none. It cannot decide whether an accept-all address is worth a send, because that depends on how much a bounce costs you this month. It cannot decide whether a role address such as a shared enquiries inbox counts as reaching the owner. On a firm of four it might. On a firm of four hundred it does not.

A person rules on each, once, and writes the ruling into the same file the tool reads. The next run applies it without asking.


The tools you already pay for

Nothing new to buy.

CRM gains three fields per person: the address, where it came from, and what the check said.

Mailbox is the one already paying for a seat. It stays clean because no guessed address is ever sent from it.

Browser is driven by the tool, which opens the contact page you would have opened by hand.


Every address with its source beside it, and every guess held back. Then the message can be written.

Ask: Of the addresses on your list today, how many could you say where they came from?

The address here is chapter 5 of twelve, after finding the one person who can say yes and before writing one message per person. The book, Building a real outbound engine with Claude Code and Codex, end to end, runs the whole engine in order, one chapter per stage. A free starter edition for firms under fifty people is coming through the 100k programme.

هل أنتم مستعدون لبدء الحوار؟

اكتشفوا كيف تبني ArkOne هياكل الحوكمة وإدارة البرامج لتحقيق عوائد قابلة للقياس من الذكاء الاصطناعي.

احجز مكالمة استكشافية