Inspiration
In the arts, taste is knowing what's good and what isn't, and being able to say why. It's built on references: you understand what a thing is and where it came from, and that tells you why it moves you.
Recommendation feeds work against that. They're built to keep you on the platform, so they feed you more of what you already like. With AI-generated content flooding the internet, people's preferences are collapsing into the same few loops. Your taste ends up belonging to the algorithm, not to you.
We wanted the opposite of a feed: something that helps you build a point of view instead of handing you one. Qloo's taste graph made that possible because it knows why things connect, not just that they do.
What it does
Name 3 to 10 things you love across at least two fields (music, film, TV, books, food and places, fashion), each with a one-line “why.” Atelier draws your taste as an attribute chart, with each axis built from Qloo tags you can inspect.
Then it looks past the edge, suggesting picks from other fields that are unfamiliar but connected, at low, medium, or high stretch. Describing stretch is the distance of the suggestion from the initial profile
Every pick shows its path back to you. The explanation is written from that path alone, and each step is labeled Sourced or Inferred.
You respond in your own words: not me, not right now, worth trying, or worth exploring. Picks you like can join your inputs, and your edges move.
The agent has no taste of its own. There are no scores, rankings, or audience metrics, and no account is needed.
How we built it
Stack: Next.js and TypeScript, Supabase (auth, Postgres with row-level security), the Anthropic API for the agent, and plain SVG for the chart. Qloo: /search resolves your inputs. /v2/tags with semantic search turns your “why” into tags. Taste analysis builds the axes. /v2/insights runs once per field with weighted seeds, a popularity cap, exclusions, and explainability, which shows which input drove each result and anchors the path.
Code computes, the model chooses and explains: Code scores reach and connection, enforces a connection floor that never drops, and builds every path. The model picks a theme per field, decides whether to re-query (at most twice), and writes the explanations. Code checks each explanation before it’s shown.
Evals first: 13 code scorers and 6 LLM judges. Any judge verdict that quotes text not on the card is discarded.
Challenges we ran into
Silent invalid params. Qloo ignores parameters that don’t apply to an entity type, and the results still look fine. We built a per-type registry from the official guide and an API spike, and the client refuses anything not on it.
Defining “edge.” Far-out picks are easy and so are safe ones. The hard part was making stretch picks less popular than match picks while still holding a connection floor, so they feel plausible and not random. Cross-domain tags. Making tags comparable across music, books, and fashion so a path could actually cross fields.
Explanations that teach. Avoiding “you’ll like this because it’s similar” meant grounding every explanation in the returned data.
Every profile looked the same. Inputs from different fields returned near-identical generic tags. Scoping taste analysis to each input’s entity types fixed it, at the cost of fewer bridging tags for food and places and fashion. We show those fields thin instead of padding them.
Scope. Additional ideas such as social features, taste history, linking to suggestions and more domains than the API could support.
Accomplishments that we're proud of
A taste chart and an adventurousness dial that work as one experience, not a list of recommendations.
Every pick ships with an inspectable path, and the agent shows its reasoning.
An eval suite that tests the agent’s behavior (dial, re-query, groundedness)
A brand built around the idea
What we learned
Articulation is the core skill in taste. Asking “why” at onboarding changes the quality of everything downstream.
A taste graph is strongest as a map of connections, and the product value comes from showing the user those connections instead of hiding them behind a ranked list.
Test checks on real output early. Rules that pass on hand-written examples can fail on actual model text.
What's next for Atelier
Reference layer: surface lineage and symbolic references in creative work, sourced and labeled as readings, never merged with inferred links.
Social layer: find people by axis edges and people slightly ahead of you, with no audience metrics, scores, or feedback on anyone’s taste. Overlaying two charts would be the only interaction.
Taste over time: how your edges move as you explore, once picks are tried and reflected on.
More fields (architecture, cars, theater) wherever Qloo coverage supports them.
Built With
- ai-agents
- claude-api
- next.js
- postgresql
- qloo-api
- supabase
- typescript
- vercel
- vitest
- wikidata