Host family pairing — 112 families, matched in days, not weeks
A pairing app that cut the international-student host family matching process by more than half — drag-and-drop pairing, a scoring engine, and year-over-year rollover.
Architecture
The problem
Every August, my school’s international program matches dozens of incoming students with host families. The old process was a spreadsheet relay: columns of notes, tribal knowledge, and weeks of back-and-forth email. One student, one family, one wrong match — and the fall semester starts awkward.
What I built
A web app that turns the whole process into one place:
- Drag-and-drop pairing board — students on one side, families on the other; pair them visually, undo freely, see the whole roster at a glance.
- A recommender engine — every unpaired student is scored against every eligible family on a 100-point model: age proximity to in-house kids, shared interests, cultural proficiency, prior hosting experience, and capacity. Hard filters (gender mismatches, prior-year repeats) are excluded automatically. It’s a decision support system, not a black box — the human makes the final call.
- Year-scoped history — pairings are stored per school year, so next-year rollover carries continuing matches forward while preserving the full history. Nothing is ever silently overwritten.
- CSV in, CSV out — import the roster, export the final match list, and feed the rest of the onboarding pipeline.
The result
The matching process went from weeks to days — cutting turnaround by more than half for a program serving 112 families — and the pairing decisions now have reasons attached to them, not just gut feel.
Design decisions → Matching 112 students to 112 families without a spreadsheet relay — the recommender model, drag-and-drop as source of truth, and why history is sacred.
Why it matters
This is the “automate the boring, keep the human in the loop” pattern: build the tool that removes the grunt work, score the options so decisions are explainable, and let the domain expert (me, the coordinator) make the final match.