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.
Drop a document here
Your own job description works well — that is rather the point.
- 01readbrowser
- 02parsebrowser
- 03ocrbrowser
- 04chunkbrowser
- 05extractserver
- 06validateserver
- 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.
“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.