Most document extraction tools pick one AI model and hope for the best. We took a different approach: run multiple VLMs in parallel, compare outputs, and surface the answer every model agrees on.
Enterprises process millions of documents every year — invoices, contracts, KYC forms, medical records. Most teams still rely on one of three approaches: manual data entry, fragile template-based OCR, or a single AI model they've quietly given up optimising. The result is extraction accuracy stuck somewhere between 70–85%, and someone on the ops team spending their mornings fixing the rest.
We built Crystl because we kept running into that ceiling ourselves. Every document extraction tool we evaluated was a black box with a hard accuracy limit. You'd get a JSON payload back and just — hope it was right.
Here's the uncomfortable truth about AI-powered OCR: no single model is best at every document type. A model trained heavily on English invoices will stumble on multilingual contracts. A vision model optimised for dense tables will miss handwritten annotations on medical forms. A model with strong language understanding may hallucinate numbers it can't quite read in a low-resolution scan.
Picking one model and calling it production-ready is an architectural mistake. And yet that's exactly what most tools ask you to do.
Instead of picking one model and hoping for the best, Crystl runs multiple VLM providers in parallel and uses a consensus engine to surface the most likely correct answer. The idea is borrowed from ensemble methods in classical ML — and it works.
When three independent models all agree that the invoice total is $4,250.00, you can be confident. When they disagree, Crystl's LLM judge steps in, examines the evidence, and flags the field for review or resolves it deterministically based on configurable rules.
One of Crystl's core design decisions is schema-first extraction. Instead of receiving a generic blob of text you have to parse yourself, you define exactly what fields you need upfront:
{
"document_type": "invoice",
"fields": {
"invoice_number": "string",
"vendor_name": "string",
"total_amount": "number",
"due_date": "date",
"line_items": "array"
}
}Crystl maps every model's output against your schema, validates types, and returns structured data you can insert directly into your database or trigger a workflow on. No regex. No post-processing. No surprises.
Crystl ships with a full REST API so you can embed document extraction into any pipeline:
curl -X POST https://crystl.dataai.co.za/api/v2/extract \
-F "file=@invoice.pdf" \
-F "provider=qwen_vl_72b" \
-F "document_type=invoice"We also support batch processing for high-volume workloads, webhook callbacks for async pipelines, per-organisation API key management, and an audit log so you always know which model extracted what and when.
This is the public launch of Crystl, but the roadmap is already full. Over the coming weeks we're shipping:
If you're manually keying data out of documents today — or relying on a single-model solution that keeps surprising you with errors — we think Crystl will change how you think about document intelligence.
Sign up free and process your first 100 pages on us. No credit card required.
Ready to try it?
Process your first 100 pages free. No credit card required.
Get Started FreeStart extracting documents for free. No credit card required.