Inspiration
Finding hackathon teammates on Discord is awkward and random. If you're a first-timer, quieter, from a smaller school, or just don't have a network, the first hello is the hardest part, and some people give up before the event even starts. We wanted AI to help people meet, not to decide for them.
What it does
Team Spark adds an opt-in AI facilitator, powered by Muse Spark, to HackMatch (our teammate-finding app):
- Explore this match: before anything is sent, you see exactly which profile fields the AI will use (only what you both already share). Muse Spark writes why you complement each other, one real thing you have in common, a friendly icebreaker in your voice, and a question that reveals whether you want to build the same kind of project.
- Team Spark session: after two people connect, each answers three prompts (the problem you care about, what you want to contribute, what makes a good teammate). Neither sees the other's answers until both are in.
- Build Brief: Muse Spark turns both answers into a project direction you both support, who it helps, roles taken from what each person said, communication and "everyone's voice" agreements, and a 30-minute first-step plan. It's a draft only the author sees; they edit every field, share it, and one click creates the team and invites the other person, who still has to accept.
AI never ranks people, never reads private messages, and never adds anyone to a team. Organizers only see aggregate counts (sessions, briefs shared, teams created).
How we built it
HackMatch (Next.js, Postgres) existed before the event. During the submission window we built Team Spark on top: a server-side Muse Spark client (Meta Model API, muse-spark-1.1) with strict JSON validation, a privacy layer that decides exactly which fields reach the model, new database tables for sessions and answers, the three UI moments, rate limiting, organizer counts, and integration and browser tests. The repo's first commit marks the pre-existing base so our contribution is clear.
Challenges we ran into
- Making "opt-in" real: the page shows the exact data list before the model is called, and sends only fields each person already shows the other.
- Getting dependable structured output from a reasoning model, so replies are parsed and validated and people see a friendly error instead of raw AI text.
- Keeping the brief a human draft: only the author sees it until they edit and share it.
- Deploying a public repo and live demo without exposing any secrets or real user data.
Accomplishments that we're proud of
- A working end-to-end flow on a live deployment: explore, answer together, generate, edit, share, create the team.
- AI that is central but never decides: no scores, no rankings, no private messages.
- A welcoming-by-design facilitator, and briefs that name who the project helps.
- Tested with real Muse Spark calls, plus 478 automated tests.
What we learned
The best use of AI for human connection is lowering the cost of the first hello while leaving every real decision to people. Showing users exactly what the AI sees builds more trust than promising privacy.
What's next for HackerMatch
Voice answers with Muse Voice Transcribe so shy teammates can talk instead of type, mentor matching for first-timers, a post-event "keep in touch" Spark, and Team Spark check-ins during the event so teams stay on track.
Built With
- better-auth
- drizzle-orm
- github
- muse-spark-via-the-meta-model-api
- next.js-16-(app-router)
- node.js
- playwright
- postgresql-on-tiger-data-(timescale-cloud)
- react-19
- tailwind-css-4
- typescript
- vercel
- zod
Log in or sign up for Devpost to join the conversation.