Inspiration

Clinx started with a problem I lived. I'm a co-founder of Réhabital, a multidisciplinary health and wellness clinic in Montréal. We had talented practitioners and patients who loved us, and we still could not answer simple questions:

  • Why do patients choose the clinic down the street?
  • Who are our real competitors, discipline by discipline?
  • What should we fix first, with the little time and budget we have?

The answers were public, scattered across hundreds of Google reviews, competitors' websites and listings. Reading them all takes days, and a generic summary from a chatbot is not something you can trust with business decisions. Large groups pay consultants for this. Independent clinics guess.

I wanted the tool I wished we had: one that reads everything, shows its evidence, and ends with a short, ordered plan.

What it does

An owner enters their clinic. Clinx then:

  1. Finds the clinics that really compete for the same patients: up to eight per discipline, searched at 2, 5 and 15 km plus a web search for clinics the map misses, ranked by how directly they compete. The owner confirms them on a map.
  2. Reads their patient reviews, websites and social activity, and checks the owner's own website and Google profile against the same tests run on competitors' sites.
  3. Delivers a report and an action plan: where you stand, what patients praise and complain about, what rivals offer that you don't, and the next moves ranked by impact and effort, each with a first step.
  4. Works discipline by discipline. A clinic offering physiotherapy, massage and aesthetics is compared with the right rivals for each.
  5. Ask Clinx, a built-in assistant, answers questions about your own reports. It can search every review collected for you and your competitors ("what do patients say about parking?"), quotes the reviews it relies on, and offers Open in Clinx links that take you straight to the finding, action or competitor it mentions.
  6. Remembers each clinic, so the next report shows what changed, and lets owners invite their team.

It is live at clinx.app, works on phones, tablets and desktops, and the landing page is in five languages.

How we built it

The evidence rule, enforced in code. The model proposes; code decides what reaches the report.

  • A finding is kept only if every quote matches a stored review word for word and it rests on at least two different reviews.
  • Anything that fails is set aside and counted in the report, so owners see what we could not prove.
  • Every action must cite a kept finding or a measured fact (a website check, a rival's site, social activity). References the model invents are removed.

Actions are ranked by a simple, visible score. Impact scores 3, 2 or 1; low effort scores 3, medium 2, high 1:

$$\text{priority} = \text{impact} + \text{ease}, \qquad \text{impact},\ \text{ease} \in {1,2,3}$$

The pipeline.

  • A quick scan reads the listing and website (a free first look).
  • Discovery finds and ranks competitors.
  • The deep analysis runs independent steps in parallel: reviews, competitor websites, search-assistant questions and connected data, then site checks, social activity and review mining.
  • Then one agent per discipline mines reviews through a discipline-specific guide, and a report agent writes the plan.
  • The run page shows an honest time estimate based on recent runs, and the owner can leave; we email when it's ready.

Stack.

  • Next.js and Tailwind on Vercel.
  • A Node/Hono API in Docker on Render.
  • Shared Zod schemas between both.
  • Claude through the Anthropic SDK, with structured output, tool use and prompt caching:
    • Sonnet 5.5 for review mining, the plan and chat;
    • Haiku 5.5 for reading websites.
  • Data from Google Places, review collection, PageSpeed and Resend email.
  • About 880 automated tests, run on every push in GitHub Actions. Every external service and the model are faked in tests, so no test spends credits.

How we use our partners

  • SurrealDB is Clinx's memory.
    • It stores every clinic, analysis and report.
    • It caches reviews, websites and social profiles.
    • It keeps the chat history per clinic.
    • It holds a BM25 full-text index over every patient review (accents ignored, which matters for Québec), which the assistant searches as a tool.
    • Run timing and scan reuse are queries over the same data.
  • Clerk handles sign-in and teams. A clinic group is a Clerk organization, and roles are enforced in the API: owners and admins run analyses, front-desk members read reports and tick actions done.

Security & ethics

  • Reviewer names and photos are removed when reviews are collected and never stored. Reports quote only short passages, as evidence.
  • Each user and team sees only their own clinics, checked on every API request.
  • Connected Google tokens are encrypted at rest. No card numbers are ever stored.
  • Reports are business guidance, never clinical advice.
  • Plain-language Privacy Policy and Terms.

Challenges we ran into

  • Stopping the model from inventing evidence. Prompts alone weren't enough, so we moved the evidence rule into code and made rejected findings visible instead of hiding them.
  • Finding the right competitors. Distance isn't competition. A multi-discipline clinic needs different rivals for each discipline, and the owner has to confirm them.
  • Making a long analysis feel short. A full run takes minutes. We parallelized independent steps, show a real time estimate, and let owners leave the page.
  • Designing for a busy clinic owner, not an analyst. We cut dashboards down to one question: how am I doing, and what do I do next? Everything else is one click away.

Accomplishments that we're proud of

  • Every claim in a report traces back to a real patient review or a measured fact.
  • A complete, deployed product on a real domain, tested on real clinics, including our own.
  • It works across 50 disciplines, from dentistry and physiotherapy to aesthetics.
  • An assistant that doesn't just answer, but shows its sources and takes you to the right place in the app.

What we learned

  • Trust comes from showing the evidence, and what was set aside, not from sounding confident.
  • The best competitor list is one the owner confirms.
  • Context matters. A recommendation that's right for one clinic can be wrong for another, so every action must say why.
  • Shipping real software in a week means tests and CI from day one. They caught several bugs before any user did.

What's next for Clinx

  • Scheduled reports every few weeks that track what changed and whether actions worked.
  • Owner-taught facts kept in the clinic's memory.
  • Official data sources for every review and listing, plus deeper Google Business Profile integration.
  • A pilot with 5–10 independent clinics in Montréal and Toronto, then partnerships with clinic software platforms.

Clinx: know why patients choose the clinic down the street, and what to do about it.

Built With

Share this project:

Updates

Submission history