Inspiration

When you move to a new city, you don't miss "good restaurants." You miss your places: the café where you work on Sundays, the bar that felt like yours. Maps and review sites rank by popularity and ratings, not by what you personally love. We wanted to start from the places you already love and work outward.

What it does

Taste Transplant takes a destination city and 3-5 places you love in your current city. It resolves each to an entity in Qloo's taste graph, retrieves taste-matched places in the destination, groups them by neighborhood, and presents where you're likely to feel at home.

How we built it

  • Qloo API: entity search to resolve places, and taste-based recommendations seeded by those entities and filtered to the destination.
  • Agent loop: Claude orchestrates tool calls and writes the final guide.
  • Grounding: every recommended place must come from a Qloo result. A validator rejects anything the model adds from its own memory.
  • Neighborhoods: places are grouped using the neighborhood labels Qloo returns, so we don't invent boundaries.
  • Neighborhood score (deterministic code, not the LLM):

$$ S_n = 0.6 \cdot \bar{a}_n + 0.4 \cdot \min!\left(\frac{m_n}{5},\, 1\right) $$

where a is the mean Qloo affinity of the matches in a neighborhood and m is its match count. This weighs taste quality (60%) against concentration of matches (40%, capped at 5 matches). All affinities come from Qloo's API.

Stack: Next.js, TypeScript, Tailwind, hosted on [Vercel], map via [Leaflet/MapLibre].

What we learned

  • Constraining an LLM to retrieved data stops hallucinated venues, but it doesn't make the explanations good. Checking validity and checking usefulness are separate problems.

Built With

Share this project:

Updates

Submission history