Skip to content

How it works

From a scanned page to a confirmed record

Every document follows the same eight steps, whether it arrives through the web application or the API.

The eight steps

  1. Step 1 of 8

    Upload

    One file, many files, or a ZIP archive — in the browser or through the API.

    Files are checked for type, size and archive safety, stored per organisation and workspace, and scanned for malware when the scanner is enabled. Each document gets an ID straight away.

  2. Step 2 of 8

    Classify

    The document type and subtype are identified, with a confidence score.

    A classification agent reads the first pages and picks a type from your taxonomy. Below the confidence threshold the document is marked for a person to confirm.

  3. Step 3 of 8

    Extract

    Fields and tables are read with the engine you configured.

    OCR with layout and table reconstruction, a vision language model, or a multimodal LLM. All model calls go through the platform's LLM Gateway, with guardrails and token accounting.

  4. Step 4 of 8

    Validate

    The result is checked against the document type's schema and business rules.

    Types, required fields, totals and tax arithmetic are checked. Problems become field-level findings rather than silent corrections.

  5. Step 5 of 8

    Structure

    Values become clean JSON and CSV, as printed on the document.

    Numbers keep their printed decimals and identifiers keep their printed form. A value a model rewrote is flagged with what the page actually says.

  6. Step 6 of 8

    Review

    A person checks anything uncertain, corrects it and approves.

    Low-confidence fields are highlighted on the page. Corrections create a new revision; the history of every run is kept.

  7. Step 7 of 8

    Export

    Download JSON, CSV or a ZIP of a whole batch, or fetch it through the API.

    Downloads include a manifest. Documents that are not finished are listed with the reason instead of being left out silently.

  8. Step 8 of 8

    Publish

    Send the data to your accounting software after you confirm the exact payload.

    The publishing agent matches suppliers, accounts and tax rates, shows a preview, and only after your confirmation makes exactly those calls through the platform's MCP layer.

Where your document is, at every moment

The Status endpoint and the Documents page show one of these states. Only the transitions of the processing state machine are possible, and each is recorded.

UPLOADED
The file was accepted and stored.
VALIDATING
Type, size and archive safety are checked.
QUEUED
Waiting for a worker, fairly shared between organisations.
CLASSIFYING
The document type is being identified.
EXTRACTING
Fields and tables are being read.
VALIDATING_OUTPUT
The result is checked against its schema.
REVIEW_REQUIRED
A person needs to confirm or correct something.
COMPLETED
The structured result is ready to download or publish.
FAILED
Processing stopped; the reason is recorded and the document can be rerun.

What runs underneath

Clients

  • Web application

    Upload, review, export and publish in the browser

  • API consumers

    Upload, Status, Download, Health and Rerun with an API key

Platform

  • API service

    Authentication, tenancy, quotas, rate limits, audit

  • Async pipeline

    Celery queues for ingest, OCR, AI and publishing

AI layer

  • Agent Harness

    Runs every agent with limits, retries and human approval

  • Multi-agent workflow

    LangGraph: classification, extraction, validation, QA, publishing

  • Guardrails

    Input, output and tool-call checks on every model step

  • LLM Gateway

    One OpenAI-compatible entry to five providers, with fallback

Data

  • PostgreSQL

    Records, results and audit, with row-level security

  • Object storage

    Originals and outputs per organisation and workspace

  • Vector store

    Chroma, pgvector or Qdrant for retrieval context

Around it

  • Observability

    OpenTelemetry traces and metrics, Langfuse for every model call

  • MCP integrations

    Accounting software, reached only after confirmation

Every model call — from any agent — goes through the Agent Harness and the LLM Gateway; no part of the platform calls a model provider directly.

Process your first documents today.

Create an organisation, try the bundled sample documents, and call the API with your own key — in a few minutes.