-
GIF
Pick your interests, confirm them, and watch Common Thread turn everyone’s tastes into shared plans the whole group can enjoy.
-
The browser talks to FastAPI over HTTPS, and only the server touches the database, Qloo and the optional LLM.
-
One repo, three parts: a React frontend, a FastAPI backend, and the tests and CI that verify and ship it.
-
Each person’s results are scored, then blended into a single group-fit rank that favors the whole group, not just the average.
-
Eight bounded steps take a request to a validated response, and provider errors become warnings instead of failures.
-
A host shares a plan, friends join with a code, and every confirmed interest feeds one group recommendation.
Inspiration
Choosing where to go with friends should be exciting, but different tastes can turn it into a negotiation. One person loves indie music, another prefers films and pop culture, and someone else just wants somewhere new to explore. Generic recommendations often favor what's popular rather than what could bring a particular group together.
We wanted to build something that treats those differences as an opportunity, not an obstacle. That led to Common Thread: a cultural-bridge agent that uses Qloo's taste intelligence to help people discover experiences they might enjoy together, even when their interests don't initially overlap.
What it does
Common Thread helps groups discover shared local experiences based on their cultural interests, destination, and optional budget.
Participants contribute interests spanning areas such as music, films, and television. Qloo's cultural intelligence helps resolve those interests into entities and surface culturally informed place recommendations. Common Thread then applies its own group-level ranking and evidence-aware workflow to organize the results into three kinds of discovery:
- Shared Ground: options with stronger relevance across the group.
- Cultural Bridge: experiences connected to multiple participants through available cultural evidence.
- Stretch Choice: a more exploratory option that offers a credible connection to the group's tastes.
Groups can create collaborative plans, invite others to join, and generate recommendations from their combined preferences. Ambiguous cultural entities require user confirmation rather than being silently guessed. Destination-aware budgeting also supports currencies such as INR, USD, and GBP.
The goal isn't to predict that everyone will love the same place. It's to help a group find more thoughtful starting points for deciding together.
How we built it
We built Common Thread as a full-stack application, with a React, TypeScript, and Vite frontend; a Python and FastAPI backend; and PostgreSQL persistence through SQLAlchemy. LangGraph structures the bounded recommendation workflow, while Qloo's Search and Insights APIs provide cultural entity and recommendation signals.
Qloo does the cultural discovery work; our application handles participant-aware ranking, confirmation of ambiguous interests, evidence-aware explanations, and the collaborative planning experience. This separation keeps the recommendation process grounded in retrieved information rather than relying on a general-purpose language model to invent candidate places or explanations.
We deployed the frontend and backend on Render and integrated persistent collaborative plans, API validation, currency-aware budgets, and a tested frontend-to-backend workflow.
Challenges we ran into
The main challenge was making recommendations useful for a group without flattening everyone's preferences into a single generic profile.
Cultural entities can be ambiguous, and an affinity signal is not a guarantee that someone will enjoy an experience. We addressed these challenges through explicit entity confirmation, evidence-aware result handling, and a separate group-ranking layer.
We also had to make collaborative plans persist across sessions and browsers, preserve their budget and currency, and coordinate frontend and backend releases as the application evolved.
Accomplishments that we're proud of
We turned the concept into a deployed, interactive product rather than stopping at a mockup or an isolated API call.
We're proud of the live Qloo integration, the collaborative plan lifecycle, persistent group state, the three-part discovery experience, and the safeguards around ambiguous cultural interests. We also brought the international experience into the same product, including destination-aware currency selection, without making users choose between separate regional versions.
Most importantly, Qloo has a meaningful role in the recommendation pipeline: it supplies cultural discovery signals that our application uses to build more thoughtful group recommendations.
What we learned
We learned that cultural intelligence is most valuable when it informs decisions rather than pretending to know the answer.
Affinity signals should be treated as evidence, not probabilities of enjoyment. Entity identity matters, group fairness cannot be reduced to one person's preferences, and explanations should never claim more than the available data supports.
We also learned that a useful agent needs clear boundaries: it should gather evidence, handle ambiguity, apply explicit rules, and communicate uncertainty instead of making unsupported guesses.
What's next for Common Thread
We want to evaluate Common Thread across more cities, cultural profiles, and group configurations, including comparisons against a generic LLM-only approach. We also plan to improve recommendation evidence coverage, gather feedback from real groups, and strengthen the verification of practical venue details.
Our long-term goal is to make Common Thread a go-to way for friends, families, travelers, and communities to discover experiences that help different tastes meet in the middle.
Built With
- api
- fastapi
- langgraph
- postgresql
- python
- qloo
- react
- render
- sqlalchemy
- typescript
- vite
Log in or sign up for Devpost to join the conversation.