Skip to content
Docuoria

How it works

Your assistant writes the rules once. The engine applies them every time.

Docuoria is not a model reading your PDF and guessing. It is a rule-based extraction engine that your AI assistant configures for each kind of document, then runs on your machine.

Two jobs

The assistant authors. The engine executes.

Your AI assistant, once per document type

Reads the document, writes the rules that find each value, tests them against the real text, rehearses the extraction, and saves the result as a template. This is the part that needs judgement, and it happens with you in the loop.

The Docuoria engine, every run

Recognises the document, applies the template, validates the fields, and renders the file. No model is involved at this point. The same PDF with the same template produces the same bytes, on every run, on any machine.

That split is why a number in your spreadsheet can be traced to a rule and a position in the document, and why it is the same number next month.

Three terms

The three parts of every extraction

Match rules

How a document is recognised

Rules score whether a PDF is a known kind of document, from its text, layout, metadata, tables, or a combination. A template is chosen by score. Your assistant builds the rules from the document’s own text and structure, never from its file name.

Templates

The saved method for one kind of document

What to look for, where to find it, how to clean it up, and which fields the result must contain. Your assistant writes one per document type and stores it beside your PDFs.

Output

The file your tools open

CSV for spreadsheets, with one row per line item. JSON for software, with the structure kept. Both are checked against the template’s field list before anything is written.

The workflow

The steps, most of them skipped for a known document

Your assistant runs these for you. A document it has seen before goes from step 1 to step 5, then 6, with no authoring and no questions.
  1. 0

    Survey

    Folders only

    Groups the PDFs by structure and reports which ones a stored template already covers, so a folder of one vendor’s bills gets one template, not twenty.

  2. 1

    Classify

    Always first

    Scores the PDF against every stored template. A strong match skips straight to step 5.

  3. 2

    Inspect

    New document types

    Reads every page: the text as the engine sees it, the tables, the metadata. Totals on page 1 and line items on page 3 are both accounted for.

  4. 3

    Test

    New document types

    Proves each pattern against the real text before it goes into a template, and reports exactly where a pattern stops matching.

  5. 4

    Build

    New document types

    Writes the template, then checks that it does not also match a different kind of document, and that its field list is valid.

  6. 5

    Dry-run

    Every new or changed template

    Extracts without writing a file. Every required field must be filled, every declared list must have rows, and where the document prints them, subtotal plus tax must equal the total.

  7. 6

    Execute

    Every run

    Runs the template and writes the CSV or JSON. A run that leaves a required field empty is reported as incomplete, not as a success.

  8. 7

    Store

    New or changed templates

    Saves the template and confirms it ranks first for its own document and does not match its siblings.

Questions

It asks you at most one question, and only about the outcome

Every technical decision is the assistant’s to make silently: how to find a value, whether to rehearse, which format to write. It asks you only when the document supports more than one reasonable result and your request did not settle it. The question is about what ends up in your file, offers two to four choices, and marks one as recommended.

Your file is a 4-page invoice. Page 1 has the summary totals; pages 2 and 3 list the individual charges. What should I put in your spreadsheet?

  • ◉ Everything: the totals plus every charge (Recommended)
  • ○ Just the summary totals
  • ○ Just the list of charges

Checks

What happens before a number reaches your file

  • Every page of the document is read, not just the first.
  • Every pattern is tested against the document’s actual text before it is used.
  • Every required field must be filled and every declared list must have rows, or the run is incomplete.
  • Where an invoice prints them, subtotal plus tax must equal the total, and line amounts must sum to the subtotal.
  • A row in your spreadsheet is the unit you asked for, never a summary standing in for the detail.
  • A changed template is re-run against the documents it was built on, and any regression blocks the change.
  • Amounts in different currencies are kept in separate columns or rows, never added together.
  • The assistant reports what it did from the engine’s own output: files written, rows added, PDFs skipped.

Outcomes

Every run ends in one of three states

Succeeded

The pipeline completed and the file is written. The result also states whether every required field was filled.

Failed

A step stopped part-way. The result names the step and the field, so the fix is to that one thing.

Rejected

The engine refused the request: an unreadable PDF, a malformed template, or an output shape the format cannot hold. Nothing partial is written.

Folders and months

Batches and running ledgers

A folder of PDFs

The survey groups documents by structure. Each group gets one template. A batch run then routes every PDF to its template and merges the rows into one CSV, with a column naming the source file of each row. Documents that match nothing are listed, not silently dropped.

The same folder, every month

A ledger records which PDFs it already contains. Sweeping the whole folder again adds only the new files; recorded ones are skipped before any work is done. A rebuild that would drop recorded rows is refused, and a correction replaces one document’s rows in place.

See these as requests and outputs · The engine surface, for developers