Skip to the demos
All labs
04Lab

Document pipeline

Drop in any PDF — your own job description works well — and watch it get read, understood and turned into structured data.

Streaming DAG: parse → OCR (WASM) → chunk → extract (LLM) → schema-validate. Per-stage latency, tokens, cost, retries.

inputpdf, txt, md or csv

Drop a document here

Your own job description works well — that is rather the point.

pipelinesix stages
  1. 01
    readbrowser
  2. 02
    parsebrowser
  3. 03
    ocrbrowser
  4. 04
    chunkbrowser
  5. 05
    extractserver
  6. 06
    validateserver
model
input tokens
output tokens
cost
guardrailswhat this endpoint will not do
  • Files are capped at 8 MB.
  • Extraction is rate limited to 8 runs per 5 minutes per address.
  • Parsing and OCR run in your browser; the file itself never leaves it.
  • Only the extracted text is sent, and nothing is stored after the response.
  • The model answers into a schema, and a response that does not fit is retried, not shown.
  • Long documents are truncated rather than allowed to run up a bill.
Proves this line on the resume
Engineered LLM/OCR and document-processing pipelines integrating PDF/CSV processing, cloud services, storage, and external APIs, with persistent workflow state managed through PostgreSQL/Prisma.
Dell Technologies — Internal Full-Stack Platforms

How it works

Six stages, and the panel says which machine each one runs on. Reading, parsing and OCR happen in your browser: the file never leaves it, and the expensive parts cost nothing to serve.

A PDF usually carries a text layer, and pdf.js reads it directly. When a page has almost no text it is a scan, so that page is rendered to a canvas and handed to Tesseract compiled to WebAssembly. The OCR engine is several megabytes, so it is downloaded only when a document actually needs it — you can watch that decision being made.

Extraction is the only server-side step. The model is asked to fill a schema rather than to write prose, and its answer is parsed against that schema. A response that does not fit is a failed extraction and is retried with backoff, which is the difference between a pipeline and a prompt. Retries appear in the stage list rather than being hidden.

Progress arrives as server-sent events, so the stages advance as the work happens instead of appearing all at once at the end.

The endpoint is public and spends real money, so it has a budget: a size cap, a per-address rate limit, and truncation of very long documents. Where no model key is configured it falls back to a deterministic extractor and says so — the fallback is labelled everywhere its output appears.