Guide · Data extraction

Every extraction tool answers one question. Almost none answer the second.

The first question is "can you get the value out?" — and in 2026 the answer is nearly always yes. The second is "on what basis should anyone believe it?" — and the tool comparisons go quiet. This guide maps the four tool families, gives you a decision path, and then spends real time on the part the comparisons skip: acceptance accounting.

13 min read · Updated August 2026 · By the Tablize team

01 / DefinitionWhat data extraction is

Definition

Data extraction is turning information locked in one form — documents, web pages, free text, images — into typed, structured values a table can hold and downstream tools can query. The extractor may be a parser following a format, a connector reading an API, or a model exercising judgement. What defines extraction is the output contract — every value lands in a declared column with a declared type — not the technique that produced it.

Holding onto that definition sorts a crowded market fast, because tools that look like competitors turn out to answer different inputs. It also names the quiet revolution: for fifty years the hard part of extraction was reading (OCR, parsing, selectors). Models made reading nearly free — and moved the hard part to believing: deciding which of the values that came back deserve to land.

02 / MapThe four families of extraction tool

FamilyInputFailure modeCost shape
Document parsers & OCRPDFs, invoices, scans, fixed formsLoud on layout drift — fields come back empty or shiftedPer page, cheap at volume
Connectors & APIsSaaS products, databases, feedsSchema changes upstream; auth rotPer seat/connector subscription
LLM extractorsAnything readable: pages, text, mixed documentsQuiet — plausible wrong values, format driftPer token, or flat via an agent
Agent-run linesAny of the above, as a standing pipelineRefused batches — failure is recorded, not hiddenFlat agent subscription + cheap server

The fourth row is not a fourth reading technique — an agent-run line uses parsers, connectors and models as workers. What it adds is the layer this guide keeps returning to: state, batches, checks and a ledger, so extraction behaves like production instead of like a heroic script. That layer is what Tablize is; the first three families it happily drives.

03 / ChoiceA decision path that follows the input

  1. Is the input fixed-format at volume? Invoices from the same template, statements, forms → a parser or OCR pipeline. A model here is paying judgement prices for clerical work.
  2. Does the data already live behind an API? → a connector. Extraction that re-scrapes what an API offers is technical debt with extra steps.
  3. Does getting the value require reading and judgement? Categories, risk flags, normalised entities, "which clause deviates" → an LLM extractor. No parser will ever do this; this is the genuinely new capability.
  4. Will the extracted column feed something downstream, repeatedly? → wrap whichever extractor you chose in a line: declared schema, batch acceptance, attempt ledger. One-off answers can skip this; standing columns cannot.
The mixed case is the normal case

A real supplier-screening flow uses all four in one pass: a connector pulls the catalogue, OCR reads the certificates, a model judges "manufacturer or trader", and the line accounts for all of it. Tool-family debates dissolve once the pipeline is the unit of design — see the pipeline guide.

04 / The new partWhen the extractor is a model

"AI data extraction" earned its own noun because the failure profile inverted. Parsers fail loudly: layout drifts, fields come back empty, someone notices. A model always returns something — well-formatted, fluent, and possibly wrong. Three drifts dominate:

  • Hallucinated values — the page doesn't state a founding year, the model supplies a plausible one. The licence to answer null has to be explicit in the schema, or the model will be helpful instead of honest.
  • Enum drift — the contract says manufacturer | trader; the model returns "likely manufacturer". Harmless-looking, and it silently breaks every filter downstream.
  • Batch decay — quality at row 3 of a batch is not quality at row 40. Batches must be sized to what a model can hold with full attention, not to the context limit. The LLM extraction guide treats sizing in depth.

All three are manageable — with schema-first output (structured extraction), mechanical checks on every submission, and spot-checks against pinned answers. None are manageable by prompt-wording alone, which is the mistake the market keeps re-selling.

05 / The skipped layerThe accounting every comparison skips

Here is the question that separates extraction tools from extraction infrastructure: three weeks after the run, can you answer — for any single cell — which attempt produced this value, against which schema, and what checked it?

Tools answer with a shrug: the output folder is the output. Infrastructure answers from a ledger:

# the books, for one column
tablize ledger supplier-category
→ batches: 5 · attempts: 127 · accepted: 119 · refused: 8
→ refusals: 5 enum · 2 golden miss · 1 null-where-required
→ models: claude-sonnet-4.5 (5 batches) · gate: enforce

Nothing in that readout is sophisticated. It is bookkeeping — the same bookkeeping any production process keeps and almost no extraction stack does. It is also the answer to the second question this guide opened with: the basis for believing cell (3187, category) is not the model's reputation, it is that row's acceptance record.

06 / FAQQuestions that come up

What's the best data extraction tool?

Wrong question — follow the input. Fixed formats: parser/OCR. Behind an API: connector. Judgement over messy evidence: LLM extractor. Standing columns that downstream trusts: any of those, wrapped in a line with acceptance accounting. "Best" only exists per input and per stakes.

How do I extract data from PDFs?

Layer it: born-digital PDFs surrender text to a parser; scans need OCR first; then stable layouts get template parsing and varying layouts get a model read. Whatever did the reading, validate against a declared schema before anything lands — the reader and the believer are different jobs.

Are vendor accuracy claims real?

They are averages over someone else's corpus. Accuracy is per-column, per-corpus: 99% on invoices says nothing about your supplier categories. Measure on your own data by pinning answers for a sample — it takes an hour and replaces marketing with evidence.

Build or buy?

Buy the commodity readers (OCR, parsers, connectors — solved problems). The judgement layer rides the model your coding agent already runs on. Stand up the accounting layer — schemas, batch acceptance, attempt ledger — as infrastructure, because that is the part no single extractor ships and the part audits ask about.

Extraction vs enrichment vs cleaning?

Extraction creates structured values from unstructured input; enrichment adds columns to existing rows (by lookup or judgement); cleaning corrects what is already there. The verbs blur in vendor copy but verify differently — which is why this site keeps them on separate pages.


Adjacent reading, same production-line lens:

Public beta · free · macOS, Linux and Windows

Extraction with the books kept.