Green decoration

OCR Software for Swiss Docs

Productized OCR software for Swiss back office. Two-pass Mistral OCR turns scans, photos and mixed-quality PDFs into clean text and structured zones — ready to feed your downstream extraction and ERP/PIM systems.

OCR Software, productized

Two-pass OCR, not a single model call

Our OCR software runs a two-pass Mistral OCR pattern. The first pass returns raw text from the page. The second pass returns structured zones — tables, columns, headers, key-value blocks. A single-model call collapses both into a guess; running them separately means the downstream LLM extractor sees both the words and the layout, and can decide which one to trust per field.

Swiss-German and DE forms handled

Multi-column German invoices, Swiss-German handwritten notes on supplier datasheets, and bilingual EN/DE forms all parse through the same OCR layer. Swiss-German is treated as DE — no separate Schweizerdeutsch model required. The OCR Switzerland angle is not a marketing line: it is what the layer is tuned against in production at Weita and Sanitas Troesch.

Scans, photos, mixed-quality PDFs

Real Swiss back-office documents are not clean digital PDFs. They are photographed receipts, archive scans with bleed-through, mobile snapshots of paper Belege, multi-page PDFs with mixed digital and scanned pages. The OCR layer handles each input shape on the same contract — raw text plus structured zones out, ready for the next step.

OCR API that feeds your extractor

The OCR layer is not the final answer. Its output is the contract for downstream classification and structured extraction. You can plug it into our S001.1 classification + extraction service, our S001.2 field extraction service, or your own LLM extractor — the OCR pass produces both raw text and structured zones, so an extractor can choose the right input per field.

Batch and near-real-time

The OCR step runs inside a staged Laravel job queue. For high-volume nightly batches — supplier datasheets, archive imports — it scales horizontally on Docker workers. For near-real-time intake — a user uploading a Beleg in the customer portal — the same step runs synchronously and returns within seconds. Same code path, different queue priority.

Swiss data residency on request

For data-sensitive workloads the OCR layer runs on Swiss-resident hosting or on customer premises. The Apertus sovereign-LLM track is available where document content must not leave Swiss or EU jurisdiction. Every OCR pass is logged with model ID and version, so the provenance of the extracted text is auditable downstream.

How we deliver it

We start with your real documents — scanned datasheets, photographed Belege, archive PDFs, bilingual forms. We map what arrives in the inbox today versus what your downstream system actually needs as input.

We run the two-pass Mistral OCR pattern against the sample. Raw text first, structured zones second. You see exactly how the layer handles your worst documents, not a curated demo set.

We define the contract the OCR layer hands off — raw text, structured zones, confidence signals — so your existing or our S001.1 / S001.2 extractor can consume it without parsing tricks downstream.

We wire the OCR step into your job queue — batch for high-volume imports, synchronous for portal uploads — and hand over the runbook. Most customers keep us on light support; some run it fully in-house from week one.

Why two-pass OCR, not a single model call

Two passes give the extractor a choice

A single OCR call collapses words and layout into one guess. We run two passes — raw text first, structured zones second — and hand both to the downstream extractor. When a field is ambiguous in the raw stream, the structured zones disambiguate it; when the layout pass misreads a table, the raw text catches the value. Downstream LLM extraction in OpenAI JSON mode picks the right input per field instead of fighting one noisy stream.

OCR is a layer, not a product

Cloud OCR vendors sell the OCR call as the answer. In production it is not — it is the contract between paper and your extractor. Weita, Sanitas Troesch and the insurance AI POC all treat OCR as a staged step: Mistral OCR runs as one job in a Laravel queue, its output is the input for the next job, and HITL only shows up further downstream. Selling OCR as the final product hides where the real accuracy work happens.

Built against real Swiss documents

The OCR layer is tuned against the documents actually arriving at Swiss back offices today: scanned supplier datasheets with handwritten margin notes, multi-column German invoices, photographed Belege from mobile phones, archive PDFs with bleed-through. Swiss-German is treated as DE at the OCR step. Generic Swiss-German OCR claims are marketing — what is real is that the layer has been hardened on the documents three Swiss customers actually receive.

Frequently Asked Questions

  • Swiss-German is handled as DE at the OCR step. The layer does not require a separate Schweizerdeutsch model. In practice, the documents that hit production are written in standard DE with occasional Swiss-German notes — supplier names, place names, handwritten Belege. The two-pass pattern keeps both the raw text and the structured zones, so the downstream extractor can resolve ambiguities without us tuning a CH-only model.

About SAPIENTROQdecoration

ai avatar

Hey there! I’m your AI assistant developed by SAPIENTROQ. I am a language model connected to a RAG database that contains information about the company. If you need insights on AI solutions, real use cases, or how AI can boost your business, please feel free to ask in any language you prefer.

Choose an option

Hey! I am AI agent developed by SAPIENTROQ 🤖
Decoration
Decoration

Interested in a solution?

We are glad to show you various options without any obligation.

Roland Kurmann

Roland Kurmann

CEO, SAPIENTROQ

Book a call

Decoration