Early-stage healthcare product. AI-generated output is not medical advice and is not clinically reviewed. Not medical advice Read the full disclaimer Details
For clinics

Your contact form already asks. It just does not ask enough.

A patient writes one line, and someone on your team has to phone them back to find out when it started, how bad it is, and whether anything else came with it. Continuum asks those questions for you, in the patient's own language, before they press send.

What arrives

The same enquiry, answered

The summary is appended to the message field the patient was already filling in, and the machine-readable version goes into a hidden field you choose.

New enquiry what your form receives
Lower back pain since Saturday, worse on standing.

- Lower back pain · lower back · since Saturday · 6/10 · daily
- Stiffness in the morning · lower back · about 30 minutes
- Pain radiating into the left leg · left leg · intermittent

Confirmed when asked about: numbness in the leg

This is a summary of what the patient described.
It is not a diagnosis or medical advice.

An illustration, not a real patient. Wording and length vary with what the patient tells us.

Install

Two lines, inside the form you already have

No account, no npm, no backend work. We give you a key and the list of domains it may run on.

<input type="hidden" name="symptom_summary" id="symptom_summary">
<script src="https://continuumcare.app/embed.js"
        data-key="pk_live_..."
        data-target="#symptom_summary"
        data-summary-target="#message"
        data-locale="en"></script>
data-target
A hidden input that receives the structured summary as JSON. Required.
data-summary-target
Optional. A textarea that receives the readable version, appended after whatever the patient wrote.
data-mount
Optional CSS selector for where the widget should appear. Without it, it appears where the script tag sits.
data-locale
Optional. One of: de, en, fr, es, fa, ar, sv, ru. Defaults to the language on your account. The interview also follows the patient's own words once they start typing.
What we keep

Nothing the patient told us

1

Nothing is written down

The interview lives in the patient's browser and is sent back to us with each question. We write none of it down: no answers, no summary, no free text. Reloading the page loses it, which is the intended trade.

2

A counter, and that is all

We count sessions per day so we can spot abuse and pay the model bill. That counter holds a date and a number, and nothing about the visitor.

3

Your domains only

The widget renders only on the domains you list. It runs in an isolated frame, sets no cookie, and cannot read your page.

4

It never diagnoses

The interview maps symptoms onto body systems. It does not name a cause, suggest a diagnosis, or recommend treatment, and the summary says so wherever it is stored.

Optional webhook

If you would rather receive it in your own system

Give us an https endpoint and each finished summary is POSTed to it, signed with your secret so you can prove it came from us.

POST /your-endpoint
X-Continuum-Event: symptom_summary.completed
X-Continuum-Signature: t=1788220000,v1=<hmac-sha256 hex>

{
  "event": "symptom_summary.completed",
  "partner": "your-slug",
  "created_at": "2026-09-01T09:15:00+00:00",
  "data": {
    "summary": "...",
    "symptoms": [{ "symptom": "...", "body_area": "...", "severity": 6, "started": "..." }],
    "organ_systems": ["musculoskeletal"],
    "red_flags": [],
    "disclaimer": "..."
  }
}

To verify: take the t value, join it to the raw request body with a dot, and compare an HMAC-SHA256 of that string, keyed with your secret, against v1. Reject anything older than five minutes.

Tell us your domain, we will send a key

The widget is free while it is new, and we would rather add clinics one at a time and hear what breaks.