Products The Screener Study board Publish a study Method For researchers Access FAQ

Most trials will rule you out.
One of them might not.

A neuro symbolic screening engine: a constraint compiler, a conformal multi label classifier and a quantised sentence transformer, reading every recruiting study in the ClinicalTrials.gov registry. All three run on device. Only the symbolic layer may decide anything, and only when it can quote the characters it read.

Live v2 registry Patient profile stays in your browser No account, no cost

Duchenne muscular dystrophy · 63 studies read age 9 · male · United States

What the engine read

Participant has bodyweight ≤50 kg.

weight lte 50kg · conf 0.95 · decidable

400 studies pulled per search, four pages of 100
0.70confidence below which the engine refuses to decide
0bytes of your profile sent to any server we run
35clinical concepts the rules currently compile

The aperture

Most studies rule you out on a field, before anyone reads a word.

Sex, age bounds and site countries arrive from the registry as structured fields, so they decide exactly and instantly. That is the gate. The narrow channel is everything left over, which is where a human still belongs.

64,767studies recruiting in the registry today
the fewworth a phone call · hover the band to slow it

What it reads

Watch it read. Every character it used is marked.

Real eligibility text from a live study, verbatim. The compiler segments each criterion into clauses, matches a 35 concept lexicon inside each one, resolves negation against the clause rather than the line, and extracts the number with its unit. Hover or tap a marked phrase for the predicate, the confidence, the deductions behind it, and the byte offsets it came from.

NCT07160634 eligibility criteria, verbatim deterministic, no model in this panel

Readinghover or tap a marked phrase

A wrong reading is visible in the quoted words, not merely suspected.

The problem

Criteria doubled in ten years. Nobody was given ten years of reading time.

The registry hands you a wall of prose per study. Most of it does not apply to you, some of it rules you out in one line, and the only way to know is to read all of it.

95%

growth in the median unique word count of NCI affiliated trial eligibility criteria, from 214 words in 2008 to 416 in 2018.

11.8% → 29.4%

accrual failure rate across deciles of criteria length, shortest to longest. Of 1,197 trials studied, 231 failed to accrue.

Peterson JS, Plana D, Bitterman DS, Johnson SB, Aerts HJWL, Kann BH. Growth in eligibility criteria content and failure to accrue among National Cancer Institute (NCI) affiliated clinical trials. Cancer Med. 2023;12(4):4715–4724. doi:10.1002/cam4.5276. Cited to describe the problem this tool addresses. It is not a claim about this tool's effect on accrual, which has not been studied.

What a chatbot does

Reads the prose, produces a confident paragraph, and gives you no way to check it.

  • No source for any claim it makes
  • Same tone whether it is certain or inventing
  • Your medical details leave the device

What Inclusion Health does

Compiles what is compilable, quotes the rest, and carries the character offsets behind every verdict.

  • Every predicate carries the span and the cue it fired on
  • Abstains below 0.70 and prints the deductions that got it there
  • Three readers, zero model API calls, all of it client side

What it can do

Eight inference passes over one result set.

Symbolic, statistical and neural, in that order of authority. Every pass is a named, inspectable step with its output attached, and none of the learned ones is permitted to decide anything on your behalf.

Structured gates

structured field resolution

The registry publishes these as fields, not prose, so they decide exactly and instantly. Most of a result set dies here, before a parser is involved at all.

Age: 9 Years to 17 Years · you gave 12 · passes

Rule compiler

constraint compilation

Segments each criterion into clauses, matches a 35 concept lexicon inside each, and scopes negation to the clause so a compound like non invasive is not read as a negative.

NOT ambulatory · conf 0.95 · cue “Non-”

Abstention

selective prediction

A criterion that turns on investigator judgement is marked and never machine decided, at any confidence. Below 0.70 the engine stops and prints the deductions that got it there.

abstained · unit “mg” is not the expected “kg”

Concept model

calibrated multi label inference

A calibrated linear model over word and character n grams says which concept an uncompiled line is about, and returns a set with a stated coverage rather than a single guess.

weight · p 0.91 over q̂ 0.39 · in the 90% set

Semantic recall

dense retrieval, on request

Phrasing the lexicon has never seen, matched against a prototype per concept with a floor taken from the data. Off by default, and labelled as itself wherever it appears.

nearest psych · cos 0.61 over floor 0.48

The solver

active question selection

Scores every unanswered concept across the whole surviving set by how many still open studies it would close, asks that one, then reranks against what is left.

asks: genetic diagnosis? · settles 23 of 41

Coverage reporting

measured, never claimed

Every result prints what fraction of criteria compiled, split into decidable, investigator judgement and unread. The number moves with the condition and is never rounded up.

370 decidable · 45 judgement · 461 unread

Provenance out

auditable export

Exports carry the NCT number, the verdict, the predicate that produced it and the quoted line, so a coordinator can check the tool rather than trust it.

NCT07160634,ruled-out,age lt 18,“adults only”

What you get

Six things it does that a summary cannot.

Cuts the list before you read a word

Sex, age bounds and site countries arrive as structured registry fields, so they decide exactly and need no parser at all. A search for cystic fibrosis drops from 153 studies to the ones that can actually take you, before a single line of prose is read.

Shows the sentence behind the verdict

Every predicate carries the character span of its concept, the span of its number, the negation cue that fired, and a confidence with the deductions itemised. You can disagree with it line by line, which is the point.

Asks the one question worth asking

A greedy max coverage solver ranks every unanswered concept across the whole result set by how many still open studies it would settle, then asks only that one and reranks. Three answers usually resolve more than an hour of reading.

Keeps the patient out of the network

Age, sex and country never leave the tab, because the models come to the text rather than the other way round. The only outbound request carries the condition name, sent to the public registry exactly as a search box would send it.

Tells you where it stops

Eighteen hedge patterns catch the criteria that turn on investigator judgement, and those are never machine decided at any confidence. Every search prints its own coverage, split into decidable, judgement and unread, rather than claiming a number.

Hands a coordinator something useful

You arrive with NCT numbers and the quoted lines that still need a human, instead of a question that starts from zero.

A screening tool that guesses is worse than no screening tool at all. So this one refuses, out loud, every single time it cannot decide.

How it works

Three steps for you. Rather more of them underneath.

You type a condition

Name the condition

It pages the ClinicalTrials.gov v2 API up to 400 studies, pulls the full eligibility section for each, splits it into inclusion and exclusion lines, and compiles every line as it arrives.

You answer three or four questions

Answer what you can

Age, sex and country settle the structured gates outright. The solver then scores every unanswered concept by how many open studies it would close, asks the highest one, and reranks against what is left.

You leave with NCT numbers

Take the survivors to a coordinator

Open any study for the predicates that decided it, the ones that abstained and why, the concepts each model layer flagged, and the lines left for a human. Then call the site on the record.

Under the hood

Three readers, and only one of them is allowed to decide.

A hybrid neuro symbolic architecture: deterministic constraint solving underneath, statistical and neural inference layered on top of it for recall, and a hard rule that the learned layers may never produce a verdict. All three run on device, so no criterion and no profile is ever sent to a model somewhere else. Each layer reads what the one below it could not, and says so on the line where it did.

Layer one

Rules, and the verdicts

A compiler over the eligibility prose. It segments each criterion into clauses, matches a 35 concept lexicon inside each clause, scopes negation to that clause so “non invasive” is not read as a negative, extracts numbers across four unit families, and returns byte offsets for every span it used. Confidence opens at 0.95 and is docked per named reason: 0.20 for two concepts crowded into one clause, 0.25 for a negation cue more than forty characters from its concept, 0.35 for a unit that does not match, 0.10 for no unit at all. Under 0.70 it abstains and prints the arithmetic. Nothing else in the stack may produce a pass or a fail, because nothing else parses a number or a “not”. This is the symbolic half of the architecture, and it is the only half with authority.

100.0% precision · 95.7% recall · 46 hand labelled criteria

Layer two

A calibrated model, with a coverage guarantee

Distant supervision: the symbolic layer labels 32,628 criteria, and a one vs rest multi label classifier learns to generalise past its lexicon. L1 regularised logistic regression over a 21,000 dimensional word and character n gram space, fitted on the first of three disjoint folds. The second fold fits an isotonic regression per concept, which turns an uncalibrated margin into a probability. The third fixes a split conformal threshold per concept, giving distribution free coverage: the returned prediction set contains the true concept at a stated rate regardless of the underlying distribution. That is what lets the tool abstain with a number attached rather than a cutoff chosen by feel.

0.0065 → 0.0008 expected calibration error · 92.9% coverage against human labels at a 90% target · 0.89 concepts per set, of 32

Layer three

Meaning, when you ask for it

Nearest centroid classification in embedding space. A six layer sentence transformer, int8 quantised and executed through ONNX Runtime on WebAssembly in the tab, encodes each unread criterion into 384 dimensions. Each concept carries a prototype: the mean unit vector of its rule matched positives, which makes this a few shot classifier built from the symbolic layer's own output. Cosine similarity against a per concept floor set at that concept's 5th percentile, so the threshold comes from the data rather than from a guess. It is the least certain layer, off by default, and labelled as itself wherever it appears.

95.6% precision · recovers the criteria the first two layers both missed · decides nothing

The specification

Every hyperparameter, every fold, every threshold.

Stated in full, because a system that asks you to trust its abstentions should be checkable down to the constant. Each figure below is printed by a command in the repository, not written by hand.

Supervision
distant, or weak. 32,628 criteria harvested from the registry and labelled programmatically by the symbolic layer, so no human annotation was required to train
Symbolic layer
35 clinical concepts, clause level negation scoping, 18 hedge patterns for investigator judgement, numeric extraction across 4 unit families and 9 unit tokens, byte offsets on every span
Feature space
word 1–2 grams capped at 9,000, plus char_wb 3–5 grams capped at 12,000, sublinear tf, each block L2 normalised on its own before it is joined
Estimator
one vs rest multi label classification. L1 regularised logistic regression per concept, class balanced, liblinear. 1,143 non‑zero coefficients survive over 21,000 features, so the model is 99.5% sparse
Folds
19,576 fit / 6,526 calibrate / 6,526 conformal, disjoint. No threshold is ever fitted on data the model has already seen
Calibration
isotonic regression per concept, fitted on a held out fold. Expected calibration error 0.0065 raw, 0.0008 after, measured over 10 reliability bins
Guarantee
distribution free uncertainty quantification by split conformal prediction at alpha 0.10. One acceptance threshold per concept from the third fold, measured at 92.9% empirical coverage against hand labels, mean prediction set 0.89 concepts of 32
Semantics
nearest centroid classification over sentence embeddings. all‑MiniLM‑L6‑v2, 6 layers, 384 dimensions, int8 quantised, executed through ONNX Runtime on WebAssembly. Prototypes are the mean unit vector of each concept's rule matched positives, making it few shot from the symbolic layer's own output
Solver
greedy max coverage, the standard approximation for set cover, run over unanswered concepts and rescored against the surviving set after every answer
Payload
468 KB of model weights and 110 KB of prototypes ship with the page. The sentence model is 23 MB and is fetched only if you ask for it
Delivery
edge inference from static files. No backend, no analytics, no telemetry and no model API in the screening path. The study board keeps per study counters and is the only server side state anywhere. Licensing is ECDSA P‑256 signatures verified in page with WebCrypto, so it works offline

Corpus, feature and fold figures are printed by train.py. Every accuracy figure comes from evaluate.mjs and evaluate-semantic.html, scored against 46 criteria labelled by hand, by one rater. That is a development harness, not a validation study, and it is stated here rather than left for you to find.

The line

The patient never leaves the tab.

Not a policy you have to trust. An architecture you can check in about thirty seconds with your own network tab, which is why it is drawn rather than described.

Your browser

  • Age, sex at birth, country
  • Every answer you give the solver
  • The rule compiler and its 35 concepts
  • The concept model, 468 KB of weights
  • The sentence model, if you switch it on
  • Every verdict, span, cue and confidence
  • Exports, the coordinator brief, saved cohorts

The network

  • The condition name, to the public registry
  • A recruiting count on this page, carrying nothing about you
  • Fonts, and the sentence model weights if requested
  • If you pay: a licence collected once and renewed once, carrying no condition, profile or answer

No account. No analytics. No telemetry. No server of ours in the screening path at all.

Two exception, on the other side of the product. The study board stores a researcher-written listing, its public contact address, and three counters keyed to the listing rather than a person. A reader emails the study team from their own inbox. There is no patient form and no patient data reaches Inclusion Health.

Open the network tab, search a condition, and read the request list. There is one request, and it carries the condition name exactly as any search box would send it.

Stated up front

The things it refuses to do, in writing.

It does not diagnose, it does not advise, and it reports no probability of enrolment. A study that is not ruled out is not a study you are eligible for. A coordinator screens against the full protocol, which holds criteria the registry never publishes.

The measurement is small

Precision and recall are computed against 46 criteria labelled by one person, the author. That is enough to catch a regression and nowhere near enough to validate a tool. A real number needs several raters and thousands of lines.

Coverage is reported, never claimed

Every search prints what fraction of criteria compiled, what was decidable, and what was left to judgement. The number moves with the condition you search.

The registry can be wrong

Sponsors write these records themselves and update them late. A site listed as recruiting may have closed. Always confirm on the phone.

Access

Free for everyone, because it has not been validated yet.

Every feature is open, with no account and no card. Screening for yourself or someone you care for stays free permanently, and that is not a launch offer. Everything else stays free until a proper validation study says the tool has earned the right to charge, and that study has not happened yet. Finding someone to run it is the current priority.

Patients and caregivers

Free permanently

Screening for yourself, a child, a parent, or anyone you care for.

  • Every recruiting study in the registry, up to 400 per search
  • The full engine, the solver, every quoted criterion
  • No account, no card, nothing about you leaves the browser
Screen a patient

Clinicians and coordinators

Free, and I want to hear from you

Anyone screening patients as part of the job.

  • Everything above, nothing withheld or metered
  • CSV export, a printable coordinator brief, saved cohorts
  • A direct line to me the first time it reads something wrong
Tell me you are using it

Researchers and sites

Free, plus the methods

Anyone who could help find out whether it actually works.

  • The training pipeline and both evaluation harnesses, reproducible from source
  • A written protocol for the validation study, waiting to be argued with
  • Co-authorship, and the labelled corpus released jointly
Read the collaboration brief

Nothing is charged per patient screened, and no sponsor can buy a higher position in a result list. Order comes from the registry and from what the engine could decide. If money ever enters this, it comes from recruitment budgets and never from a patient.

Questions

The fourteen things people ask first.

Is this medical advice?

No. Inclusion Health is not a medical device and gives no diagnosis, recommendation or probability. It reports what a public registry publishes and what a rule engine could and could not decide from it. Every decision about care stays with your clinician.

Where does the data come from?

The ClinicalTrials.gov v2 API, queried live from your browser at the moment you search. Nothing is cached, so what you see is what the registry published that minute.

Does it store anything about me?

No. There is no account and no analytics. Age, sex and country stay in the page and are compared against registry fields locally. The only outbound request from the tool carries the condition name, which is what any search box would send. The study board stores each public listing and three aggregate counters keyed to that listing, never to a person.

How accurate is the rule engine?

100.0% precision and 95.7% recall against 46 criteria labelled by hand. One rater, the author, so treat it as a regression harness rather than a validation study. A clinician labelled set does not exist yet. What the tool does instead is show its work, so a wrong extraction is visible in the quoted characters rather than hidden behind a score.

Is this a wrapper around a chatbot?

No, and the architecture is the opposite of one. There is no prompt anywhere in this product, no generative model, and no API call to anybody's model. It is a hybrid neuro symbolic system: a deterministic constraint compiler, a multi label classifier trained by distant supervision on 32,628 criteria under split conformal prediction, and a quantised sentence transformer for dense retrieval. All three execute on device. Nothing can hallucinate because nothing generates text, and only the symbolic layer is permitted to decide anything, which it does by quoting the characters it read.

What is a conformal prediction set?

A way of turning a model score into a guarantee. Rather than picking a cutoff and hoping, the threshold for each concept is fitted on data the model never saw, so the returned set contains the right concept a stated fraction of the time. Here the target is 90% and the measured figure against hand labels is 92.9%, with a mean set size under one concept out of 32. It is what lets the tool say nothing when it knows nothing.

Why is the meaning layer switched off?

Because it costs a 23 MB download and it is the layer most likely to be wrong. Turn it on in the rail and it reads the lines the other two left unread, at 95.6% precision, labelled as its own layer on every line it touches. It never produces a verdict.

What does "not ruled out" actually mean?

Only that nothing the tool could decide has excluded you yet. It is a shortlist for a phone call, never a statement of eligibility.

Why is so much eligibility text left unread?

Because guessing is the failure mode this tool exists to avoid. Roughly half of registry criteria are prose that no deterministic rule can safely parse, so they are shown verbatim and handed to you rather than compressed into a verdict.

What is the confidence number next to a rule?

It starts at 0.95 and drops for each named reason: several concepts crowded into one clause, a negation cue sitting far from the concept, a unit that does not match. Below 0.70 the engine abstains and prints the deductions that got it there.

Can I use it for my own child or parent?

Yes. Enter their age, sex at birth and country. Caregivers searching rare disease trials are the reason the free text is quoted rather than summarised.

Does it cover trials outside the United States?

Yes, everything in the registry, which includes most of Europe, Japan, Australia and Canada. Filter by country in the left panel, or leave it as anywhere.

Is it free, and what is the catch?

Everything is free right now, for everyone, with no account and no cap. Screening for yourself or someone you care for is free permanently. Professional and site use will be paid eventually, but not while the tool is still looking for clinical partners to validate it. See pricing.

Does paying change what the tool decides?

No, and nothing is behind a wall to begin with. The engine, the thresholds and the ordering will be identical on every plan, and no sponsor can buy a higher position in a result list. Order comes from the registry and from what the engine could decide. Nothing is charged per patient screened.

For researchers

The evaluation is 46 criteria and one rater. That is the next problem.

Every number on this page is measured and reproducible, and every one of them is scored against a set too small to validate anything. What is missing is a clinician labelled corpus, which is the one input that cannot be generated without people who screen patients. If that is your field, there is a written protocol and a specific ask waiting.

Free, in your browser

Screen one patient against every recruiting trial.

Type a condition, answer three questions, and see what is left with the reasoning attached to every cut.

Or start with

No account · nothing stored · close the tab and it is gone