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.
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.
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.
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.
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%.
The answer model must return the documents it used, and the backend checks them against what was actually retrieved before any citation is shown.
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.
A repeatable evaluation harness of 100 generated documents and 95 questions is re-run after every change.