All systems operational · v0.1.0
Understand the student. Find the pack.
A student-first matching engine for 805 NC State student organizations — structured profile, semantic match, and a reason that reads like a person wrote it.
cURL
Python
JavaScript
Swift
curl http://localhost:8000/match \ -H "Content-Type: application/json" \ -d '{ "message": "i want to build robots and meet people", "limit": 5 }' # 200 OK · ~400 ms { "profile": { "interests": ["robotics"] }, "matches": [{ "name": "BattlePack Robotics Club", "display_score": 99, "why": "You're into building robots and competing — that's the whole club." }] }
ENDPOINTS
Four routes. Nothing else.
POST
/match
Free-text message in. Structured profile, ranked clubs, scores, and human explanations out.
GET
/clubs
Browse all 805 organizations. Paginated, with case-insensitive name search.
GET
/clubs/{id}
One organization — description, categories, links, and its Get Involved signup page.
GET
/health
Live status of the database and the local model, component by component.
HOW A MATCH WORKS
Four steps, one request.
01
Message
The student says what they're into, in their own words.
02
Profile
A local model pulls out interests, goals, and how they like to work.
03
Semantic match
The profile is embedded and compared against every club vector.
04
Explanation
The top matches get a short, plain-spoken reason they might fit.