HACKOct 2024
Hi-Five — building a representation for introductions
A lot of social matching starts from the stuff two people share. Same music, same school, same game or movie, or the same pile of interest tags. I was more interested in whether two people could have something in common in how they think, even when what they're thinking about is different. I can know nothing about your hobby and still recognise the way you make an association.
Raihan Rafeek, Shawn Lasrado, Shashwat and I built Hi-Five at SASEhack, two weekends before Terminally Addicted. After WhiteBox I was already deep into the idea that you could fabricate useful representations of messy things. Hi-Five took that out of research material and tried it on people.
We used OCEAN as scaffolding and added our own dimensions around the responses. Then we mixed that with interests and matched people using the representation we'd built.
You didn't get someone's whole profile first. You got the conversation. The match stayed anonymous for 48 hours, and then both people could decide whether they wanted to reveal themselves and keep going.
What I wanted to test was whether I could fabricate an entirely new dimension of data and make it useful.
| Hi-Five flow |
|---|
| 5 prompt responses |
| ↓ |
| OCEAN-inspired feature construction |
| ↓ |
| BGE-en-icl text embeddings + RoBERTa emotion features |
| ↓ |
| ~24-dimensional user representation |
| ↓ |
| Vector similarity × 0.6 + Interest overlap × 0.4 |
| ↓ |
| Candidate match |
| ↓ |
| Neo4j relationship |
| ↓ |
| 48-hour anonymous conversation |
| ↓ |
| Mutual reveal / continue |

The matching system started from five assessment-style prompts and user interest tags. Prompt responses were processed using an OCEAN-inspired feature scheme, BGE-en-icl text embeddings, RoBERTa-base-go-emotions outputs, and some extra custom processing. The resulting features were combined into an approximately 24-dimensional user representation.
The match score weighted embedding similarity at 0.6 and interest overlap at 0.4 in the implementation captured by the older repository. Neo4j stored users and relationships. Matched users entered a 48-hour anonymous conversation period before a mutual reveal decision.
The representation was experimental. It wasn't a validated personality or compatibility model.12