A patient's chart said "no evidence of diabetes." The AI matcher read the word "diabetes" and cut the patient from the trial.
That is not a rare bug. A vector-similarity matcher has no model of the word "no." It scores "no evidence of diabetes" as a near-perfect match for "diabetes," and it does the same with a relative's history the note never pinned on the patient.
We built TrialProof so the software stops guessing at meaning and computes it. A model reads the note and proposes facts. An adversarial verifier challenges each one against the literal text, including whether it was negated, and throws out what the note does not support. Only the surviving facts reach a deterministic engine that decides eligibility over a medical ontology. The model never gets a vote on the verdict.
On a fixed 13-case labeled gold set (all patients and notes synthetic), that moved the number a clinical-operations lead actually watches. The fair lexical baseline lost 3 eligible patients. TrialProof lost 0, and every decision carried a reproducible reasoning trace instead of a bare similarity score.
Every lost patient is a real person who qualified and never got the call.
When your matching tool flags a patient for exclusion, does anything check whether the term it matched was actually negated in the note, or does the raw word decide?
#ClinicalTrials #PatientMatching #ClinicalOperations #HealthAI
Published on Facebook · July 27, 2026
On social media
See this post on its original platform
In our archive