Inspiration

Most of us have sat at a family dinner where Grandpa talks Sinatra and the teenager talks Fortnite, and the two might as well be on different planets. It's not that they have nothing in common. Nobody can see the path between their worlds.

Agents have the same blind spot. Ask an LLM to connect Sinatra to Fortnite and it free-associates something that sounds plausible. We wanted an agent that doesn't guess the connection but actually finds it, by walking a real graph of what people love. Qloo's taste graph is exactly that graph, so we built a game of "six degrees" on top of it.

What it does

Six Degrees of Taste finds the cultural path between any two people.

  1. You enter two people and a few things each one loves: artists, films, shows, books or games. Live autocomplete matches each favourite to a real entity.
  2. The agent walks Qloo's taste graph and returns a stepping-stone path between them, hopping across domains. For example: Frank Sinatra → The Great Gatsby → Baby Driver → Mad Max: Fury Road → Fortnite.
  3. It highlights the meeting point, the bridge both people genuinely lean toward.
  4. Every hop is explained with data, not vibes: the taste tags the two stops share and a link-strength score.
  5. It gives you conversation starters, a shared taste DNA profile, other possible meeting points, and, if you name a city, real places to go together.
  6. You can reverse the journey or share the path with a permalink.

It's also an agentic tool. The pathfinder is exposed as an MCP server (/api/mcp) with find_taste_path, qloo_search and qloo_recommend, so Claude or any other agent can find common ground between people.

Use cases: grandparents and grandkids, first dates, new teammates, a teacher and a classroom, a therapist and a client, a brand trying to reach a new audience.

How we built it

  • The pathfinder is a meet-in-the-middle search over Qloo's graph:
    1. It anchors each favourite to a Qloo entity using /search.
    2. It maps each person's taste neighbourhood across five domains (music, film, TV, books, games) with parallel /v2/insights calls.
    3. It runs a joint-signal insights call to propose meeting points. Each candidate is scored by the weaker person's affinity, so the bridge is fair to both people, not one person's taste with a ribbon on it.
    4. It maps the bridge's own neighbourhood and picks stepping stones: entities with high affinity to both a person and the bridge, preferring hops that cross domains.
    5. If a hop is missing, the agent re-plans: it widens the search and adds domains. Every step is shown in a visible "What the agent did" log.
  • Explanations are grounded. By default they're generated straight from shared Qloo tags and affinities. An optional LLM narrator (Claude, OpenAI or Gemini) can rewrite them, but it is only allowed to mention entities and tags Qloo returned.
  • Extras: urn:tag insights for the shared taste DNA, and urn:entity:place insights with a location filter for places to meet.
  • Stack: dependency-free Node serverless functions on Vercel, a single-file frontend with no build step styled like a subway map, and a stateless MCP server over Streamable HTTP. A path takes about 25 Qloo calls, run in parallel and cached.

Challenges we ran into

  • Our Qloo API key hadn't been issued before the deadline. Rather than ship something that only shows an error, we built two modes:
    • Bring-your-own-key live mode. Anyone with a Qloo key can paste it and run the agent on the full graph. The key is used per request and never stored.
    • Clearly-labelled demo mode. A small, hand-built illustrative graph that mimics Qloo's response shapes, so the whole experience can be tried end to end. It's explicitly marked as not Qloo data.
  • Building against an API we couldn't call yet. We wrote the client to Qloo's documented response shapes, added defensive parsing, and built a mock Qloo server plus automated tests to verify the full pipeline offline.
  • Making paths that feel fair. Our first scoring favoured whichever person had the more mainstream taste. Scoring each bridge by its minimum affinity to the two people fixed that.
  • Keeping the LLM honest. It's tempting to let the model invent charming reasons for each hop. We constrained it to Qloo's own output and made template explanations from tags the default.

Accomplishments that we're proud of

  • Multi-hop, cross-domain pathfinding over a taste graph. This is something an LLM alone fundamentally can't do, which makes it a clear case of Qloo being the difference-maker.
  • Every hop is explainable with real shared tags and scores.
  • The same agent is available two ways: as a polished web app and as an MCP tool any agent can use.
  • It's TV-ready: name two people and two favourites each, and the path draws itself live, station by station.
  • Shipped end to end in a single night: a public repo, MIT license, a hosted app and tests.

What we learned

  • Cultural intelligence is most powerful between people, not just for one person. Recommendations tell you what you might like; paths tell you how to reach someone else.
  • Grounding beats eloquence. A short explanation backed by real shared tags is more convincing than a beautiful paragraph an LLM made up.
  • Exposing a capability through MCP multiplies its reach: one pathfinder, usable by every agent.
  • Design for failure from the start. Demo mode and bring-your-own-key turned a blocker into a feature.

What's next for six-degrees-of-taste

  • Group paths: find the bridge for a whole family, team or friend group, not just two people.
  • Taste journeys: a guided week-by-week "stretch" plan that gradually takes you from your taste toward someone else's.
  • Plug into everyday agents: gift ideas, date planning, onboarding new teammates and classroom icebreakers, all through the MCP tool.
  • Real-world plans: tie each path to dining, events and venues with Qloo's location-aware insights.
  • Brand bridges: help a brand find the authentic cultural path from its current audience to a new one.

Built With

Share this project:

Updates

Submission history