Skip to content
Halsted AI

Systems I have actually built, drawn honestly.

Most AI consultants show you a logo wall. These are the schematics instead. Where the model sits, where the person sits, what the system is structurally prevented from doing, and which specific failure each control was built in response to.

25,000
patients on a healthtech platform I built, then sold
$6.5M+
processed through it
$50M+
in credit issued on products I led
10 yrs
building software under real regulation

Three of these are my own company. I am telling you that up front.

The first three run in production at Slate, the fintech company where I am founder and CTO. They are not client work and I would rather say so than let you assume otherwise. They are here for two reasons. They are the most direct evidence that I build decision-making systems which survive contact with regulation, and you can go and check that Slate is a real company with real customers.

The last two are labelled reference designs. They show the shape we build to in a practice. When a named client lets me publish their numbers, those two get replaced with the real thing.

Devin Picciolini, Founder of Halsted AI

Slate

Running today

An agent squad that ships tickets while I sleep

Why this matters to you

Autonomous software making judgement calls inside a regulated business is the hardest version of this problem. Four things keep it safe. It polls cheaply and wakes rarely. Its capabilities are limited at the layer below the prompt. A person signs off on anything consequential. Its state lives outside the process, so a crash costs one cycle. An AI that talks to your patients needs all four.

Slate

In production

An agent squad that ships tickets while I sleep

Two agents, one for product and one for engineering, running continuously against a real backlog. They groom tickets, write specs, build branches and open draft pull requests. They never merge, never deploy, and never decide anything about money.

  1. Tick

    every 10s

    A cheap scheduled job polls the chat, the ticket board and the code host. It wakes an expensive model run only when there is genuinely something to do. Nothing holds state in memory between runs.

  2. Route

    local model

    A small model on hardware in the building decides whether a message belongs to product or engineering. Each call costs nothing. If that machine is asleep, a hosted model picks up.

  3. Ground

    retrieval

    Before answering, the agent searches a private index of every document and conversation the team has produced, plus a graph of people, partners and decisions. The embeddings are computed on the same machine. No document leaves the building to be indexed.

  4. Act

    agent run

    Every run loads the same five files in the same order. Personality, identity, tools, team contract, house rules. Identical context every time produces behaviour predictable enough to rely on.

  5. Gate

    human

    Money movement, underwriting decisions, authentication and personal data are refused at the capability layer, below anything the model can influence. The agent analyses and flags. A person decides.

  6. Ship

    draft only

    Work arrives as a specification for review or a draft pull request. The agents cannot merge to the main branch and cannot deploy. No production credentials exist on the machine they run on.

  7. Reflect

    feedback

    Somebody reacts to a reply with a green, yellow or red emoji. That reaction fires a reflection pass. The pass makes one small edit to the shared rules file and commits it to version control, where anyone can read it or roll it back.

LoopEvery rating rewrites the manual and the next run starts from a slightly better position. Durable state lives in the ticket system and in queues on disk. A crash costs one tick. A dead worker notices and restarts itself inside two minutes.

Built onScheduled jobsFrontier modelLocal embeddingsVector + graph retrievalTicket systemChat

The knowledge base never leaves the machine it lives on. That one constraint is what allows it to index bank statements and deal documents. A patient record sits under the same rule.

Slate

Running today

Underwriting a dental practice, with the model kept on a leash

Why this matters to you

Every practice should ask for this shape. The model does the reading and the arithmetic. A person decides. The system shows you every place the two disagreed, and that short list is where an experienced human is worth paying for. It is also what makes the output usable on a busy Tuesday.

Slate

In production

Underwriting a dental practice, with the model kept on a leash

A credit pipeline that reads an application, scores it, has a model review it independently, then compares that review against a human analyst's own pass and surfaces every place the two disagree. The first live partner on it is a dental group.

  1. Intake

    An application arrives scoped to one partner. Every record carries the partner it belongs to, which is what stops data leaking sideways.

  2. Score

    engine

    A dedicated scoring service receives the application over an internal call and returns a structured decision. Ordinary software, with a test suite around it.

  3. Persist

    The decision is written down alongside the inputs that produced it. Six months later you can re-run it and see whether it still holds.

  4. Review

    model

    A model reads the underlying documents and writes its own assessment. Progress streams to the screen, so whoever is waiting can watch it work.

  5. Congruence

    diff

    The model's read is compared against the analyst's own spreadsheet pass. Agreement gets skimmed. Disagreement gets read carefully. An experienced analyst spends their day on the twenty percent that needs judgement.

  6. Decide

    human

    A person makes the credit decision, in every case. Everything upstream exists to get them there faster and better informed.

LoopDisagreements are the useful signal. Where the model and the analyst keep diverging on the same kind of case, something gets fixed: the prompt, the source documents, or occasionally the analyst's checklist.

Built onPython servicePostgresObject storageStreaming progressNext.js

The same shape works on a patient's intake forms, insurance documents and history. Extract, assess, compare against a person, escalate the mismatches.

Slate

Running today

A prospecting loop with a built-in liar detector

Why this matters to you

The review stage is the part worth copying. A separate agent with no stake in the work compares the output against reality and fails the build if a feature was invented. Any AI that speaks to your patients needs the equivalent. Something whose only job is catching the confident wrong answer before a customer hears it.

Slate

In production

A prospecting loop with a built-in liar detector

Two agent teams chained together. The first sources and qualifies prospects, maps the buying committee and files a ranked recommendation. The second builds a working branded demo for whoever survives. Before that demo can ship, a separate agent checks it against the prospect's real product.

  1. Signal

    Prospects come from a live commercial data provider.

  2. Qualify

    Hard qualification against fit criteria. Most prospects are dropped at this stage, which is the stage doing its job.

  3. Account map

    The buying committee gets mapped out: who signs, who can block it, and who actually feels the problem day to day.

  4. Position

    A thesis written for that specific account, naming the person who feels the problem.

  5. Prototype

    second team

    Whatever survives is handed to a build team, which researches, briefs and ships a real branded demo.

  6. Review

    independent

    A separate agent compares the live demo against the prospect's actual product. An invented feature fails the build outright, and nothing ships until this passes.

  7. Recommend

    A ranked recommendation gets filed with a sized opportunity and a business case attached to it.

LoopThere is deliberately no scheduler on this one. Runs happen only when somebody triggers them, and the on-switch is re-checked at every stage boundary, so pressing stop takes effect part-way through rather than at the end.

Built onAgent SDKProspect dataPostgresAutomated deploys

The no-scheduler rule is scar tissue. A self-re-arming loop on an earlier project burned through half a month's model budget in twelve hours before anyone noticed. Most of the safety rules on this page were bought the same way.

Reference design

How we build it

AI answering the phone in a practice

Why this matters to you

Most practices start here. The return is the easiest of the three to measure. It also earns without touching clinical records, which keeps the first build short and the privacy review simple.

Reference design

Reference architecture

AI answering the phone in a practice

The architecture we build to when a practice wants every call answered. It picks up on the first ring at any hour, books into the live schedule, and knows when to hand over to a person.

  1. Answer

    first ring

    Every call picked up straight away, including after hours and during the lunch rush. Twenty calls at once costs the same as one.

  2. Identify

    The caller is matched against existing records, or sent down the new-patient path. Nobody who has been coming for nine years is asked to spell their own surname.

  3. Converse

    approved script

    It can only say things you have signed off, and it tells callers it is AI. Several states now require that disclosure by law.

  4. Triage

    human

    Urgency and anything clinical get picked up early and handed to a person within seconds. Warm transfer during hours, your on-call path outside them. You define what counts as urgent, and we test this path harder than anything else in the build.

  5. Book

    The appointment is written into your live scheduling system. A message queue for somebody to process tomorrow is voicemail with a bigger invoice.

  6. Confirm

    Confirmation by text, carrying the reschedule link that prevents the no-show three weeks later.

  7. Log

    A full transcript of everything it said, sent to you daily. If you dislike a sentence we change it the same day.

LoopSomebody reads a sample of real conversations every day for the first month. A wrong answer caught in week one takes ten minutes to fix. Found in month six, it has already been repeated four hundred times.

Built onTelephonySpeech recognitionModel under a BAAYour practice software

A reference architecture. The specific vendor at each layer gets chosen during the audit, on two criteria: who will sign a business associate agreement, and who your software can actually talk to.

Reference design

How we build it

Scheduling that fills its own gaps

Why this matters to you

Recovered chair time is the cleanest number in a practice. You already know what an hour of it is worth, so the return needs no interpretation. Of the three builds, this is the easiest to prove to an accountant.

Reference design

Reference architecture

Scheduling that fills its own gaps

A cancellation at nine in the morning becomes an empty chair at two unless something acts on it straight away. This is the loop that acts. It ranks who to contact, reaches them where they actually reply, and writes the slot before the day is gone.

  1. Watch

    Cancellations, gaps in the day, and appointments that look likely to be missed based on how that patient has behaved before.

  2. Rank

    The waitlist is ordered by clinical priority, then by who can realistically get there in time, then by value. Reverse the first two and you have built something that will eventually embarrass you.

  3. Reach

    text first

    Contact on the channel people actually answer. For this job, text outperforms a phone call by a wide margin.

  4. Fill

    The first genuine yes writes the slot, and the offer is withdrawn from everyone else immediately. No double bookings and no awkward second phone call.

  5. Respect the constraints

    Provider, room and equipment availability are hard constraints. A booking that cannot physically happen costs you more than the empty chair did.

  6. Know when to stop

    rule

    Anyone who has declined twice comes off the list. Get this wrong and a revenue system becomes a complaint generator, and the complaint outlives the appointment by years.

  7. Report

    Chair time recovered, in hours and in dollars, every month. That number is how you decide whether to keep paying for it.

LoopThe no-show prediction is retrained monthly against what actually happened. A model nobody corrects with outcomes is an opinion with a database behind it.

Built onYour practice softwareMessagingConstraint solvingOutcome tracking

Reference architecture. The ranking rules get written with you. Every practice weighs clinical priority against schedule value differently, and that judgement belongs to you.

There are no client testimonials on this site yet.

When there are, they will carry a real name, a real practice and a real number, printed with permission. Anonymous praise costs nothing to write. You have seen enough of it on enough websites to price it accordingly.

Being early is worth something. The first practice in each category gets a discounted build in exchange for letting me publish what actually happened, including the numbers that did not go my way. If that appeals, say so on the call.

What will be published

  • Named practices, with permission
  • The real before and after numbers
  • What did not work and what it cost to fix
  • How long it truly took, not the pitch version

What will not

  • Anonymous quotes
  • Stock photography of smiling dentists
  • Percentages with no denominator
  • Logos of companies that never paid me

How to check any of this

  • Ask for references on the call. You get real ones or an honest 'not yet'
  • Look up Slate. It is a real company.
  • Ask me hard technical questions and see whether the answers hold

Your practice does not need any of this at that scale.

That is rather the point. The systems above are the hard version: continuous, regulated, consequential. Yours is one or two of those loops running against four systems instead of forty, for a fixed price, in about a month.

The audit works out which loop and what it is worth. Everything else on this page is evidence that I can build it once you have decided.

The front door

$2,500

Two weeks, start to finish.

  • Refunded if it cannot find three times its cost
  • Credited in full against any build
  • You keep the plan whatever you decide

Judge it on the call, not the website.

Twenty minutes on a call. Ask the hard questions, about any figure on this page. If the answers are not good enough you have lost twenty minutes. Devin takes these calls himself.