writing

AI is not just LLMs — the toolbox everyone forgot

There’s a pattern I keep running into. A team has ten thousand scanned invoices, and the plan is to send every page to a frontier model and ask nicely for the text. Another team needs a shift schedule for forty people, so they’re prompting a chat model to “make sure nobody works two shifts in a row” and hoping. A third one pays a top-tier model to re-read the same product manual on every customer question, thousands of times a month, as if the manual changes between questions.

None of these people are careless. Most of them are good engineers. They’re doing what the last three years trained everyone to do: when a problem smells like AI, reach for the language model.

I want to talk them out of it. Not out of AI, just out of the reflex.

The field is seventy years old

AI didn’t start in 2022. Machines have been reading postal codes off envelopes since the eighties. Speech recognition shipped in products before I was born. Airlines have scheduled crews with constraint solvers for thirty years. And through the eighties and nineties, “AI” mostly meant expert systems: business rules encoded by people who knew the domain, executed deterministically, auditable line by line. Unfashionable now. Also: fast, free to run, and never wrong in a new and creative way.

Large language models are one branch of this tree. A spectacular branch. I build with them daily and they do things I genuinely couldn’t have shipped five years ago. But somewhere around 2023 we collectively forgot the rest of the tree existed, and started paying frontier-model prices for problems that were solved decades ago, cheaply, with better accuracy guarantees.

So here’s the toolbox, the way I actually walk clients through it.

The toolbox

Reading documents. Dedicated OCR has one job and does it deterministically. Google’s Document AI and AWS Textract both charge about $1.50 per 1,000 pages; open-source engines like Tesseract cost only the compute they run on. A frontier vision model reading the same page costs one to three cents, which is ten to twenty times more. But price isn’t even the real argument. An OCR engine gives you a confidence score for every word, so it tells you when it can’t read something. A language model doesn’t. It fills the blur with something plausible, and on an invoice, “plausible” means a fabricated amount that looks exactly like a real one.

Seeing. If you need to know whether a person is in frame, whether a product photo shows the right SKU, whether a document is a contract or a receipt: that’s image classification and object detection, and small fine-tuned models have done it for a decade. They run in milliseconds on hardware you already own, at thirty frames a second if you need it. A frontier model can do it too, at per-image API prices, at API latency, forever.

Hearing. Transcribing a thousand hours of audio through a purpose-built speech model costs about $360 on OpenAI’s Whisper API ($0.006 per minute), or just the GPU time if you host it yourself. Speech models also give you timestamps and speaker turns, which the “just ask the big model” approach handles badly or not at all.

Scheduling and planning. This is the one that hurts to watch. A school timetable, a delivery route, a staff roster: these are combinatorial optimization problems. A modest timetable has more feasible combinations than there are atoms in the universe, and the answer has to satisfy every constraint at once, provably. A language model predicts the next likely token; it cannot search that space, and when it fails it fails silently. The schedule looks fine until Tuesday, when two teachers are in the same room. Constraint solvers like Google’s CP-SAT chew through these problems in seconds, prove the result is valid, and cost nothing. Apache license. I work on a school scheduling system where the solver owns the timetable entirely; no prompt is involved in deciding who teaches where.

Rules. If your refund policy currently lives in a system prompt, you have a policy that costs tokens on every call and occasionally improvises. The same policy as code costs nothing and never improvises. The expert-systems people understood this in 1985: judgment that can be written down as rules should be written down as rules, precisely because then it stops being judgment and becomes a guarantee.

So what’s the LLM for?

Glue. And I don’t mean that as a demotion, because the glue is where most systems used to fall apart.

The language model is the layer that turns a messy human request into a structured call the specialists can execute. It routes. It reads the 2% of pages the OCR engine flagged as low-confidence and applies actual judgment to them. It translates “Ana can’t teach before 9 and hates room 12” into constraints the solver understands. It writes the summary a human reads at the end. Everything in the middle (the reading, the seeing, the transcribing, the optimizing) goes to the tool that was built for it.

I learned this the long way. At RTL I spent about seven months building a video intelligence platform, and the architecture that worked was never one giant model looking at video. It was a facial-emotion model doing faces, a vocal-emotion model doing voices, speech recognition doing words, each one a specialist, with their outputs fused together against audience data. The intelligence of the system lived in the composition, and the composition is exactly the job language models turn out to be good at.

What it costs, concretely

Here’s the invoice scenario with real numbers. Say you’re digitizing 100,000 pages. Prices as of August 2026, sources linked above and below.

ApproachCost for 100k pagesWhat you get
Frontier model reads every page~$1,100–3,400good text, no confidence scores, occasional confident inventions
Document AI / Textract~$150deterministic text, per-word confidence
Open-source OCR (Tesseract)~$20 of computesame, best on clean print
OCR everything, LLM re-reads the ~2% flagged as unsure~$220deterministic bulk, judgment where it’s needed

The hybrid is five to fifteen times cheaper than the all-LLM version, and I’d argue it’s more accurate, because the errors it does make come with a flag on them.

Classification is even more lopsided. Sorting a million short texts through a frontier model runs $300–1,300 depending on the model. Embedding them once and training a small classifier costs maybe $30 all-in, answers in microseconds, and gives the same answer every time, which a sampled language model, by design, does not. The LLM’s real job in that system is labeling the first few thousand training examples and handling the ambiguous residue. That job it does brilliantly.

The craft is choosing the tool

When someone tells me their problem needs AI, my first question is never which model. It’s: which parts of this are reading, which are deciding by rules, which are optimizing, and which genuinely need judgment? The judgment slice is usually smaller than anyone expects, and that slice is where the language model earns its keep.

That sorting step is most of what I do at di vergada. The systems that come out of it are cheaper to run, easier to trust, and much easier to debug, because when something breaks you know which specialist to look at.

If you’ve got a process where the current plan is “send it all to the model”, write to me. The first conversation is me mapping your problem onto this toolbox, and it costs you an hour.

work with the studio

Manual work that a system should be doing? Start a project.