Inspiration
I spent three years as a community manager, running Discord communities with thousands of members. Planning events was always the hardest part. I picked the music, the venue and the theme and hoped people would like it. Some did. Some didn't. I was guessing.
Spotify and Netflix already know what we like. Nobody has to dig for a song or a movie anymore. But when you plan something for a group, like a community meetup, a conference, a company retreat, a family gathering or a night out with friends, you are still guessing what everyone wants. Planning tools don't start from what guests actually like.
I'm now retraining as an AI engineer. When I saw this hackathon, I asked myself one question: what problem have I actually lived that Qloo's taste data could fix? Event planning was the answer.
What it does
TasteRoom plans events from what your people actually like.
- Collect tastes. The organizer shares one link in Discord or WhatsApp. Members open it on their phones and add a few things they love: an artist, a show, a brand, a podcast, a place they hang out. Autocomplete from Qloo helps them pick real things instead of staring at an empty box.
- The agent plans. An AI agent matches every taste to Qloo's taste graph, decides what the event needs and asks Qloo for music, venues in the event's city, sponsor brands and content ideas.
- You get a brief you can run. A concept, a run of show, a top-pick venue and the cheapest good option, a playlist direction, sponsor ideas for community events and a ready to post announcement.
What makes it different:
- Every pick is explained. Each recommendation shows which members' tastes pulled it in, using Qloo's explainability data.
- Something for everyone. Besides crowd-pleasers, every member gets one personal pick, found from their own tastes alone, that still fits the group.
- The AI can't make things up. The language model only writes and organizes. Any pick that didn't come from Qloo is removed before you see it.
- Compare tab. In the Lagos example, the AI alone had 0 of 8 picks with data behind them, TasteRoom had 8 of 8.
- Refine. Tell the agent "more chill music" or "more hidden gems" and it re-queries only what changed.
- Act on it. Share the plan, copy a venue poll for your members, or post the announcement straight to a Discord or slack channel using a custom webhook.
How we built it
- Backend: Python and FastAPI. One service serves the API and the React app.
- Frontend: React, Vite, TypeScript and Tailwind CSS.
- Qloo:
/searchto match tastes and cities (including locality lookup),/v2/insightsfor artists, places, brands, podcasts and TV shows,/v2/tagsfor venue types,/entitiesfor details, andfeature.explainabilityfor the "why this pick" panels. For personal picks, TasteRoom runs one extra Qloo query per member using only that member's tastes. - Agent: an OpenAI tool-calling loop with tools like
resolve_tastes,find_venues,recommendandexplain. Every step is shown in the "How it worked" tab. If the agent fails, a fixed pipeline runs the same steps so the app never breaks. - Hosting: Docker on Railway, with SQLite for invite rooms.
- Tooling: I designed the product, planned the architecture, tested the Qloo API and made every product and UX call, from the personal picks to the venue and sponsor logic. I used Claude Code as an AI coding assistant to write and refactor code faster and I reviewed and tested each phase with 300+ automated tests and browser checks.
Challenges we ran into
- Silent parameters. Qloo ignores unsupported parameters instead of returning an error, so a wrong filter just returns empty or unchanged results. I built a per-type parameter whitelist and ran live tests on every parameter before relying on it.
- Docs that disagreed. Some features appeared in one doc page but not another. I tested each one against the real API and wrote down what actually worked.
- Flat explanations. When you send the whole group's tastes at once, Qloo returns picks that suit everyone about equally, so nothing stood out for any one person. Instead of tweaking a threshold to make the numbers look better, I added one query per member. Personal picks are now genuinely made from each person's data.
- Keeping the AI honest. The model sometimes wanted to add its own favourite artists or venues. A validator now removes anything that isn't in Qloo's results.
- A hosting outage. Railway paused builds for everyone a week before the deadline, so I kept working locally and deployed once it was back.
Accomplishments that we're proud of
- Every recommendation is real, comes from Qloo, and comes with a reason.
- The "Something for everyone" feature: every member in every example has a pick made for them.
- The Compare tab, which shows clearly what Qloo adds over an AI on its own.
- It works for real places outside the usual US cities. The Lagos example matched 32 of 32 member tastes and found venues in Lagos.
- Going from community manager to shipping a full agentic app as a software engineering student.
What we learned
- Taste data changes what an AI agent can do. Without it, the model mostly repeats what members already said. With it, the agent finds new things the group will like and can explain why.
- Group taste is harder than individual taste. Averaging a group hides individuals, so you need both crowd-pleasers and personal picks.
- Test the real API early. Live tests saved me from building on assumptions that turned out wrong.
- Honest numbers beat flattering ones. Showing exactly why each pick was chosen builds more trust than a nice-looking score.
What's next for TasteRoom
- Free and paid: Free for small groups (up to 15 people) and a paid plan or credits for larger events (50 to 200+ attendees) and repeat organizers.
- Plug into ticketing: Eventbrite and Luma know who is coming, but not what those people want. An organizer will add a TasteRoom link to the ticket confirmation, so every attendee shares their tastes right after signing up. It starts as a simple link that needs no integration and moves to official integrations once people are using it. That way the event is shaped by what attendees actually like.
- Custom questions: organizers choose what members are asked, such as venue options, countries or event types.
- More channels: Posting to Telegram and WhatsApp, plus RSVP flows.
- After-event feedback: members rate the event, so the next plan gets even better.
Built With
- docker
- openai
- python
- qloo
- railway
- react
- typescript
Log in or sign up for Devpost to join the conversation.