CLAIRE
AI-assisted claims auditing at national scale
Israel's health funds (קופות חולים) are billed for every hospital stay in the country, and most of those claims are still checked by hand. An auditor cross-references invoices, diagnosis codes, and authorization forms across half a dozen documents per patient. CLAIRE replaces that work. It ingests the raw hospital billing files, reads the scanned paperwork with an LLM, and runs the same checks a human auditor would, at machine speed. It's rolling out to Israel's largest HMOs.
I lead the architecture: three Python services and a React 19 frontend over a 76-table Postgres schema, multi-tenant from the ground up. Each health fund gets its own isolated database, blob storage, and secrets, resolved per request from Azure Entra ID groups through Key Vault, so no tenant can ever reach another's data. The pipeline parses legacy fixed-width Hebrew billing files (cp862, right-to-left), uses Claude to read scanned authorization forms (טופס 17) and discharge summaries, and runs 57 automated checks across emergency, ambulatory, and inpatient claims: price-matching against the Ministry of Health's tariffs, duplicate-charge detection, diagnosis classification, and authorization validity. Because those tariffs and rules change over time, every claim is judged against the version that was in force on its own billing date, not today's.
The part I'm proudest of is how much control it hands back to the auditors. Sixteen of those checks are tunable on the spot: change an operator, set a percentage or a flat-shekel tolerance, no code involved. And for anything the built-in checks don't cover, an auditor can write a brand-new rule in plain Hebrew, something like "flag any elective admission billed as acute," and a five-stage pipeline turns that sentence into working validation logic, checks it for conflicts with the existing rules, and wires it into the engine, streamed live to the browser as it runs. At runtime Claude does the reasoning over each patient, but the database makes the final call on every code. The model reasons; it never decides. CLAIRE can flag a claim, but it can't invent a diagnosis.
- Python
- FastAPI
- PostgreSQL
- React 19
- TypeScript
- Azure
- Anthropic Claude
- Multi-tenant
- SCIM