ARKONE
Twenty upright marks on a dark ground, one for each stage of the engine, with mark 6 lit in amber and the stage name beneath.

How do you actually write fifty messages that sound like you on a Tuesday, so that sending them is one button?

September 15, 2026 · 6 min read

S
Sobin George Thomas

Fifty messages at ten minutes each is a working day, so the template wins and the owner gets the same letter as the street.

A template, and a new top line. A letter pack bought once, edited fifty times. Hope you are well. Just checking in. For a six-person brokerage the fifty read like one letter sent fifty times, because they are.


By hand today

Generic sequencers are cheap and everywhere, and none of them knows a building from a business. The trade’s own answer to this stage is a product category: prospecting-letter template packs, sold one-off and typically under $100, by Wise Pelican, The Close and others. They are the reason every letter an owner receives reads the same.

By hand, that means picking the nearest letter, changing the name and the street, and sending. You can write five good ones. You cannot write fifty, so the top line changes and the rest does not.

The people on the other end have noticed:

“In no world would I ever believe that a cold email was significantly personalized/targeted, except if the overall content were highly specific to me.”

buu700, on Hacker News


What it costs you each week

Five hundred minutes

Fifty messages at ten minutes each. Both numbers are yours; the arithmetic is a working day. So the template wins, and the owner gets the same letter as the street.

Source: modelled

No published figure says how long this stage takes, and this book will not invent one. The sum is modelled from two numbers only you can supply: your weekly volume, and your minutes per message. The template industry exists because a day is rarely spent on it. Direct-mail services print what you hand them; none writes.


The build

Open Codex. Ask for your voice. The twenty come in from the sheet with their reason. Your own past messages come in from disk as the voice. Every draft carries one fact from the row and nothing the row does not hold. You read each before anything sends.

Open Codex in the engine folder. The Owners sheet from chapter 3 is there, with its reason column, and reach.csv from the last chapter, with each person’s basis and hours. Make one folder now, voice: twenty or thirty messages you wrote and would send again, one to a file.

Connect two servers. Google Sheets MCP, the community server taylorwilsdon/google_workspace_mcp, reads the rows and writes the drafts back; budget fifteen minutes for the Google sign-in. The Filesystem server from the reference repo reads the voice folder. Then say what you want:

Read the top twenty rows of the Owners sheet by score, with the reason
column, and read reach.csv for each person's basis and hours. The voice
folder holds messages I wrote myself; the drafts must sound like them,
my length and my openings. Write one message per row. Open with my name
and why I am writing, in the words the basis allows. The second sentence
is the one fact in the reason column, stated as the record states it,
with no adjective on it. Never add a fact that is not in the row. Never
write hope you are well or just checking in. End on one question about
the fact. Write each draft in a draft column beside its row with the fact it
used; leave the sent column blank. Report two counts: drafts
written, and rows where the reason was too thin to write from.

What comes back is a script, a run and two counts. You read the twenty before the afternoon is out, and the sent column is the button the next chapter presses.

The rule that carries the chapter is the second sentence. A recorded maturity, a tenure, a confirmed expiry: each has a public page behind it. The strongest objection to machine-written outreach is the recipient’s:

“I open emails because I believe you spent time on me, which is precious, so I reply. If an AI generates cold emails, there’s no real time spent, making personalization feel deceptive, which is bad for user experience.”

sherwinx, on Hacker News

The only answer that survives it is a fact that is true and defensible. The reason column holds one; a template pack cannot.

The nearest public build is OpenOutSend (github.com, MIT, eight stars, pushed September 2026). It writes from a person’s profile text, company and title, under a tone rule that reads “short and specific, like a real person wrote it, not salesy”. It is built for a different trade: it needs a paid candidate list from its sister tool, and a read of its source found no property vocabulary.

Three honest limits, which Codex will tell you about. The drafts sound like the voice folder, so twenty messages you regret produce fifty more. A row whose reason is thin gets no draft, because a draft from nothing needs an invented fact. And no tool can tell whether you would defend the fact in a call.


What it feeds

Sending. The next stage picks the channel each person answers on and sends the drafts you have read. The number to read: drafts carrying a fact from the record, over drafts sent, and how many you edited.

The next two chapters pick the channel and send. A draft you have not read never gets a sent date.

Two numbers prove this stage worked. Messages carrying a specific fact from the record, over messages sent. And the count of drafts you edited before sending, because a falling edit rate is the only honest sign of your voice arriving.


What stays with a person

Read it before it goes. The tool writes the draft. Whether you could defend the fact in it on a call is your call. And whether this person should get a call instead of a letter is a ruling only you can make.

Two things stay. Reading every message before it goes, because nothing in this book sends without a person. And the judgement that a particular owner should get a call and no letter: a name you know, a building you have been inside.

Write call in the channel column, once, and the next chapter’s sender skips that row.


The tools you already pay for

Nothing new to buy.

Sheet gains three columns: the draft, the fact it used, and sent, still blank.

Folder holds your own messages, read and left where they are.

CRM stays out until a send is logged. The pipeline records sends, never drafts.


Fifty messages on the sheet by Tuesday afternoon, each carrying one fact from the record, each read by you. Then sending them is one button.

Ask: Of the last fifty messages you sent, how many carried a fact the owner could check?

This is stage 6 of twenty, after reaching them without a credit bureau and before picking the channel they answer on. The whole engine in order is the book, Building a real estate sales engine with Claude Code and Codex, end to end.

准备好开始对话了吗?

了解 ArkOne 如何构建治理体系与项目架构,实现可量化的 AI 回报。

预约探索性沟通