AI

I build the systems that do the analysis

About a dozen systems in production. Not demos — they run on a schedule and produce work I use.

The approach

These are not chatbots. Each system takes a defined input — a filing, a transcript, a list of names — runs a fixed sequence of steps against it, and returns something I can use: a score, a draft, a report. The machine does the reading, the arithmetic, and the first pass. Judgment stays where judgment belongs.

They run on a schedule rather than on request, which is the part that makes them useful. A tool you have to remember to open is a tool you stop opening.

Four problems, not twelve tools

The systems group by the problem they solve rather than by the service they call.

  1. Reads and rates what no one has time to read

    Adverse-media research and earnings-call analysis, run against public sources.

    More is published about any given company than one person can read, and almost none of it changes a view. The hard part is not the analysis, it is the triage.

    These read public material on a schedule and hand back what is worth a person’s time. What they never do is reach the conclusion. That part does not delegate.

  2. Turns filings and calls into a written view

    Annual review and industry outlook generators that produce a draft analyst-style view from public disclosure.

    Public disclosure is structured enough to be worked mechanically and long enough that working it by hand is expensive. An annual report plus four transcripts is a day of reading before a word is written.

    These generators take that public material and produce a first draft in the shape a reader expects — what changed, what it implies, what to watch. A draft is not a view. It is the part of a view that does not require judgment, done in advance.

  3. Runs a repeatable process end to end

    Screening workflows, loss-estimate aggregation, structured multi-step review with checks built in.

    Any process a person performs the same way every time is a process a system should perform. The value is not speed; it is that step four happens the same way in December as it did in March.

    These workflows chain steps with validation between them, aggregate numbers from multiple inputs, and stop when something fails a check rather than passing the error downstream. Checks built in, not bolted on.

  4. Makes the output presentable

    Interactive HTML reports, and an infographic generator running against 600 templates.

    Analysis nobody reads is analysis nobody acts on. The last mile — turning a result into something a busy person will actually look at — is usually the part that gets skipped.

    The report generator emits self-contained interactive HTML. The infographic generator selects from about 600 layout templates and fills the one that fits the data, so the format follows the content rather than the other way round.

A worked example

In preparation

A full earnings-call analysis — my pipeline, a public insurer’s public earnings call, the unedited output — will be published on this page. Public inputs, my code, nothing from anyone’s internal work. One working example is worth more than another paragraph of description, which is the whole reason it is not a mock-up.

The stack

Two self-hosted n8n servers — a Mac mini and a Mac Studio — exposed through Cloudflare tunnels. Built with Claude Code, Codex, and Gemini. Deployed to Google Cloud Run.

Self-hosted is a deliberate choice, not a cost saving. The systems run on hardware I control, on a schedule I set, against accounts that are mine.

What is here, and what is not

Everything on this page is my own work, built on my own hardware and my own accounts, from public inputs.

No employer, no counterparty, and no internal process appears anywhere on this site, and nothing containing a company name is shown. Where a capability is described with no example attached, that is why.