The patients your trial needs are already at the pharmacy.
Clinical Clarity turns de-identified pharmacy fill data into tiered, fully explained trial candidates - and coordinates outreach through the pharmacists patients already trust.
The problem
Recruitment misses the patients pharmacies already know.
A patient filling an antiarrhythmic and an anticoagulant is very likely an atrial-fibrillation patient - exactly who an AF trial needs. That signal sits in community-pharmacy dispensing data everywhere.
Ad campaigns and call centers can’t see it, and they don’t have the patient’s trust when the phone rings. The pharmacist does. Clinical Clarity industrializes that inference across a pharmacy network - while patient identity stays at the pharmacy until the patient consents.
How it works
One loop, end to end - from fill data to randomized.
- 1
Pharmacies upload de-identified fill data
Monthly Limited Data Set extracts - no names, no contact info, only pharmacy-local patient IDs. Files validate, repair, and ingest automatically.
- 2
Criteria become a screening reference
Trial inclusion/exclusion criteria are translated into a reviewable, versioned drug matrix. Every row traces back to the protocol criterion it came from, and an analyst approves it before it can run.
- 3
Deterministic screening tiers every candidate
A deterministic engine - never a language model - screens every patient and grades evidence strength, producing a full per-patient rationale.
- 4
Analysts release call lists
Selected candidates go to the pharmacies that dispense to them, as structured worklists with analyst-authored talking points - not spreadsheets.
- 5
Pharmacists call their own patients
People they already have a relationship with. Every outcome is recorded with one click: interested, callback, declined, ineligible.
- 6
Outcomes close the loop
Verbal consent routes the lead to the research site, optionally with a screening visit already booked. The site records randomized or screen failed, and every dashboard reconciles from the same event.
The LLM proposes; deterministic code decides. No model ever sees patient-level data or makes a per-patient decision.
Not a black box
Every candidate is explainable.
Click any candidate and see the exact fills that matched, which reference rows fired, which exclusions were checked, and the tier logic in plain language.
- 1
The tier, in plain language
Why this patient graded Tier 1: independent signal classes corroborating, checked against demographics - spelled out, not scored in secret.
- 2
Advisory, never silent
Contact history warns the analyst but never silently drops a patient. Only a patient’s do-not-contact request hard-blocks.
- 3
Manual-review criteria stay visible
What pharmacy data can’t confirm is flagged for chart verification - not quietly ignored.
~7 s
to ingest a 50,000-row pharmacy upload
~3 s
to screen 23,000+ patients across a network
420+
automated tests, including a compliance-invariant sweep
Feasibility engine
Answer “how many patients could you reach?” before any commitment.
Ask a population question in natural language and get counts by location in under a minute - watermarked, aggregate-only, never touching the recruitment path.
Scenarios, side by side
Save multiple scenarios per prospective trial and compare them - per protocol versus with a criterion relaxed.
Criterion sensitivity
See which criterion costs the most patients - evidence for protocol pushback and sponsor conversations.
One-page export
A summary shaped for sponsor feasibility questionnaires, with per-pharmacy breakdowns and data-freshness stamps.
Built for compliance
Trust by construction - enforced in code, proven by tests.
Designed for Limited Data Set handling
De-identified pharmacy data only. Uploads containing names, SSNs, MRNs, full DOBs, or addresses are hard-rejected - by header inspection and content sniffing.
Tenant-isolated
A pharmacy can only ever see its own patients - enforced in every database query, not in the UI.
Audit-logged
Every patient-level read and every state change writes an append-only audit row, backed by database-level triggers.
Identity only after consent
Patient names and contact info enter the system only after recorded verbal consent, and are visible only to the research site receiving the referral.
Immutable references
Approving a screening reference freezes that version forever. Every screening run records exactly which version it used; rationales are snapshotted immutably.
Do-not-contact is absolute
A patient’s do-not-contact request is the only hard block in the pipeline. Everything else is advisory to the analyst - never silent.
Sizing a protocol? Building a pharmacy network?
Whether you’re a sponsor or CRO with a feasibility question, or a pharmacy interested in partnering - we’d like to hear from you.
info@clinicalclarity.io