The OCR & Speech Workspace was built to make books searchable — page-batched, concurrent OCR over PDFs, then document-scoped RAG chat with page citations. The OCR model is the easy part. The pipeline around it is what decides whether page 214 is findable six months later.

Split into pages, then batch

Process the PDF page by page and OCR pages in concurrent batches. Per-page processing gives you natural checkpoints (a crash on page 300 does not lose 299 pages), natural citations, and natural parallelism. Tune batch size to the OCR provider's rate limits, and record per-page status so a re-run only touches failures.

Keep the layout, not just the words

Modern OCR returns structure — headings, paragraphs, tables — as markdown or blocks. Preserve it. A table flattened into a paragraph is unsearchable and uncitable. Structure is also what makes chunking for RAG work downstream: heading context travels with each chunk.