Attorneys and paralegals were spending hours on statute research that should take minutes. We built a persistent, conversational AI assistant with a live knowledge base of state legal codes, document analysis, and full conversation history - LLM-agnostic, multi-jurisdiction, and running inside the firm's own infrastructure.
A multi-state law firm handling real estate, landlord-tenant, and property law across Washington, Oregon, California, and New York had a research bottleneck that was limiting paralegal autonomy and adding attorney time to routine matters. When a client asked "what are the notice requirements for a 3-day eviction notice in Washington?" - a question with a specific, documented answer in the state code - an attorney or senior paralegal had to look it up, verify the current code section, check for recent amendments, and draft a response. That process was taking 20-40 minutes per query.
The same pattern repeated across dozens of routine legal questions daily: notice periods, filing deadlines, statutory damages caps, landlord entry rules, lease termination procedures. Every one had a specific, citable answer in state statute. Every one required manual research.
"Our paralegals were capable of answering 80% of client questions independently. The bottleneck was not their legal judgment - it was that they had no fast, reliable way to look up the specific statute and cite it correctly. They were spending half their day doing what a well-trained AI could do in seconds."
The firm operated across 6 jurisdictions with different statute structures, amendment histories, and search conventions. The Revised Code of Washington (RCW) alone runs to thousands of sections. State legal codes are publicly available but not designed for fast lookup - they are organized for legislative reference, not conversational query. A paralegal trying to answer a specific client question had to know which code section to look in, navigate the legislative website, read the full text, identify the relevant subsection, check the effective date, and verify whether there had been recent amendments. This was not a knowledge problem. It was an access problem.
The firm had experimented with generic AI tools but found them unreliable for legal research. The problem with general-purpose LLMs for legal work is not intelligence - it is grounding. A hallucinated statute citation in a client communication is worse than no answer. The firm needed a system that would only answer from verified, current source material, cite every response to a specific code section, and refuse to speculate when it did not know.
A full-stack AI legal research platform with a RAG knowledge base indexed from live state legal codes, a persistent conversational interface with full history, document upload for contract and lease review, and an LLM-agnostic architecture that lets the firm swap models without rebuilding the system. Every response includes citations to the specific code section and subsection that supports it.
The knowledge base is built on a vector store indexed from state statutes scraped and refreshed on a schedule - so the system reflects current law, not a snapshot. When a paralegal asks a question, the retrieval layer finds the most relevant statute sections, passes them to the language model as grounding context, and generates a response that is explicitly bounded by that context. If the retrieved content does not contain an answer, the system says so rather than generating a plausible-sounding but unsupported response.
Conversation history is persistent across sessions. A paralegal researching a landlord-tenant matter can start a conversation, save it, return the next day, and continue in context. The system understands the thread of what has already been established. This was particularly important for complex multi-step matters where the research unfolds over several days.
The system is built on a RAG architecture with several layers designed specifically for legal use cases. The ingestion pipeline crawls state legislative websites on a weekly schedule, parses statute structure (title, chapter, section, subsection), and stores chunks with rich metadata - jurisdiction, code section, effective date, and amendment history. Chunks are sized to preserve legal context: a statute subsection is typically kept intact rather than split mid-sentence, because legal meaning often turns on the exact clause structure.
The retrieval layer uses hybrid search - combining dense vector similarity with keyword matching on code section numbers. This matters because legal queries are often half-semantic ("what are the notice requirements") and half-exact ("RCW 59.18.057") - the same retrieval approach needs to handle both. Results are re-ranked by a cross-encoder before being passed to the generation model.
The LLM-agnostic architecture uses a model abstraction layer that currently supports Claude, GPT-4o, and local Llama variants. The firm wanted flexibility to switch models as the market evolved without rebuilding the platform. The system prompt and retrieval pipeline are model-independent; swapping the generation model requires one configuration change, not a rebuild.
The hardest problem was hallucination prevention for legal citations. Standard RAG systems will sometimes generate a response that blends retrieved content with model knowledge - acceptable for many use cases, unacceptable for legal citations. We solved this with two mechanisms: a strict system prompt that instructs the model to cite only material present in the retrieved context and to explicitly flag gaps, plus a post-generation verification step that checks every code citation in the response against the retrieved chunks. Responses with unverifiable citations are flagged for review rather than delivered.
The second challenge was keeping the knowledge base current. State statutes are amended by the legislature on an ongoing basis. We built a change detection system that tracks legislative updates published by each state and triggers re-indexing for affected code sections. The platform shows users the effective date of the statute section used in each response, so they can see exactly when the source material was last verified.
Paralegal research time on routine statute questions dropped by approximately 70%. Questions that previously required escalation to an attorney - because the paralegal could not quickly find the governing statute - are now answered directly with full citations. The firm's client response time on routine matters improved from same-day (at best) to within the hour.
The citation reliability changed the nature of the work. Previously, paralegals were cautious about sharing research with clients because they were not confident in the sourcing. With every response grounded in a specific, verifiable code section, they could share the output directly - sometimes verbatim - as the basis for a client response. Attorney review shifted from "checking the research" to "adding judgment and strategy."
Document analysis became a new capability the firm had not previously had. Paralegals can upload lease agreements and receive an immediate analysis of how the terms interact with the relevant jurisdiction's statutory requirements - flagging clauses that may be unenforceable, missing required disclosures, or inconsistent with local law. What had been a billable task for an attorney became a 3-minute automated pre-screen.
The difference between a useful AI legal research tool and a dangerous one is grounding. Most AI tools are optimized to always provide an answer. Legal work requires a tool that knows when it does not have sufficient grounded material to answer, and says so explicitly. The investment in hallucination prevention - strict citation requirements, verification steps, explicit uncertainty handling - was not a technical formality. It was the entire basis on which the firm was willing to use the system with clients. Every implementation detail that supports that reliability is load-bearing.