FHA, Fannie Mae, Freddie Mac, VA, and USDA underwriting handbooks — fully indexed, semantically searchable, and returned with structured citations. Built for AI agents and the humans who deploy them.
Real queries against the live API. Filter by agency, get answers with full citations — agency, document, section, and page number.
Every major federal mortgage program, ingested from primary source PDFs and kept current via automated change detection.
A four-stage pipeline transforms raw guideline PDFs into structured, citable knowledge — automatically updated when source documents change.
Source PDFs are downloaded from official agency sites, parsed for structure — headings, section IDs, page numbers — and stored with full provenance metadata.
Documents are split into ~500-token chunks with 50-token overlap. Each chunk carries agency, document, version, section reference, and page range metadata.
Chunks are embedded with all-MiniLM-L6-v2 and stored in ChromaDB. Multi-agency queries are per-agency balanced to prevent source dominance.
Top-k chunks are retrieved, passed to Claude Haiku with a strict citation prompt, and returned as structured JSON — answer text plus a citations array with every source reference.
REST JSON API with API key authentication. Every endpoint returns structured data with full citation metadata.
All endpoints (except /health) require an
X-API-Key header.
Rate limit: 60 requests/minute per IP.
Every /query response
includes a citations array:
{ "agency": "FHA", "document": "HUD 4000.1", "section_id": "II.A.4.b", "section_title": "Credit Score...", "page": 153, "chunk_id": "fha-hud4001-...", "similarity": 0.8724 }
curl -X POST http://localhost:8000/query \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "question": "What is the minimum credit score for an FHA loan?", "top_k": 5 }'
import requests BASE = "http://localhost:8000" HEADS = { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" } resp = requests.post( f"{BASE}/query", headers=HEADS, json={ "question": "DTI limits for VA loans?", "top_k": 5 } ) data = resp.json() print(data["answer"]) for c in data["citations"]: print(f"{c['agency']} | {c['document']} | §{c['section_id']} | p.{c['page']}")
{ "question": "Minimum credit score for FHA?", "answer": "FHA requires a minimum FICO score of 580 for maximum financing (96.5% LTV) [FHA | HUD 4000.1 | II.A.4.b | p.153]. Borrowers with scores between 500–579 are limited to 90% LTV [FHA | HUD 4000.1 | II.A.4.b | p.153].", "citations": [ ... ], "chunks_used": 5 }
Anchored to the value it replaces — hours of manual guideline lookup per underwriter, per day.