Inspiration Independent pharmacies and drug manufacturers are operating in the dark. Every major health plan publishes Clinical Policy Bulletins (CPBs) that dictate whether a drug is covered, what prior authorization is required, and what clinical criteria a patient must meet — but there are 48+ payers, each updating policies quarterly, each in a different PDF format. Tracking this manually is a full-time job that most organizations simply can't staff.
What it does Anton Cx is a clinical policy intelligence platform that ingests, parses, and normalizes CPB documents from health plan payers into a structured, searchable, and comparable database. Upload a PDF, and the platform extracts 19 standardized fields — coverage status, prior auth criteria, step therapy requirements, J-codes, indications, and more — using Anthropic's vision API. Users can search policies across 48+ payers, compare coverage side-by-side, and get alerted to quarterly policy changes the moment they happen. Three distinct user personas — Analysts, Manufacturers, and Health Plans — each see a tailored view of the same data, surfacing the insights most relevant to their role.
How We Built It Anton Cx is built on two layers: a scraping pipeline that acquires policy documents, and an intelligence platform that normalizes and surfaces them. Ingestion starts with a Crawl4AI scraper service deployed on Railway. Given a drug name (or HCPCS/J-code) and payer, it locates the policy page and returns clean text or a raw PDF. The ingest API supports three modes — auto-fetch by drug+payer, PDF upload, and direct URL paste — with a raw fetch fallback when the scraper is unavailable. Extraction pipes the document content to Claude Sonnet via the Anthropic SDK, which returns a normalized 19-field PolicyDocument covering coverage status, prior auth criteria, step therapy, site of care, clinical scoring thresholds, and more. Medical and pharmacy benefit policies are extracted and stored separately. Storage uses Postgres via Prisma with a unique constraint on (payer_id, drug_id, effective_date). The diff engine runs automatically on each new ingest, populating changed_fields and powering the quarterly alert system without manual review. Frontend is Next.js 14 with TypeScript, Tailwind CSS, Framer Motion, and GSAP — a precision animation system calibrated for daily analyst use. Three role-specific personas (Analyst, Manufacturer, Health Plan) are served from the same data layer. Deployed on Vercel.
Challenges CPB documents have no standard format. A Cigna policy PDF looks nothing like a UHC or BCBS document. Getting consistent, structured extraction across wildly different layouts required significant prompt engineering and a strict normalization schema enforced at the API boundary.
Accomplishments A single upload produces a fully normalized policy record in 3–8 seconds. The comparison engine can diff any two policies field-by-field, flagging exactly what changed and when. The platform already covers synthetic data across 8 payers and 5 drug classes, with live extraction demos on real public CPBs from UHC, Aetna, and Cigna.
What we learned LLM vision extraction is powerful but non-deterministic — schema validation and structured output constraints are non-negotiable when the output feeds a database. We also learned that enterprise data tools require a fundamentally different animation philosophy: purposeful, fast, and never distracting. What's next Quarterly diff email alerts, payer portal URL watchers, and a biosimilar exposure tracker for manufacturers. Anton Cx is built to become the Bloomberg Terminal of drug coverage policy.
Built With
- framermotion
- gsap
- next.js
- supabase
- tailwindcss
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.