💡 Tip: For the best experience, click the ⚙️ gear icon in the video and select 1080p HD
RentReady — AI Rental Operations Platform (5 Agents + 24-Head ML + Eval Suite)
🏠 A full-stack AI platform covering the entire renter lifecycle — intake → eligibility → property matching → tour booking → lease Q&A → in-tenancy risk & retention. Designed and built end to end: backend, ML training, React frontend, evaluation harness, and AWS infrastructure.
Every AI decision is deterministic-first, explainable, evaluated in CI, and traced end to end.
💬 Example questions the agents can answer
“Which 2-bedroom units under $2,200 are near transit and fit this applicant?”
Recommendations“Why was this applicant flagged needs-review, and what would change it?”
Eligibility“Which residents are most likely to be seriously delinquent in the next 12 months?”
Resident Risk“What does the lease say about early termination and pet fees?”
RAG + citations“Show me properties sharing amenities with PROP-041.”
Graph-RAG → CypherTwo independent XGBOOST bundles power the predictive layer: an APPLICANT LATE-PAYMENT MODEL (15 features, 16k samples — AUC 0.784, Brier 0.135) and a 24-HEAD RESIDENT RISK MODEL spanning six families (late / frequency / severity / arrears / cure / retention). NO LLM sits anywhere in the scoring path, so a score is a pure function of its features and reproduces exactly in a test. The agents only narrate the numbers — every prediction ships with SHAP-STYLE REASON CODES and a confidence interval.
Two retrieval systems answer two different question shapes. LLAMAINDEX RAG handles lease documents — hybrid dense + lexical search with FlashRank reranking over CHROMADB or PINECONE, answered with citations back to the source clause. Graph-RAG handles relationship questions by compiling natural language to TEXT-TO-CYPHER against a real NEO4J property graph — executed read-only under RoutingControl.READ, enforced by the driver itself rather than a keyword blocklist, so a crafted question cannot mutate the graph.
The evaluation harness is the centerpiece, and it GATES CI: 300 golden items are graded twice — once by a deterministic layer (eligibility accuracy 100%, extraction field accuracy 100%, recommendation NDCG@5 85%, plus routing, grounding and safety all at 100%) and once by a RAGAS tier (faithfulness 100%, groundedness 93%, eligibility-explanation consistency 100%) — and GitHub Actions fails the build on regression. A head-to-head prompt A/B even picked its winner on measured groundedness 100% vs 85% while being both faster and cheaper. The scoring tier itself is ADVERSARIALLY VALIDATED before it is trusted, so every grounded answer is verified against source facts rather than assumed.
Tech: FastAPI • Pydantic v2 • React 18 • TypeScript • Vite • LangGraph • LlamaIndex • neo4j-Graph-RAG • Claude (Sonnet) • XGBoost • scikit-learn • ChromaDB / Pinecone • Neo4j • Neon Postgres • RAGAS • LangSmith • Playwright • Vitest • Pulumi
✅ Verified Accuracy & Measured Latency
Latency figures are best-case of 4 live runs over SSE against production; sources render before generation starts, so an answer is auditable while still being written. Grounding re-verified on the deployed config: ragas faithfulness 1.00, LLM-judge 3/3 consistent.
🤖 Five Independent Agents
Concierge, Recommendation explainer, LangGraph Tour Scheduler, Applicant Risk chat, and Resident Risk chat — each with a "never raises" outer guard and a templated fallback.
🌳 24-Head Predictive ML
XGBoost across late / frequency / severity / arrears / cure / retention — plus a calibrated applicant model at AUC 0.784 and ECE 0.021, with a heuristic fallback per head.
🕸️ Graph-RAG + Text-to-Cypher
Questions compile to Cypher and run read-only against Neo4j, rendered from the rows returned — with the subgraph that produced the answer shown alongside it.
⚖️ Two-Tier Eval Gate
300 golden items graded by a deterministic logic layer (100% routing / grounding / safety) and independently by an adversarially-validated scoring tier — plus 98.6% routing stability across 1,000 held-out paraphrases. CI fails on regression.
🔭 LLMOps & Observability
Dual tracing via LangSmith + Arize Phoenix (OpenTelemetry), live latency p50/p95, drift detection, a hallucination tripwire, and an A/B lab for head-to-head prompt comparison.
🛡️ Fair by Construction
Protected-class features are structurally absent from every feature vector (asserted by test), serious flags route to a human, and probabilities are clamped so the UI never claims certainty.
🧪 663 Automated Tests
390 backend (offline, deterministic, no API key), 108 Vitest, 65 Playwright e2e, plus 120/120 free-form questions answered through the live UI against real Claude.
🔌 Runs With Zero Keys
Mock LLM, deterministic hash embedder, in-memory graph, and heuristic models mean the whole stack boots offline — then upgrades to real Claude on the same code path.
🏗️ Infrastructure