Inspiration
It’s summer, so totally a Secret Santa season!
Just kidding. As with my all other submissions for this hackathon, I decided to search for original ideas. There's plenty of categorize, summarize, write-for-me AI tools built with LLM already, but I haven't yet seen any solutions that would tap into human matchmaking.
So while the idea of Secret Santa is fun and playful (and easy to understand and test), this is actually a solution that you can take further and use it for any sorts of matchmaking in your team, such as:
- planning brain dates and breakout rooms
- breaking people into teams for various teambuilding activities
- assigning code reviewers on rotary basis
and more.
What it does
It matches people with other people based on their shared hobbies and interests. Every teammate who partakes in Secret Santa should fill out a form and specify their hobbies, and the AI Matchmaker will iterate over every person and find the candidate whom they should give a gift.
It is also possible to exclude certain potential matches (e.g. exclude last year's Santas so that everyone makes a gift for someone new) or exclude some people entirely (e.g. if they applied but then got sick.)
How we built it
As usual, with Coda and the Best Practices. The process of drawing Santas is straightforward. There are also instructions all along the way.
Challenges we ran into
At first I wanted to let Coda AI generate the whole list at once. This would, in my mind, ensure that it can find the optimal distribution of matches, i.e. avoid the situation where the first person on the list gets the best match and the last person on the list gets whoever remains. However, no matter how I tried to tweak the prompt, it wouldn't generate the whole list reliably: it would repeat people or hallucinate teammates who's not even on the list.
So I had to rewrite the matcher's logic to go over candidates one by one. To make it more fair, the list is always shuffled for each next match, so the order of finding candidates is always random — so when you refresh the drawing, it could come up with an entirely different set of matches. Also, teammates who have the fewest potential candidates float up to the beginning of the queue.
There's one problem I still could not work around. AI keeps thinking Playing Chess, Playing Football, Playing Guitar, and Playing Video Games are basically the same (similar) hobby. I explicitly told it that it was not, but it still keeps matching people based on these time to time 🤷♂️
Accomplishments that we're proud of
The experiment worked, and the doc is actually fun and faster than I thought.
What we learned
That language model AIs can do matchmaking by similarities in natural language descriptions, and there's a place for this at one's workplace.
What's next for Secret Santa
Uhm, Tinder clone? 😁
Built With
- coda
- coda-ai
- gpt
Log in or sign up for Devpost to join the conversation.