The Problem

It is 9:47 PM on a Tuesday in Fresno, California. Priya Sharma, 29, a single mother and part-time medical billing specialist, finds a white envelope taped to her apartment door. Inside: a "3-Day Notice to Pay Rent or Quit." She is $340 short on rent. Her landlord texts: "If you're not out by Friday, I'm calling the sheriff." Priya believes she has three days before police will physically remove her, her 7-year-old daughter, and her elderly mother. She is wrong on every count — but nothing in her environment tells her that. She is four minutes away from texting her landlord "I'll be out Friday," voluntarily surrendering a home she has the legal right to keep.

Priya is not an edge case. California courts process over 500,000 eviction filings annually. Between 20–35% of renters self-vacate before any court proceeding begins — surrendering homes they had the legal right to contest. Renters have legal representation in only 3–10% of cases; landlords in 80–90%.

What Inspired Us

Two organizations shaped how we designed EvictAware. Code for America's GetCalFresh showed us that a single free-text question — "describe what happened in your own words" — dramatically increases completion rates for people in crisis, compared to multi-step intake forms. EvictAware's entry point is built on this principle: one text box, no legal vocabulary required. Benefits Data Trust demonstrated that providing a specific phone number, not a directory link, dramatically increases the rate at which people in need actually reach help. EvictAware's Legal Aid Connector gives Priya the exact name, phone number, and intake hours for her county's legal aid office — not a link to a list.

How EvictAware Works

EvictAware uses a three-stage AI architecture, each stage gated to prevent the next from running prematurely:

  • Stage 1 — Identify: The user describes their notice in plain language. NLP classification matches their description against trigger phrases and identification signals for 8 distinct California notice types. If the system cannot classify with sufficient confidence, it asks exactly one clarifying question — never forcing a classification.
  • Stage 2 — Confirm (Mandatory Gate): The AI presents its classification alongside a plain-language explanation and asks the user to verify it matches their physical document. The action plan is architecturally blocked from rendering without this confirmation. Two failed attempts trigger a manual selection list of all 8 notice types.
  • Stage 3 — Action Plan: Contextual legal reasoning generates a three-tier, time-ordered checklist (Next 24 Hours, Before Notice Expires, If Court Papers Are Filed) at a Grade 7 reading level, with county-specific legal aid contacts, landlord prohibition modules, and rental assistance information — all dynamically populated from verified JSON data, never hardcoded.

What We Built

  • A Streamlit web application with a premium light-theme UI, responsive layout, and micro-animations designed for mobile-first use by someone in acute stress
  • 8 California notice types (NT001–NT008) with verified legal statutes, trigger phrases, timeline calculations, and tenant action options — sourced from California Civil Code, Code of Civil Procedure, and county court self-help resources
  • A 4-layer responsible AI guardrail system: State Scope Lock, Confirmation Gate, Mandatory Legal Aid Acknowledgment, and Language Safety Validation (prohibited phrase detection + Grade 7 enforcement)
  • A 7-layer API reliability architecture: 4 OpenRouter keys rotating through Gemini 2.5 Flash → direct Google Gemini SDK → Groq (Llama 3.3 70B) → pre-verified cache fallback with dynamic date translation — guaranteeing the app never shows a blank screen during judging or real use
  • 3 emergency overrides that bypass all AI processing for illegal lockouts, domestic violence indicators, and shelter crises — routing directly to 911, the National DV Hotline, or 211

What We Learned

Building a confirmation gate that genuinely blocks bad classifications — not just warns about them — required us to make the action plan architecturally incapable of rendering without a recorded confirmation event. This was harder than it sounds; every shortcut we considered created a path where a misclassified notice could slip through.

We learned that AI-generated legal content requires a human verification checklist before it can be trusted. We built a 27,000-word verification document cross-checking every statute citation, deadline calculation, and legal aid contact against primary government sources — because a single wrong phone number in a legal aid connector could mean a tenant in crisis calls a dead line.

We discovered during testing that ambiguous user input needs explicit handling, not forced classification. Our inline clarification flow — showing a styled question box on the same screen without navigation — was built after watching test inputs like "I got a paper about my apartment" produce confident but wrong classifications when we forced the system to always return a match.

Challenges We Faced

API reliability under judging conditions was our biggest engineering concern. Hackathon API keys have rate limits, and judges test at unpredictable times. Our 7-layer fallback with 4-key rotation was built specifically so that even if all APIs fail simultaneously, the cache fallback with dynamic date translation serves a verified response.

Balancing completeness against readability at Grade 7 level was a constant tension. California eviction law is procedurally complex. Simplifying "you have 5 calendar days to file a written Answer with the Superior Court under CCP §1167" into language a frightened 29-year-old can act on at 10 PM without losing legal accuracy required dozens of rewrites.

Verifying California legal citations as non-lawyers meant we could not rely on AI-generated statute references. Every citation was manually traced back to the California Legislative Information website and cross-checked against current statutory text.

What's Next

EvictAware currently covers 8 California notice types. Our roadmap includes expanding to cover mobile home park evictions, commercial tenancy terminations, and Section 8 administrative hearings. Beyond California, the three-stage architecture is jurisdiction-agnostic — the same Identify → Confirm → Act flow applies in any state; only the underlying legal data and contacts change. Our Responsible AI Package already includes a quarterly human-review data maintenance protocol, ensuring that statute citations, legal aid contacts, and deadline calculations are re-verified against primary sources every 90 days.

Built With

  • claude
  • google-antigravity
  • google-gemini-api
  • groq
  • llama-3.3
  • openrouter
  • python
  • python-dotenv
  • streamlit
  • streamlit-community-cloud
Share this project:

Updates