Hashlogics
Industries

Clinical research

Trial matching software that a coordinator can trust

Finding candidates is a triage problem, not a decision problem. We build the worklist, and a qualified human still decides who is eligible.

What makes clinical research software different

4 things that decide this

  1. 01Eligibility criteria arrive at your site as one block of free text. Across 100 recruiting cancer trials we sampled from the ClinicalTrials.gov API in August 2026, the median criteria string ran 1,910 characters and the longest ran 13,506.
  2. 02The structured fields alone won't get you far. Age, sex and healthy-volunteer flags are available, but prior lines of therapy, biomarker status and lab thresholds live only in the prose.
  3. 03Matching reconciles two piles of unstructured text: trial criteria against your clinician notes. String comparison can't do this, and neither can confidence alone.
  4. 04You need to know which side of the regulated line each system sits on. Pre-screening and a validated records system carry different obligations, and the distinction drives your architecture and your validation effort.
The problem

Why a coordinator cannot screen fast enough

Your site has open trials and eligible patients sitting in your own clinic, and the two just don't meet. By the time your coordinator has read the chart, the patient has started another therapy and the window has closed.

The reason is mechanical. Someone has to read thousands of characters of criteria per trial, then read a pathology report and a molecular result, then hold both in mind at once. Real criteria text contains nested sub-items, escaped formatting and lab thresholds written as sentences, and a parser meets all of it on day one.

Software helps you most by narrowing: it cuts a hundred trials down to the handful worth a human look. It shouldn't be the thing that says yes.

Published studies, named

What AI matching actually achieves, and where it stops

81.8%

Sensitivity when a trial-matching framework met real EHR data at UT Health San Antonio (Syed et al., JAMIA, April 2026)

75.0%

Positive predictive value in that same study. One in four flagged patients was not eligible

26.5%

AI-generated matches that became enrolments across 514 patients screened in GI surgical oncology clinics (Verhagen et al., Surgery, March 2026)

1,910

Median characters of free-text eligibility criteria per trial, our own sample of 100 recruiting cancer trials, August 2026

Where we are useful

The clinical research work we take

Pre-screening, matching and the software around the regulated core.

Trial matching and pre-screening

We rank candidate trials against a patient profile and explain why each ranked where it did. TrialTriage does this for oncology nurses, and a nurse finalises every result.

Criteria parsing

We turn prose criteria into something a system can reason over, while keeping the original text visible. The parse is a suggestion, never a silent replacement for what the sponsor wrote.

Registry integration

We work against the ClinicalTrials.gov API with its real limits: pagination, stale status, and structured fields that mostly aren't there. A match to a closed slot is a false positive from data, not from the model.

Batch tools for institutional users

You get CSV upload, background job queues and live progress, built for insurers and teams working in lists rather than one patient at a time.

Audit trails and access control

TrialTriage tracks 23 audit action types across four roles, with field-level encryption and multi-factor sign-in, designed in at the schema, not added for a questionnaire.

De-identified data models

We choose age bands, ZIP prefixes and stand-in patient identifiers when we draw the schema. The field you never collect can't leak.

Where a match should stop and a human should startLive
  1. Registry pullTrial text, plus its staleness.
  2. Criteria parseProse in. Structure out, with sources.
  3. Candidate rankNarrow a hundred to a handful.
  4. Nurse reviewThe decision point. Always a person.
  5. ReferralRecorded with the reason it was made.

The system's job ends at the worklist. In the best published real-world deployment, roughly three in four AI-generated matches did not become enrolments, and the commonest reason was genuine ineligibility.

The sharpest problem

Benchmark accuracy is measured on the easier patients

You'll see headline numbers in this field come from synthetic patients. A widely cited 2024 framework reported criterion-level matching accuracy above 87% on generated cases. When a later team adapted the same approach to real records, performance moved, and the positive predictive value landed at 75%.

That gap is the one to ask any vendor about. A demo score measured on clean, invented patients is the easier number, so ask which corpus it came from, and whether a clinician adjudicated the answers.

There are limits no model removes. Criteria such as adequate organ function are judgement calls the protocol left undefined. Washout history and outside-hospital treatment often appear in no record the system can read.

  • Ask whether an accuracy figure was measured on real charts or generated ones.
  • Treat registry status as data that goes stale, not as truth.
  • Never let your software issue an eligibility determination on its own.
A close scale-model crop of a lab bench with a rack of brass sample vials and an open case folder, one vial glowing cobalt blue among plain ones to show the harder patient cases benchmarks miss.
How to read a vendor

Two ways to build trial matching

The claim

The pitch you usually hear

An accuracy percentage, with no corpus named.

How we build

The corpus named, and whether a clinician adjudicated it.

The output

The pitch you usually hear

An eligibility verdict per patient.

How we build

A ranked worklist with the criteria text that drove each rank.

Ambiguous criteria

The pitch you usually hear

Resolved silently by the model.

How we build

Surfaced as ambiguous, because the protocol never defined them.

Registry data

The pitch you usually hear

Treated as current.

How we build

Treated as a snapshot with an age, shown to the coordinator.

Regulated scope

The pitch you usually hear

Blurred, so everything sounds validated.

How we build

Stated. Pre-screening on one side, regulated records on the other.

The stack

What TrialTriage runs on

Application

  • React
  • TypeScript
  • NestJS
  • Vite

Data

  • PostgreSQL
  • Redis
  • BullMQ
  • AWS S3

AI

  • Ranked retrieval
  • Explanation traces
  • Human review gates

Delivery

  • Docker
  • GitHub Actions
  • SonarQube
  • Vercel
Questions, answered

Questions research teams ask

01Will your software decide whether a patient is eligible?+

No, and we'd argue against building it that way. Look at the best published real-world result: positive predictive value landed at 75%, meaning one in four flagged patients wasn't actually eligible. A system that issues determinations also pushes itself toward regulated device territory. We build you the prioritised worklist and leave the decision with the qualified person who already owns it.

02Does a pre-screening tool have to meet 21 CFR Part 11?+

Often not, and getting this wrong in either direction costs you. Part 11 attaches to records required by FDA regulations. A recruitment tool whose output never becomes part of a regulatory record can fall outside it. Telling a buyer that everything is Part 11 is itself a credibility failure, and so is assuming nothing is. Map your records first, then decide.

03Can you connect to our EDC or our CTMS?+

Yes, and most of the work sits in your access and data rather than the client library. These platforms gate entry through partner programmes and per-tenant credentials, so getting your approvals comes first. We've integrated many production systems against rate-limited APIs, and the same rules hold here. Expect paging limits, treat their status data as a snapshot with an age, and validate the interface as part of your system.

04How do you handle patient data during pre-screening?+

We collect as little as the matching actually needs. TrialTriage works from de-identified inputs, with age ranges and stand-in identifiers rather than full records, and field-level encryption sits underneath. Access runs through four roles with multi-factor sign-in and 23 tracked audit action types, so if you ever ask who saw what, you'll have an answer.

05What does the registry data not tell you?+

More than you'd expect. In our August 2026 sample of 100 recruiting cancer trials, the structured fields amounted to age, sex and healthy-volunteer flags, and maximum age was present in only 36 of the 100. Everything clinically decisive sat in the free text. Trial status also goes stale, so a match can point you at a slot that's already closed.

By Abdul Basit, CEO, HashlogicsUpdated
Start

Let’s deploy working AI into your business.

We build AI agents and automation, ship them into the tools you already run, then stay on under an agreed service level. A senior engineer reads every brief, and your call gets scheduled within 24 hours.

What happens next

  1. 01

    You send a brief or book a call

    Two minutes, whichever you prefer.

  2. 02

    A senior engineer replies within 24 hours

    Not a sales rep.

  3. 03

    Honest scoping, in writing

    And if we’re not the right fit, we say so.

Abdul Basit, CEO of Hashlogics

“I started Hashlogics because too many teams ship a demo, get paid, and disappear. We build to a standard we’d run ourselves — and we stay to keep it running.”

Abdul Basit · CEO · a direct line

Not ready to talk? Take the checklist.

12 questions to ask any AI agency before you sign. They separate a demo shop from a team that ships to production.

Get the checklist

Free · no newsletter