/01 · App ← All apps
Beta Next.js · Supabase · Deterministic matching

KiHire.

A standing profile for physio and occupational therapists — get found without searching. Beta in North Rhine-Westphalia.

KiHire — profile view of a physiotherapist (fictional): completed profile with criteria chips, next to three matching practices with match rings from 9/9 to 6/9.

Recruiting in healthcare is broken.

Physiotherapy practices, outpatient centres, and clinics have roles open all year round and no in-house recruiter. LinkedIn Recruiter costs €9,000 a year per seat — a volume that doesn’t justify the spend. External headhunters take 25% of annual salary. Neither option matches the reality of small providers.

On the other side is a profession that treats patients all day and has no appetite for job boards in the evening. The result: roles stay open for months, applications fall through the cracks, hires happen through personal networks — with all the bias and bottlenecks that come with that.

A standing profile that keeps working once the search is over.

KiHire reverses the direction. Instead of a job board you have to search, you fill in one card: email, postcode, specialisation, a few questions about the work you want. Then nothing happens — until a role genuinely fits. At that point you get a message and say yes or no. The card stays on file even when there’s no active job search.

Its counterpart is the employer’s role card, built from the same six criteria. What sits between them is deliberately not an AI verdict but an explainable comparison — with a human looking at it before anything is sent.

The beta runs in the physiotherapy first market, regionally along the Lower and Middle Rhine, expanding into German-speaking markets step by step. The index is still being built; contact details only become visible after both sides agree.

/ tech-decisions

Three decisions that mattered.

Matching

Deliberately without a language model

Matching is deterministic: hard filters first, then a point score across six criteria. No LLM, no embeddings. The reason: a match has to be explainable and repeatable — and nobody should be rated by a model. What the machine produces is a shortlist; the decision stays with people.

Data Layer

Supabase as the data backbone

Fully migrated from the Notion beta to Supabase — around 15,000 open positions on file, refreshed daily from a feed. Postgres, Auth and Edge Functions in one project, contact details released through signed links with opt-in on both sides.

Model

A standing profile, not a job board

A profile that stays on file even without an active job search — it keeps working long after the search is over. You only pay for a contact the candidate has released — no commission, no base fee: fair for employers filling 1–10 roles a year.

Open KiHire live → Status   Beta · feedback loops

/ other apps