KiHire.
A standing profile for physio and occupational therapists — get found without searching. Beta in North Rhine-Westphalia.
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.
/ other apps
Cookmark
Recipes from Instagram reels, turned into structured cards — in one click.
Watchlist
Streaming PWA with a filter stack: what we watch tonight, without 20 minutes of scrolling.
GOLAZO
Tournament platform for my own youth team at the Gothia Cup — skills, duels, World-Cup predictions. Proven in tournament use with 16 players.