Inspiration

Market access analysts at firms like Anton Rx spend hours every day reading insurance policy PDFs. A single change, like a new step therapy requirement, can take weeks to catch. Every payer formats their policies differently. There's no central place to look things up and compare. We wanted to fix that.

What it does

Anton Desk ingests medical benefit drug policies from major health plans, extracts structured coverage criteria using AI, and lets analysts ask plain-language questions and get cited answers in seconds. Type "Which payers cover bevacizumab for mesothelioma?" and the system pulls the answer directly from indexed policy text, with the source cited. You can also compare payer criteria side by side and see exactly how coverage differs across plans for the same drug.

How we built it

The core is a four-stage AI pipeline: extract text from PDFs, classify the drug and category, normalize coverage criteria into a structured schema, then index everything for search. FastAPI handles the backend. ChromaDB stores the vector index. SQLite stores the structured records. The frontend is Next.js with a streaming Q&A interface and real-time pipeline animations so you can watch a document get processed as it happens.

One thing we're proud of: the LLM layer is fully swappable. Claude, Gemini, Groq, Grok, and a self-hosted Qwen model all work with a single environment variable change. We also built a "Sync latest policies" flow that simulates automated discovery of new payer documents and runs them through the full pipeline live.

Challenges we ran into

Running a 14B parameter model on an 8K context window was brutal. We hit truncated JSON, context overflow, and malformed outputs constantly. We built progressively more aggressive JSON repair logic and learned to cap token budgets hard. On the engineering side, merging parallel feature branches while the design system was mid-refactor caused real pain.

Accomplishments that we're proud of

  • 8 policies from 6 different payers fully ingested and queryable
  • 3 query types handled automatically: structured lookup, payer comparison tables, and open-ended semantic search
  • Provider-agnostic LLM layer: swap between 5 AI backends with one config change
  • Real-time 4-stage pipeline animation during policy ingestion

What we learned

Small open-source models need way more guardrails than frontier APIs. JSON repair, thinking-tag suppression, context window management, we had to build all of it. We also learned that semantic search alone isn't enough for policy Q&A. Linking vector chunks back to structured database records is what makes answers accurate and trustworthy, not just plausible.

What's next for Anton Desk

  • Real-time scraping of payer policy portals
  • Automated change detection that surfaces what actually changed between policy versions
  • Alerts when coverage criteria shift for tracked drugs
  • Redline comparison view for policy version history

Built With

Share this project:

Updates