A private legal assistant grounded in verified precedents
A private knowledge assistant that searches internal case files and precedents, providing cited answers legal teams can verify in seconds.
How the work was scoped
Legal & Law Firms
14 weeks
Time & materials
Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.
Citation-Grounded Precedent Search
Searches thousands of internal firm documents and case filings with exact page citations.
Filings are chunked on structural boundaries (clause, section, paragraph) instead of a fixed token window, so a retrieved passage is a complete legal thought and its page number is the page it actually appears on. Retrieval is hybrid, because case citations and party names are exactly what dense embeddings blur. Every answer links to the page, not just the document.
- Chunked on clause and section boundaries, never token windows
- Hybrid retrieval, so citations and party names match exactly
- Answers cite the page, never just the document
A citation opened to page 13 of 46, the retrieved chunk bounded by the clause it belongs to and the two sentences the answer rests on marked. Beside it: why hybrid retrieval ranked it first when dense similarity alone preferred a near-namesake, and where a fixed token window would have cut the clause.
Strict Anti-Hallucination Engine
The verification pass for one answer: each assertion with the passage it was checked against and its support score, the ungrounded one struck outright. Beside it, a refusal listing its three near-misses, and the day's 184 answers with none rendered unsupported.
Verifies every AI response assertion against source legal text before rendering.
After generation, a separate verification pass checks every assertion in the answer against the source text; anything unsupported is struck outright. The assistant is allowed to say the corpus doesn't contain the answer, and it often does. Refusal was designed in as an acceptable outcome, because in this domain the only truly expensive answer is a confident wrong one.
- Separate verification pass over every assertion
- Unsupported claims struck, never hedged
- Refusal is a first-class outcome, not a failure
Private Single-Tenant Vector Storage
Isolated single-tenant vector database guaranteeing strict attorney-client privilege.
Each firm gets its own vector namespace and its own encryption key, so isolation lives in the storage itself, where no one can forget to add it to a query. Nothing leaves the tenant boundary for training, embeddings included. Matter-level access control is applied at retrieval, so a lawyer walled off from a matter can't reach its text even through a general question.
- Per-firm namespace and key: isolation in storage, not in a filter
- No tenant content used for training, embeddings included
- Matter-level walls enforced at retrieval time
Access and audit: the firm's own vector namespace and key, no training use with embeddings included, the day's retrieval log with walled and refused questions marked, and the matter walls that remove walled text before scoring.
What we were brought in to do
Associates spent hours digging through past filings for relevant precedents. We built a private RAG assistant that answers with citations drawn only from the firm's own documents.
A litigation practice with about twelve years of filings, briefs and internal memos, and associates who searched them by asking a partner who might remember. Two things forced the engagement at once: a general-purpose assistant had appeared in the firm without approval, and a competitor had lost a client over a data exposure. The brief was simple: a private assistant or none at all.
AI Integration
Where the old way broke
Attorneys needed fast access to past briefs and opinions without risking data exposure or relying on hallucinated online AI answers.
Full-text search over the archive returned everything and ranked nothing, so an associate looking for a precedent read forty documents to find two. What associates had started using instead was worse: a public model that produced confident, well-formatted, entirely fabricated citations. That failure mode can't be caught by reading the answer.
We engineered a private knowledge assistant that indexes internal documents, answers questions with pinpoint page citations, and enforces strict data isolation.
What we built together
- 01
Indexed internal briefs, filings, and memo archives securely
Chunks follow each filing's own clause and section structure, so every retrieved passage stands on its own and cites a real page.
- 02
Built a RAG pipeline with sentence-level citation verification
Partners defined what counted as an acceptable answer before any pipeline work, and the answer that a refusal is acceptable shaped everything downstream.
- 03
Implemented strict tenant isolation and access controls
Each firm gets its own vector namespace and key, with matter-level walls applied at retrieval, so isolation is built into storage instead of bolted on as a filter.
- 04
Trained legal associates on prompt structure and verification
Associates were trained to verify answers, not to write prompts, because the risk was always a plausible answer taken on trust.
Phase by phase
Phase 1: Legal Brief Indexing & Security Audit
Private Vector Ingestion Pipeline
Indexed private legal briefs, case precedents, and statutory filings inside single-tenant isolated vector storage.
- Isolated Vector Pipeline
- Security Audit Report
- Legal Taxonomy Model
Phase 2: Citation-Grounded UI Design
Legal Assistant & Citation Interface
Designed an intuitive query interface with sentence-level citation verification linking to original brief pages.
- Legal Assistant UI
- Citation Engine
- Figma Design System
Phase 3: Hallucination Guardrails
Grounded Assertion & Verification Layer
Engineered strict RAG verification rules prohibiting non-grounded model assertions and ensuring exact source mapping.
- Grounded Verification Guardrails
- Audit Trail Logger
- Safety Sign-off
Phase 4: Firm Rollout & Associate Onboarding
Firm-Wide Deployment & SLA Monitoring
Rolled out to 40+ legal associates, cutting research time per case brief by 68% with zero security incidents.
- Firm Deployment Package
- Associate Training Guide
- SLA Performance Dashboard
The corpus: filings, briefs, memos and opinions from 2014 to 2026 chunked on structure inside the firm's namespace, the phase-one security audit checklist, the four phases of the 14-week engagement, and onboarding for 40+ associates built around verification.
Operational results after launch
−68%
Research time per brief
100%
Answers with citations
0
Access & data leaks
Research time is measured per brief against a matched sample of comparable briefs from the previous year, chosen by the partners and not by document length. The citation figure is structural, not sampled: an answer without a resolvable citation is never rendered. The access and leak count comes from the audit log over the first two quarters.
Client name withheld under NDA. Figures are approximate, drawn from the engagement’s own reporting.
About our collaboration
A cross-functional team of 6 worked on a time & materials basis over 14 weeks, covering Knowledge retrieval, Citation engine, Security controls. We ran daily standups with an in-house lead in the room, and a demo at the end of every sprint. Scope changed twice during the engagement, and both times the change was priced and agreed before work started.
Partners defined what counted as an acceptable answer before any retrieval work, and that definition shaped the build: a refusal is acceptable, a hedge isn't, and a citation must resolve to a page. Associates were trained on verification over prompting, because the risk was never a bad question. It was a plausible answer taken on trust.
What we'd carry into the next one
- 01
Legal research handle time per case brief dropped by 68%.
The time went into reading, and citations fixed that: an associate opens two pages instead of forty, because they know which two.
- 02
Sentence-level citation verification means every rendered answer cites the page it came from, and any assertion it can't ground is struck before anyone sees it.
Permitting a refusal is what makes the grounding claim mean something. A system that must always answer will eventually invent one.
- 03
Single-tenant isolation ensured complete data privacy across client files.
Isolation in the storage layer is why zero is a claim and not a hope: no query exists that could return another firm's text.
One question, three ways to answer it
A confident wrong answer is the expensive one.
The same precedent question put to the old full-text search, to a public model and to LexiMind's verification pass. Then ask one the firm's documents can't answer, and see which of the three admits it. Switch tabs, or use the arrow keys once one is focused.
- The covenant runs to decoration as executed, not to the structure beneath it.Dalgliesh, p. 130.94
- Where the fit-out altered a surface under clause 9, the obligation attaches to the surface as altered.Dalgliesh, p. 13Memo 21-088, p. 20.89
- The Meridian lease expressly carves structural remediation out of its redecoration covenant.Meridian Industrial Lease, p. 340.91
- Courts have since applied the same reading in later arbitrations.Struck, not hedged · No passage states this. Best: Okafor ¶ 31 at 0.380.38
Three assertions render, each opening the page it rests on. The fourth sounded right and had no source, so it's gone, not softened.
Illustrative: scores, the 0.72 threshold (tick mark) and the public model’s case names are invented for this demonstration. Forty documents to find two is the study’s own account of the old search.
From a filing in the archive to a sentence an associate can check
Built around what goes wrong in legal research: a page number that is wrong, a party name that blurs, an answer that should never have been shown, and text that leaves the firm.
- 01 · SourceThe firm's archiveBriefs · filings · memos · opinionsAbout twelve years of the practice's own documents. Nothing from outside the firm is indexed or quoted.
- 02 · IngestStructural chunkingPython · FastAPISplit on clause, section and paragraph boundaries, never a token window, so every chunk carries the page it's really on.
- 03 · EngineRetrieve, generate, verifyHybrid retrieval · GPT-4oExact matching keeps party names and citations sharp. A separate pass checks every assertion; unsupported ones are struck, and refusal is allowed.
- 04 · StorageSingle-tenant vectorsPinecone · per-firm namespaceOne namespace and one key per firm, matter walls applied at retrieval, and no tenant content used for training, embeddings included.
- 05 · ClientThe associate's screenReact · TypeScriptAn answer without a resolvable citation is never rendered. Each citation opens the page, and every question lands in the audit log.
Privilege stays inside the firm
Tenant isolation, matter walls & no training use
No query can return another firm's text
Each firm has its own vector namespace and its own encryption key. Isolation lives in the storage, so there's no filter for someone to leave out of a query. The audit log recorded zero access or data leaks over the first two quarters.
A wall holds against a general question
Matter-level access control is applied at retrieval, so a lawyer walled off from a matter can't reach its text by asking broadly. Walled passages never enter the ranking, so no answer can quote them.
Nothing leaves the tenant for training
No tenant content is used to train anything, embeddings included. The documents are indexed to answer the firm's own questions and for nothing else.
Need AI answers your lawyers can verify, without privileged documents leaving the firm? Scope your build in three minutes.
Scope your buildNearby engagements
Product DesignAn onboarding flow that guides trial users to value
A redesigned SaaS trial onboarding experience with progressive checklists, sample data, and inline guidance that turns signups into active subscribers.
Professional Services · 10 weeks
Product DesignA design system that brought speed and consistency to 4 product teams
A token-based design system in Figma and React that eliminated component duplication across 4 product squads and cut the time from design handoff to merged frontend.
Professional Services · 14 weeks
Web PlatformsThirty small tools behind one account, each one a template and a route
A Python platform where adding a tool means adding a template and a router, with no deployment of its own, and subscriptions, orders and webhooks shared across every one of them.
Professional Services · 20 weeks
Let's talk
Running a large platform, shaping a first MVP, or getting a product ready for a funding round? Tell us where you are. We'll shape the process around it, and stay with you after launch.














