What wasn't working.
When a child goes missing, information is fragmented across three groups: the family that lost the child, the person who found them, and the authorities coordinating a search.
Each group had photos and details, but no shared system to compare them against each other. Cases that could have been resolved in hours dragged on because nobody’s data ever met.
What we actually did.
We built a platform where any of the three parties, family, finder, or authority, could upload a photo and details for either a missing child or a found child.
The system ran facial matching across the two pools continuously in the background. Any match above a confidence threshold triggered a notification to the relevant family and authority for verification and next steps.
We kept the workflow simple on purpose: two upload paths, one matching engine, fast alerts.
Where the interesting calls were.
We chose open intake over gatekept intake. Letting bystanders upload directly, not just authorities, meant far more coverage, at the cost of needing stronger verification before acting on a match.
We treated the confidence threshold as a product decision, not just a model tuning knob, and set it deliberately conservative to avoid false hope for families. A human verification step sat before any reunion action.
We kept the product’s job narrow: match and notify. Verification and reunion logistics stayed with authorities and families, not the app.
The numbers after we shipped.
The platform unified intake across three previously disconnected user groups into one system.
Automated matching replaced manual photo comparison between family reports and found-child reports.
We shipped a working product from zero prior infrastructure, built specifically for this use case.
Things I'd carry into the next case.
Fragmented data is often the whole problem. The AI mattered less than getting three separate groups to feed into one system.
Set thresholds for the worst case, not the average case. A false positive here has a real emotional cost.
Keep the product’s job narrow. Match and notify, then step back and let humans handle what humans should handle.
