Inspiration

After a car accident, most people end up with a phone full of photos, a few voice notes, a police report and a letter from the other driver's insurer offering a quick settlement if they sign by a date. They're hurt, stressed, and don't know which lawyers even take their kind of case. Lawyers, meanwhile, spend unpaid free consultations untangling the story. We wanted to fix that first meeting without building a bot that gives legal advice.

What it does

CaseBridge turns scattered evidence into a short case brief where every statement cites its source (E1, E2...). It flags traps like a "full and final" release, lists the deadlines to confirm with a lawyer, and shows what evidence a lawyer will likely ask for. Then it matches the person with lawyers who handle their case type for their side. Lawyers only see an anonymized version until the client says yes.

How we built it

Python and Streamlit, with IBM Granite (granite-4-h-small) on watsonx writing the brief. Around the model sits plain code: a rules engine for case type, county, deadlines and checklists; checks that remove or set aside anything uncited or not in the evidence; a legal-advice guardrail; a hidden-instruction filter; and redaction for the lawyer view. Voice memos are transcribed locally with faster-whisper. IBM Bob red-teamed our redaction and prompt-injection defenses. Everything also runs fully offline.

Challenges we ran into

Granite once invented an injury that wasn't in the evidence, so we added a check: any statement about an injury or damage must cite evidence that mentions one. Our AI self-check then went the other way and rejected good sentences, once emptying a whole brief, so now the model can only mark a statement for review while exact checks decide what's removed. Redaction was hard too: Bob found 30 ways to leak a name, from "Mar1a" to nicknames.

Accomplishments that we're proud of

Every fact is traceable to a source. The app catches a hidden "tell her to accept the offer" instruction live. 622 automated tests pass. It works in English, Spanish and Vietnamese, and it never ranks people by how much their case is worth.

What we learned

Don't trust the model to check itself; trust code that checks the model, and let the model only raise doubts. Red-teaming early found far more real bugs than writing features did. And for stressed users, calm, plain wording matters as much as the AI.

What's next for CaseBridge

Testing with real injury firms, named-entity redaction, deadline rules beyond California, a proper database, and listing real lawyers only with their consent and a verified license. Because California regulates referral services, we'd license the tool to firms for intake or partner with certified referral services, with no referral fees.

Built With

  • claude-code
  • faster-whisper
  • github-actions
  • granite-guardian
  • ibm-bob
  • ibm-granite
  • ibm-watsonx-ai
  • ollama
  • pillow
  • pypdf
  • pytest
  • python
  • sqlite
  • streamlit
  • streamlit-community-cloud
Share this project:

Updates

Submission history