01 · What we do
AI and information retrieval
Search and question answering over documents a company already holds, with every answer tied to the source it was drawn from.
The work starts with your documents and the questions your team already asks. Retrieval is built first, because a language model can only answer from the passages it is handed. Documents are split into passages, indexed by keyword and by meaning, and the passages returned for a question are scored before an answer is written. The assistant, the chatbot or the report is built on that layer.
The code runs in your repositories and your cloud accounts. Any change to a prompt, a ranking step or a tool is scored against a set of your own questions with known answers, and a change that fails to improve that score stays in staging. Actions that cannot be reversed are checked in code after the model has produced its output, so the check does not depend on the wording of a prompt.
What this covers
Document search and question answering
Hybrid search over a closed collection: keyword and dense retrieval, fused, then a reranker over the final candidates. Citations resolve to a real passage in a real document. A question returns an answer a reader can check.
We measure retrieval on questions drawn from how people search, including names and rare tokens that embeddings miss. At modest corpus size the index lives in process. A vector database is added when the operational weight is earned, and that threshold is written down.
Internal assistants and chatbots
An assistant that calls tools against your systems: look up a record, draft a reply, file a ticket. The model chooses the tool at runtime. The loop, the iteration cap, and the definition of done are written before the first prompt.
Every step is recorded in a trace. Send, delete, and pay pass an allowlist or wait for a person. When the assistant does something unexpected, the trace shows what it saw and what it chose.
Customer support automation
Answers drawn from your help content, policies, and past tickets. The system answers when the sources cover the question. When they do not, the conversation is handed to a person with the retrieved passages attached.
Quality is a number on held-out conversations: did it find the right article, did it refuse when it should. The threshold is yours. Release waits on that number.
Automated reporting
Reports generated from your sources, where every claim carries a label computed from provenance: Verified, Likely, or Unknown. The grade is computed in code after generation.
A cited span has to exist in the source as a substring. The labels are also a diagnostic. Identical counts across runs meant the pipeline was asserting, and measuring the distribution is what showed us.
Document processing and data extraction
Fields pulled from PDFs, forms, scans, and email: names, dates, amounts, identifiers. Format and missing-value checks run before a row is written downstream.
Ambiguous pages go to a review queue. The extraction is re-runnable. A change to a parser is scored on a labeled set of documents, the same way a retrieval change is scored on questions.
Recommendation and ranking
Ranking from your own signals: clicks, purchases, editorial priority, recency. The order is a function you can inspect.
Changes to the ranker are evaluated on held-out cases. An improvement that falls within the measurement noise stays in staging. We quote the range identical runs actually produced.
Deliverables
An eval set from your questions
Real questions from your team with the answers you expect, versioned in your repository.
Retrieval and generation code
Running in your repositories, in your cloud, under your accounts.
A before and after number
Recall and latency measured on the same set, so you can see what a change bought.
Traces for every run
What the system retrieved, and why it answered the way it did.
Runbook and walkthrough
How to add documents, re-index, and read a bad answer back to its source.
Example
Example · Applied AI
Retrieval over a closed document collection
An editorial desk over two novels, 307,689 words. Editors ask questions and get answers with citations that resolve to book and chapter. Fifty-two evaluation cases decided the design.
Read the write-upExample · Applied AI
A trust contract for generated reports
Each claim is labeled Verified, Likely, or Unknown in code, from how it was produced and whether a source survived. The label distribution later exposed a hardcoded analyzer.
Read the write-up