Inspiration
RX Health was inspired by how hard it is for market access and commercial teams to answer a simple question: “What does this plan actually cover?” Policy PDFs are dense, inconsistent, and slow to compare by hand, especially when you need to understand not just coverage but also access position, prior authorization, step therapy, and how one plan stacks up against another.
What it does
RX Health ingests payer policy PDFs and turns them into structured coverage intelligence. It extracts the key fields that matter most for launch and access decisions, including drug name, brand and generic names, therapeutic class, preferred versus non-preferred status, covered indications, prior authorization criteria, step therapy, site-of-care restrictions, quantity limits, and effective date. It also compares coverage across other health plans so users can see similar or better access options quickly.
How we built it
We built the app with a Next.js frontend and a Python Strawberry GraphQL backend. The frontend uploads PDFs through a GraphQL mutation, and the backend uses Gemini plus PDF parsing to extract policy data, normalize it, and store it in Supabase. We added versioning, cross-payer comparisons, and a structured UI that highlights the most decision-critical policy fields.
Challenges we ran into
The biggest challenges were handling PDF uploads correctly through GraphQL, dealing with multipart request boundaries, and keeping the frontend and backend aligned on schema and response formats. We also had to fix several hydration, JSON parsing, and Auth0 profile issues along the way. Another challenge was making sure the extracted data was not just accurate but actually useful for commercial decision-making.
Accomplishments that we're proud of
We’re proud that RX Health now does more than read documents: it converts policy PDFs into usable business intelligence. The app can extract and store policies, show the most important coverage criteria in a clear format, and compare access across plans in a way that supports rebate strategy and market access analysis. We also built a system that can infer missing plan metadata when the PDF doesn’t provide it cleanly.
What we learned
We learned that the hardest part of healthcare AI is not just extraction, but normalization and decision relevance. A good prototype needs to surface the fields that actually drive access and economics, not just dump the full text back at the user. We also learned how important it is to make file uploads, schema design, and server/client boundaries robust from the start.
What's next for RX Health
Next, we want to improve drug matching, add more reliable category and access ranking logic, and expand the “similar or better coverage” view with stronger plan recommendations. We’d also like to improve extraction confidence scoring, support more policy document formats, and add analytics that help teams understand rebate leverage by category and preferred status.
Built With
- claude
- gemini
- graphql
- next.js
- python
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.