Inspiration

Every day, pharmacists and healthcare providers waste hours digging through 50-page insurance policy PDFs to answer one simple question: "Is this drug covered?" Multiply that by three insurance companies and dozens of drugs, and you have a system that delays patient care. We built PolicyPulse to turn that process from hours into seconds.

What it does

PolicyPulse is the Bloomberg Terminal for medical drug coverage. Upload any payer's policy PDF and our AI extracts every drug, every indication, every prior auth requirement, and every step therapy rule automatically.

  • Coverage Grid: Search any drug and instantly see a color-coded heatmap across all payers. Green = covered. Yellow = prior auth required. Orange = step therapy. Red = not covered.
  • Policy Diff Engine: Compare old vs new policy versions side-by-side and see exactly what changed, like GitHub diffs but for drug coverage.
  • PulseAI Chat: Ask natural language questions like "Is Keytruda covered by Cigna for NSCLC?" and get instant, cited answers.
  • Voice Assistant: Talk to PulseAI using ElevenLabs-powered voice, built for busy clinicians who don't have time to type.
  • Policy Vault: Secure document management with AI-powered analysis summaries for every uploaded policy.

How we built it

  • Frontend: Next.js 14, TypeScript, Tailwind CSS with a custom premium UI
  • AI Pipeline: Google Gemini 2.5 Flash parses raw PDF text into structured JSON with drug names, indications, coverage status, clinical criteria, and step therapy requirements
  • PDF Extraction: Python PyMuPDF service extracts text from policy PDFs
  • Database: Supabase (PostgreSQL) stores normalized coverage data across payers
  • Voice: ElevenLabs Conversational AI agent for hands-free policy queries
  • Auth: Auth0 for secure healthcare-grade authentication
  • Data: Real policy documents from Aetna, UnitedHealthcare, and Cigna for drugs like Keytruda, Humira, Opdivo, and Tecentriq

Challenges we faced

  • PDF parsing reliability: Insurance policy PDFs are wildly inconsistent — tables, nested criteria, footnotes. We iterated through 5+ Gemini prompt versions to get reliable extraction.
  • Indication name normalization: Cigna calls it "Crohn's Disease", Aetna calls it "Crohn's disease (CD) - Adult". We built standardized indication mapping so the coverage grid aligns across payers.
  • Gemini rate limits: Free tier limits hit us hard during bulk uploads. We optimized by extracting only relevant sections from PDFs before sending to Gemini.
  • Biosimilar complexity: Humira has 10+ biosimilars with different NDC-specific coverage rules. We built name normalization to merge them properly.

What we learned

The gap between "data exists" and "data is usable" is enormous in healthcare. Insurance companies publish their policies publicly, but no one has built the infrastructure to make them searchable, comparable, and actionable. PolicyPulse proves that AI can bridge that gap.

What's next

  • Automated policy monitoring to detect when payers silently update coverage
  • Expand to 20+ payers and 100+ drugs
  • Patient-facing portal for coverage eligibility checks
  • Integration with EHR systems for real-time coverage verification at point of care

Built With

Share this project:

Updates