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

How do you actually keep the twenty worth a call and say why, so that finding the human happens by itself?

September 15, 2026 · 6 min read

S
Sobin George Thomas

One recorded-document lookup per asset, then the same lookups next quarter because nobody wrote the verdict down. Score and reason go beside the row.

Rank on a trigger, then forget why. Four hundred rows from the last chapter. A Sunday pass by eye: this one, not that one, maybe. For a six-person brokerage the kept rows and the dropped rows sit in one sheet, and nobody wrote down why.


By hand today

The nearest built thing is a county assessor scraper, and it does this stage for one county. Three sit on GitHub: New Orleans (last pushed December 2022), Oklahoma, Cook County. Each parses one county’s website and stops. None scores a row or writes a reason beside it. Unless your patch is one of those counties, nothing public does even the half that exists.

So the stage runs by hand, and the question is the Sunday one: which of these four hundred is actually going to transact, and how do I know? The trade’s own instruction names what to look for, and every item is an event, never a description of the building:

“lease expiration, loan maturity, long tenure”

Buildout

Two of those sit in the public record. The deed carries the date the asset last changed hands, which is the tenure. A recorded mortgage carries its maturity. The lease is usually not recorded, and that one missing signal is what CoStar and Reonomy sell; neither prints a price.

You open the deed, form a view and tick the row or delete it. A deleted row leaves with its reason. A ticked row carries none, so next time it is judged again from nothing.


What it costs you each week

400 lookups

One recorded-document search per asset on the list, by hand, before a single row can be ranked. Then the same lookups next quarter, because nobody wrote the verdict down.

Source: modelled

Nobody has published how long this stage takes; this chapter will not invent an hour. The unit is one lookup per asset on the last chapter’s list. The rework is the second cost: a row deleted for a good reason comes back at the next sweep, because nothing remembers why it left.


The build

Open Claude Code. Ask for the reason. The tool that reads the row writes its score and its reason beside the row, dated, in two columns. A row nobody scored stays blank, never zero. A row archived stays archived, with its reason.

Open Claude Code in the engine folder. The owner list from the last chapter sits in a Google Sheet or an Airtable base. Connect it: for Sheets, the community server taylorwilsdon/google_workspace_mcp, with fifteen minutes budgeted for the Google Cloud OAuth setup; for Airtable, Airtable’s own hosted server or the community domdomegg/airtable-mcp-server. Then say what you want:

Read the owners sheet, every row, and tell me the total before you start.
Skip any row whose status column reads archived; leave it and its reason
untouched. For each other row, read the recorded documents for the
parcel: the deed for the date it changed hands and the mortgage for its
maturity. Add columns beside the row: tenure in years, months to
maturity, the date you read them, and a one-line reason saying which
signal is live and where you read it. Score the row against
weights.md in its own column. Where you found no documents, leave the
score blank and write the reason as not read; never write zero. Report
three counts: rows read, rows with a live signal, rows you could not read.

What comes back is a script and three counts. Sort by score and the top twenty are the call list; the reason column is the opening line of each call.

Two rules are the whole stage. The score and the reason are written beside the row by the tool that read it, so a company archived last quarter stays archived, with its reason, through every later run. And a row nobody scored stays blank, because a zero on that row would read as a judgement, and nobody made one.

Two honest limits, which Claude Code will tell you about. The lease is rarely on record, so the signal the trade prizes most is written as not on record, a blank and never a no. The community Airtable server returns a hundred rows per call unless asked for more, which is why the instruction asks for the total first: four hundred rows read as a hundred is a list that lies quietly.


What it feeds

Finding the human. The next stage takes only the rows with a live signal and finds the person behind the entity on the deed. The number to read: first contacts that land on an owner with a live event, against calling on fit alone.

The next chapter finds the human behind the holding company. That is slow work, so it gets twenty rows, and it needs the reason each row is there, because the first message, three chapters on, opens with it.

The number that proves this stage worked is the share of first contacts that landed on an owner with a live event: a maturity inside twelve months, or a long tenure for your patch. Count it against calling on fit alone.


What stays with a person

The weight, and the one you know. How much a maturity counts against a long tenure is yours, written once where the next run reads it. A low score on a row you know something about is overruled by you, in the reason column, in your words.

The tool reads the record. It does not know the owner of the corner block told you over dinner that he sells next spring. The score is for the strangers, owners you have never met with an event coming. The people you already know need no column.

Two rulings stay with a person. The weight on each signal is written once, in weights.md, where the next run reads it. Whether to pursue a row the record scored low is written in the reason column, and a later run leaves it alone.

And there is no threshold. The tool never drops a row on its own; twenty is a number you choose.


The tools you already pay for

Nothing new to buy.

Sheet is the Google Sheet or Airtable base the last chapter filled; it gains the columns.

Register is the recorder or land registry you already search one parcel at a time.

CRM receives only the twenty, each with the reason it was kept.


Every kept row says why, and every dropped row says why. Then the human can be found.

Ask: Of the rows you dropped last quarter, how many could you say today why they were dropped?

This is stage 3 of twenty, after listing every owner from the public record and before finding the person behind the holding company. The whole engine in order is the book, Building a real estate sales engine with Claude Code and Codex, end to end.

ഒരു സംഭാഷണം ആരംഭിക്കാൻ തയ്യാറോ?

അളക്കാവുന്ന AI ഫലങ്ങൾ ഡെലിവർ ചെയ്യാൻ ArkOne എങ്ങനെ ഭരണ സംവിധാനവും പ്രോഗ്രാം ആർക്കിടെക്ചറും നിർമ്മിക്കുന്നു എന്ന് കാണൂ.

ഡിസ്‌കവറി കോൾ ബുക്ക് ചെയ്യുക