The 7,000-case immigration law firm CRM
How we rebuilt case management for a 180-employee immigration law firm, cut page load by 87%, cut document handling by 92%, and reclaimed 6 hours a week for every paralegal — by replacing a decade-old legacy platform with Next.js, Supabase, and a Claude-powered AI triage layer.
The results, upfront
A 180-employee immigration law firm with national reach
The firm handles family-based, humanitarian, business, and removal-defense immigration matters across every U.S. Citizenship and Immigration Services service area. Their active caseload runs to 7,000+ open matters at any given time. The practice is distributed: attorneys and paralegals work from multiple states, meet clients over secure video, and handle high-stakes filings with USCIS deadlines measured in hours, not weeks.
Client identity is confidential — immigration matters involve sensitive personal and political information, and the firm represents asylum seekers, trafficking survivors, and other clients whose privacy is non-negotiable. Every technical decision in this engagement was filtered through a privacy-first lens.
A decade-old platform bleeding time
The firm had outgrown their legacy case management system. Four interlocking problems compounded into roughly 40% of paralegal time lost to friction that no individual could fix.
9-second page loads
The legacy case management platform averaged 9 seconds to load a case file. Attorneys were walking to the coffee machine between clicks. With 7,000+ active cases viewed thousands of times per day, the cumulative time lost was staggering.
Manual document entry
Paralegals were reading incoming USCIS notices, I-130 filings, and supporting evidence by eye, then typing 30+ fields per document into the CRM. Roughly 40% of paralegal time was data-entry. Errors contaminated case records.
No way to search case history
Attorneys asking questions like 'show me all VAWA cases with a pending RFE filed in the last 90 days' had to delegate to a paralegal who would spend hours pulling records. There was no semantic search. Institutional knowledge was locked in siloed case files.
Intake routing took hours
Inbound phone calls, web forms, and email tickets were queued to a shared inbox. A triage paralegal would read each one and manually assign to the right attorney. Median time from intake to attorney assignment was four hours — longer for overnight submissions.
A custom case management platform, rebuilt from scratch
Five interlocking systems replaced the legacy platform over roughly eight months. Each shipped as an independently deployable slice so the firm kept working while the migration ran.
Rebuilt on Next.js with Server Components
Replaced the legacy monolith with a Next.js 14 App Router architecture. React Server Components handle heavy data fetching on the server; the client gets a pre-rendered HTML stream in under a second. Supabase Postgres with Row-Level Security gates every query to the user's actual permissions — attorneys see only their cases, paralegals see only their assigned work, managing partners see everything.
Claude-powered document intake pipeline
Built a document processing pipeline that accepts incoming PDFs (USCIS notices, supporting evidence, client-submitted forms), extracts 30+ structured fields using Claude 3.5 Sonnet's vision + reasoning capabilities, validates against business rules (date formats, case-number patterns, form-type signatures), and auto-populates the case record. Human review is required only on ambiguity or low-confidence extractions. Average per-document handling dropped from 18 minutes to under 90 seconds.
pgvector semantic search across 200,000+ documents
Every document ingested generates embeddings stored in pgvector. Attorneys now ask natural-language questions — 'show me all VAWA cases with pending RFEs filed in the last 90 days,' 'what arguments won in asylum hearings under Judge X' — and get a ranked answer list in under two seconds. Previously a multi-hour paralegal search task, now a live query box at the top of the dashboard.
AI-driven intake triage + auto-routing
Inbound calls (transcripts), web intake forms, and email tickets now run through an LLM classifier against 14 practice-area categories. The model scores priority (urgent / standard / informational), detects the matter type, and routes to the right attorney team with full context. Median time from intake to attorney notification went from 4 hours to under 30 seconds. After-hours submissions no longer wait until morning.
Privacy-first architecture
Every AI call runs under zero-retention terms for attorney-client-privileged content. All client PII lives in the firm's Supabase instance with RLS enforced at the database level — application bugs cannot accidentally leak cross-tenant data. Audit logs record every AI decision for discovery compliance. HubSpot integration is one-way (CRM → marketing) so sensitive case data never exits the privileged boundary.
The stack, in full
Every technology below is the same tooling we use for Maxx Effect web + AI projects. Small businesses in Muskegon run on the same foundation the 7,000-case firm runs on — scaled down, not compromised.
What changed for the people using the system every day
The measurable gains are in the metrics grid above. The experiential gains are harder to quantify but more important.
Paralegals stopped dreading their morning intake queue. The work they had been doing — reading and typing — was now compressed into a review step, and the time saved went into case strategy, client communication, and higher-value tasks nobody had time for before.
Attorneys started asking questions they never asked before. When semantic search across 200,000+ documents returns a ranked answer in two seconds, the cost of curiosity drops to near zero. The result was institutional knowledge flowing horizontally across the firm for the first time — junior attorneys learning from senior work, senior attorneys spotting patterns across their own case history.
The managing partners saw their operational capacity increase without hiring. At roughly 6 reclaimed hours per paralegal per week, a 40-paralegal team reclaimed the equivalent of four full-time positions in year-one time savings — none of which required a single new hire.
This system is now in year three of continuous operation. Maxx Effect remains on retainer for ongoing model tuning, feature development, and incident response.
The same patterns scale down
You do not need 180 employees or 7,000 cases to benefit from this architecture. Every pattern below maps onto Muskegon, Norton Shores, Grand Haven, and lakeshore small businesses — at small-business prices.
Want to see what this looks like for your business?
Every engagement starts with a free audit. We look at your current site, your AI readiness, and your actual pain points — then send back a concrete plan with real numbers. No sales pitch, no pressure.
Get Your Free AuditSame-day response · No sales pitch · 30-min strategy session