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

How do you actually list every owner in your patch from the public record, so that sorting them is automatic?

September 15, 2026 · 6 min read

S
Sobin George Thomas

Four hundred assets is four hundred registry searches before sorting can begin, and the name that comes back is often a company, not a person.

One address at a time, then a company. The register gives the recorded owner by address or parcel. The name it hands back is often a company. For a six-person brokerage the list is a spreadsheet built one search at a time, between viewings.


By hand today

Public registries and planning portals already publish most of this, for free. The work is the join. Whatever your market calls them, three public sources carry the list: a land registry, which says who holds the title to a building; a planning portal, which says who applied to change it and when; and a company register, which says what sits behind a company name.

By hand, that means taking target.md from the last chapter, opening the registry, searching one address, copying the recorded owner into a spreadsheet, and going again. Often the name is a company, and a company on a title is thinner than it looks:

“Many properties owned by LLCs are actually small-time investors, individuals, and families. LLCs only became a popular/viable way to own real estate in the last couple decades.”

tresil, on Hacker News


What it costs you each week

One search per asset

Plus one puzzle per company name, because the register hands back an entity and not a person. Four hundred assets is four hundred searches before the sorting can begin.

Source: modelled

No published figure says how long this stage takes, and this book will not invent one. What can be said is the shape of the cost: one search per asset, and a second problem for every company name. The products that sell the join print no price. CoStar and Reonomy both sell by quote. The data underneath them is free.


The build

Open Codex. Ask for the join. Every row names its source: the land registry, the planning portal, the company register, with the page and the date. A company name is written as a company, never as an owner. Nothing reaches the sheet without its source.

Open Codex in the engine folder, where target.md from the last chapter sits: one page naming the streets, the asset type, the trigger. Connect three servers. Chrome DevTools MCP drives your own Chrome and lists every request a page makes, so where a portal fetches its results as a data file and then draws it, Codex reads the file instead of scraping the drawing. Firecrawl MCP crawls a planning portal whole, without you pressing next. Google Sheets MCP is where the list lands; budget fifteen minutes for the Google sign-in it needs. Then say what you want:

Read target.md. For every asset in it, build one row from the public
record and write where each fact came from: the land registry for who
holds the title and since when, the planning portal for who applied to
change the building and when, the company register for what sits behind
a company name. Open each portal in Chrome; where the page loads its
results as data, read the data, not the drawn page.
Where a portal is plain pages, crawl it with Firecrawl. Write the owner
exactly as the register spells it, and mark each row person or company.
Never guess a person behind a company. Put the page and the date on every
row. Write the rows to a Google Sheet called Owners, and report three
counts: rows built, rows where the owner is a person, rows where it is a
company.

What comes back is a script, a run over the patch and a report with three counts. The sheet called Owners holds one row per asset: the owner as the register spells it, person or company, the page and the date. The company rows stay; the human behind each is chapter 4, starting from the page.

Three honest limits, which Codex will tell you about. The recorded owner is often a company, and this build does not try to see through it; a row marked company is a true row. Every register is its own site with its own search, so a reader built for one stops at its border; the public county scrapers each cover one county, the most-starred last pushed in December 2022. And the one live build nearby, PropertyWebScraper (github.com, pushed July 2026), reads listings; a search of its source found no file that knows the word landlord. It can tell you what is on the market, and nothing about who owns the street.

The browser server reads whatever your Chrome is signed into, by design (github.com). Run it in a Chrome with only the portals open.


What it feeds

Sorting them. The next stage keeps the twenty worth a call and writes down why. It reads the sheet, never a portal. The number to read: rows built, beside rows where the owner is already a named person.

The next stage reads the Owners sheet row by row, pulls the recorded documents for each parcel and scores the row with a reason. Without the page and the date, it has nothing to read.

The number that proves this stage worked is two, side by side: rows built, and rows where the owner is a named person. Four hundred assets with ninety people is a different week from four hundred with three hundred and eighty.


What stays with a person

Which streets, which trigger. The tool sweeps whatever patch it is given. It cannot decide which submarket is yours or which signal matters this quarter. A person rules once, in the target file, and the next sweep reads it without asking.

The sweep needs no person. The target does. What sits behind an asset is invisible until the list is built, so this stage is the first test of the chapter 1 definition. A patch that returns nine company names in ten is telling you something, and a person decides whether to narrow the streets or accept the extra work.

A name that reads like a person trading as a business is a ruling too. Rule once, in target.md.


The tools you already pay for

Nothing new to buy.

Sheet gains one row per asset, with its page and its date.

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

CRM stays out on purpose. Four hundred unsorted rows in a pipeline is how a CRM becomes a graveyard; the sort earns a row its place.


Every owner in the patch on one sheet, the page beside each, every company marked as one. Then the sorting can be automatic.

Ask: How many of the owners on your list today came from a page you could open again tomorrow?

This is stage 2 of twenty, after naming the problem people call you for and before keeping the twenty worth a call. The whole engine in order is the book, Building a real estate sales engine with Claude Code and Codex, end to end.

Prêt à engager la conversation ?

Découvrez comment ArkOne conçoit la gouvernance et l'architecture de programme nécessaires pour générer des résultats IA mesurables.

Réserver un appel découverte