Multi-signal compatibility scoring for dating, networking, and roommate apps. 6 weighted signals, ANN retrieval, bidirectional consent. Built in Rust — ~13ms per request.
# Get matches for a user
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.matchagent.io/matches/42?n=10"
# Response
{
"user_id": 42,
"matches": [
{
"user_id": 87,
"score": 0.847,
"signals": {
"values": 0.92,
"lifestyle": 0.81,
"personality": 0.78,
"interests": 0.85
},
"coach": {
"opener": "You both love hiking and value family...",
"style": "warm_direct"
}
}
],
"retrieval": "ann",
"latency_ms": 12
}Not just location + photos. Real compatibility.
Family, monogamy, children, faith
Activity level, habits, schedule
Big Five (OCEAN) traits
Shared hobbies and activities
Distance penalty
Dealbreaker detection
Everything you need to ship matching that works.
ANN retrieval + full scoring pipeline in milliseconds. Built in Rust with Tokio async.
Score = geometric mean of both directions. No one-sided matches.
Maximal Marginal Relevance prevents showing 5 clones. Real diversity in results.
Inactive profiles automatically deprioritized. Active users surface first.
New profiles get exploration boost. Solve the chicken-and-egg problem.
POST profiles, GET matches. JWT auth. Works with any stack in any language.
From request to ranked matches in ~13ms.
pgvector finds 200 nearest candidates by embedding cosine similarity
Single SQL query loads all candidate profiles with values, lifestyle, personality
6 weighted signals computed for each candidate pair (bidirectional)
Past interactions (likes, passes, ghosts) adjust scores up or down
Inactive users deprioritized, new users get exploration boost
Maximal Marginal Relevance ensures diversity — no 5 clones
Personalized openers and energy compatibility (introvert/extrovert 4D)
Replace ELO + location with real compatibility. Values, personality, lifestyle — not just photos.
Match co-founders, mentors, and collaborators by work style, values, and complementary skills.
Lifestyle compatibility scoring — sleep schedule, cleanliness, social habits.
The pipeline supports relationship_goal: friendship. Same signals, different context.
Pay for matches, not seats. Scale as you grow.
For MVPs and early-stage apps
For scaling dating and networking apps
For platforms with serious traffic
Stop building matching from scratch. Integrate in hours, not months.