ExactRoute ← cvaillc.com

JSON extraction is the task of turning unstructured text — a web page, a support ticket, an invoice, a contract — into a structured object with named fields, so the rest of a system can actually use it. It's one of the most common things production LLM systems are asked to do, precisely because so much real business data starts as free text that needs to become something a database, a dashboard, or another program can consume directly.

It shows up constantly: pulling fields out of documents for a data pipeline, turning a customer message into arguments a tool can call, structuring the output of one AI step so the next step in an agent workflow can read it. Multiple independent technical sources converge on the same conclusion — structured, schema-conforming output has become the standard way production systems get usable data out of an LLM, not an edge case.

The problem: the default approach sends every field, every time, to a full frontier model — and that has two real costs, not one. The obvious one is price: paying frontier-model rates for facts and formats that don't need any reasoning at all. The less obvious one is consistency. We've observed real output variability not just between different providers, but between versions of the very same model — a prompt that worked reliably on one version can quietly shift on the next, with no code change on your end.
  • 01
    Data pipelines & ETLTurning documents, pages, or logs into structured rows for a database.
  • 02
    Tool calling & agentsAn LLM's output becomes the arguments another program executes.
  • 03
    Document processingInvoices, contracts, forms — extracting the same fields at scale.
  • 04
    Multi-step agent workflowsOne step's structured output has to be exactly what the next step expects.

How ExactRoute helps

For every field in a JSON extraction schema, ExactRoute detects, with evidence rather than a guess, whether the value is already solved by a pattern, a known vocabulary, a named-entity model, an external lookup, or whether it genuinely needs a frontier model — and shows its work for each one.

ExactRoute also packages the result: deterministic code covering whichever combination of regex, NER, and knowledge-graph lookups each field actually needs, plus a clear, explicit list of whatever still genuinely needs an LLM call — bundled as something a customer can drop directly into their own pipeline. Your data and your infrastructure stay yours; ExactRoute doesn't host or run anything on your behalf.

The eight cases below are real examples of this in action.

See it end to end first

A quick look at ExactRoute on a dataset modelled on a real customer's: 20 LLM calls, each returning a JSON of 17 fields. ExactRoute scores every choice on three Cs, and works through five steps: detection, refinement and validation, model comparison, package generation, and a package run.

Consistency

Does the same input give the same answer every run? Rules, lookups and pinned local models always do. A model call may not, even across versions of the same model.

Correctness

How often is the answer wrong, measured against your own logged outputs? Cheaper only counts if it isn't worse.

Cost

How much of today's token spend remains once the fields that don't need a model stop going to one?

Request early access, and try it on your own data

The full walkthrough, about four minutes

The same run in detail: the field-by-field verdicts, validating and accepting local models, the comparison against five LLMs, and the package you would deploy.

Pick a scenario

Each one is a real, tested case — its own dataset, its own evidence. Open any of them.

confirmed
Invoice Field Extraction
Method: Rule-based / regex
The problem: paying an LLM to re-read a vendor name and dollar amount that is already sitting in plain text on every invoice.
confirmed
Company Name Detection
Method: Rule + NER
The problem: you need to pull a company name out of free text, but it is not from a fixed list, so a simple lookup table cannot catch it.
KG candidate
Company Profile Auto-Fill
Method: Rule + NER + Knowledge Graph
The problem: your pipeline re-generates the same company fact on every single call, a fact that never changes, at a cost that recurs anyway.
no shortcut
Marketing Content Summary
Method: LLM (no shortcut)
The problem: telling apart fields that are genuine facts (cacheable) from fields that are genuinely fresh generation (not) — getting this wrong in either direction costs you.
two-step
Company Name Normalization
Method: Knowledge Graph + NER
The problem: your data mentions the same company inconsistently ("TMC," "Toyota Motors," "Toyota") — so a knowledge-graph lookup keyed on the raw text will miss or misfire on most mentions.
didn't work as hoped
Ambiguous Company Names
Method: Knowledge Graph + LLM
The problem: the same company name can refer to entirely unrelated businesses — resolving that correctly needs real reasoning, not a lookup or a pattern.
human-in-the-loop
Uncertain-Field Human Review
Method: statistical + LLM cross-check
The problem: two automated checks can genuinely disagree, and silently picking one of them without telling anyone is how a wrong answer ends up trusted.
real finding
Cross-Model Consistency Check
Method: multi-model validation
The problem: if your only quality check is "does another model agree," you have no defense when two different models make the exact same mistake.

Know which fields need the model. Prove the rest.

Every number on this page came from testing against real, logged data — not a synthetic example built to make a point. Where something didn't work as hoped, we said so, because a detection system that only reports its wins isn't one you should trust with a production pipeline.

See how ExactRoute applies this to your own extraction task
ExactRoute — JSON Extraction, Advanced. Data: real logged LLM calls (a generic company-information extraction task, automotive company extraction, invoice processing — company names anonymized or genericized where the underlying data came from a customer log), constructed test cases clearly labeled as such (entity-ambiguity dataset). Not a template filled in by hand.