B2B SaaS · Document AI · Under NDA

Ask questions across thousands of documents and get answers with sources.

Teams sat on thousands of documents they could not query. Finding a number meant opening files one at a time, and totals lived in a side spreadsheet, re-keyed by hand. We built a multi-tenant platform where you upload files or connect a folder, then ask questions in plain language and get answers with verified citations.

Client work under NDA. We show the problem, the system and the results, but not the client's name or screenshots. More detail is available on a call.

Evaluation accuracy94.7%Measured on a 95-question evaluation for this system.
  • Nuxt
  • NestJS
  • SurrealDB
  • PostgreSQL
  • Redis
  • BullMQ
  • OCR
  • S3
— 01 The approach

How we framed it.

OCR and layout-aware parsing feed a per-workspace knowledge graph that holds both the text and the relationships between people, companies, dates and amounts. Every question is classified and routed to the retrieval strategy that can actually answer it, and every answer cites only documents that were genuinely retrieved.

— 02 How it works

Inside the build.

Ingestion that never bills a failed parse

Uploads and synced folders are acknowledged in under 400 milliseconds and processed on a queue. Re-uploads are caught by a fuzzy hash before any AI spend, and page quota is only committed on success.

Knowledge graph and vectors in one store

Text is chunked and embedded, while an extraction pass pulls people, organizations, dated events and numeric facts into a per-workspace graph. A search hit arrives already carrying its entities and facts.

Questions routed by type

Semantic questions go to vector search, "how much did we spend" goes to structured numeric facts, "when did it happen" goes to a temporal index. Routing took aggregation accuracy from 33% to 97%.

Citations that can't lie

The answer model must return the documents it used, and the backend checks them against what was actually retrieved before any citation is shown.

Workspace isolation and roles

Every table is partitioned by workspace, so tenants never share data by construction. Role permissions follow a pyramid rule: nobody can assign a role above their own.

Measured, not guessed

A repeatable evaluation harness of 100 generated documents and 95 questions is re-run after every change.

— 03 Outcomes

What shipped.

  • 94.7% answer accuracy on a 95-question evaluation
  • 100% accuracy on semantic retrieval
  • Documents become searchable 4 to 5 seconds after upload
  • Every answer cites verified sources

Have a similar workflow to improve?

Discuss your project →