Finalist
About Trialign
About Trialign is a patient-facing clinical trial matcher for oncology.
Core trick
Parses a clinical note into a structured mCODE profile, then re-screens recruiting trials against the next planned treatment's exclusion criteria.
Tags
Description
About
Trialign is a patient-facing clinical trial matcher for oncology. A patient pastes a clinical note, uploads a record, or connects their EHR via SMART on FHIR. Claude reads it into a structured mCODE profile, asks only the questions that actually change an eligibility call, and screens live against recruiting studies on ClinicalTrials.gov — showing the inclusion and exclusion reasoning behind every match, criterion by criterion.
The part that makes it different: after showing what a patient qualifies for today, Trialign asks what treatment their care team has recommended next — and shows which trials that next treatment would disqualify them for.
What we found
We started building a trial search tool. The research pushed us somewhere else.
Finding 1: the biggest hole in the funnel isn't matching — it's timing. In one phase I cohort, roughly 48% of patients who fell out of the trial funnel had already started an off-protocol therapy without ever consenting to a trial. Most trials exclude patients with prior exposure to certain drug classes. So the treatment you begin next month can silently disqualify you from trials you didn’t know existed. Every existing tool — TrialJectory, Antidote, TrialMatch — treats eligibility as a static snapshot. It isn't. It's a window that closes, and nobody shows patients the window.
Finding 2: FHIR gives you the documents, not the data. The Cures Act (§170.315(g)(10)) requires every certified EHR to expose a FHIR R4 API that lets a patient authorize a third-party app to pull their own records. But the mandated USCDI data set doesn't carry oncology's decisive variables — receptor status, PIK3CA mutations, ECOG, RECIST measurable disease, date of last dose. Those live in narrative notes and pathology PDFs, which arrive as unstructured DocumentReference blobs. The FHIR R4 API hands you the documents. Claude is what turns them into a matchable profile.
Finding 3: the regulatory position is the opposite of what everyone assumes. Because the patient authorizes the disclosure themselves, we never become a HIPAA business associate. We also found that ONC and the NCI have already published USCDI+ Cancer Clinical Trials Matching, a federal data element list built on mCODE for exactly this use case. We conform to it.
Why it matters
Roughly 76% of patients considered for cancer trials never reach first dose, and 3-month mortality after screen failure is around 30% — patients getting too sick to qualify while they wait.
Someone I know got into a trial only because their oncologist happened to be its principal investigator, and paused to discuss the trial before starting a therapy that would have disqualified them. That pause is the only reason they got into the trial.
Everyone else deserves the same pause. That's what we built.
README excerpt
# Trialign A patient- and caregiver-facing clinical trial matcher with **coordinator-grade output** — describe your situation, upload a note, or connect your records, and Trial surfaces the **recruiting ClinicalTrials.gov trials** you may be eligible for, with the inclusion/exclusion reasoning shown and sourced for **every** match. The intake speaks to you in plain language; the output is rigorous and clinical, framed as *"what to bring to your care team."* Built for the Cerebral Valley × Anthropic × Gladstone "Build Beyond the Bench" hackathon. [](https://youtu.be/RlR9nHIMiyA?si=Qcgol8YOEmXFyMNY) > Informational support for a conversation with your care team — not medical advice or a final > eligibility determination. Trial data is pulled live from ClinicalTrials.gov. Use synthetic > personas only; no real PHI. ## Stack - **Next.js 16 (App Router) + React 19 + TypeScript** — one app, deploys to Vercel with zero config. - **ClinicalTrials.gov API v2** — live recruiting-trial data (no API key needed). Proxied server-side because the registry doesn't send CORS headers. - **Anthropic API (Claude Opus 4.8)** — reads the note into a structured profile and reasons each trial's eligibility criteria into a per-criterion verdict ledger. The agent/registry work runs entirely in **server route handlers**, so the Anthropic key never reaches the browser. ## Run it locally ```bash npm install cp