Independent · 2019–present · Operations tooling and AI
Running a property portfolio like a product
For the last several years I've been the operator of a family real estate portfolio: about twenty properties across California and Switzerland, held through several LLCs and trusts, run day to day by four property management companies. I treated it as a design problem, then built the system to run it, with Claude doing much of the heavy lifting.
- Role
- Operator, designer and builder
- Users
- Family owners with mixed financial backgrounds; me as operator; property managers; attorneys, accountants and brokers
- Scale
- About 20 properties, 2 countries, 4 management companies, roughly 16,000 documents
- Tools
- Python, SQLite, spreadsheets, Claude (Cowork, custom skills, an MCP server)
The problem
Every month, four management companies sent reports in four formats: scanned PDFs, spreadsheets, text PDFs and email. Maintenance history lived in invoices and inspection reports scattered across years of folders. Owners were asked to make six-figure decisions from long email threads.
Nobody, including me, could quickly answer simple questions: how old is that roof, what did this building net last quarter, what did we decide last meeting and who's doing it?
Approach
I started where I would on any product: the people and the decisions they need to make. Owners need a few clear decisions a month, with the trade-offs laid out. The operator needs every source in one place, with problems surfacing on their own. Managers and advisors need clear, consistent requests.
Then I mapped how information actually flows, and built the smallest tool for each step, adding AI wherever it removed repetitive work.
Key ideas
One inbox, many formats
Managers' reports go into a single inbox. Routing rules know which company covers which property. Scripts read scanned statements with OCR, parse spreadsheets and text PDFs, and load everything into one database. Each run ends with a short report: what came in, where it was filed, and anything that looks wrong, like rent showing past due that might be a real delinquency or just a timing artifact.
An asset register, ranked by risk
Every building system gets a record: what it is, when it was installed, its warranty, and the invoice or inspection that proves it. Where the record is missing, a data-gaps tracker says where to look, ranked by safety and insurance risk first.
Decisions, not spreadsheets
Owners don't get spreadsheets. They get one-pagers: a sale candidate, a keep-or-sell question, a heating system replacement. Each lays out the options and costs and ends with a clear ask. Meeting agendas label every item as a decision or an update, and an outcomes page records what happened to each one, so nothing quietly falls off the list.
| Agenda item | Type | Outcome |
|---|---|---|
| Counteroffer on a property sale | Decision | In progress |
| Change of LLC manager | Update | Resolved |
| Listing agreement for a second sale | Decision | In progress |
| Funding a heating system replacement | Decision | Still open |
AI as a teammate, not the decider
Claude handles the work that used to eat my evenings: processing the monthly intake, scanning years of documents for maintenance records, drafting one-pagers, owner statements and the monthly update. I built custom skills for recurring jobs and an MCP server that connects my task manager, so follow-ups land where I'll act on them. People make the decisions; the system makes sure they have what they need.
Outcome
The monthly intake that used to mean opening dozens of PDFs is now one drop into an inbox and a report to read. Owners make decisions in a structured meeting with the facts in front of them, and every open item has a status and an owner.
Looking back
I rebuilt the database more than once as the questions changed. The lesson I'd take to any operations tool: settle the data model with the people who'll ask the questions before building screens, and design so someone other than the person who built it can run it.
This is the work I want to do for others now: tools for the people who keep complex physical operations running.