Inspiration
Two people want a Friday movie night but their shelves clash. Averaging tastes invents fake compromises. We wanted honest overlap from Qloo's cultural graph—or an honest empty set.
What it does
Taste Mediator is a focused Friday movie-night demo for two people with different shelves. The live demo uses locked presets (Person A: horror catalog picks; Person B: romance catalog picks)—not free-text arbitrary titles. The app resolves those titles on the Qloo hackathon API (GET /search), then asks for movie insights twice—once per person (GET /v2/insights). Optional taste tags may be requested; they are not required every run. A title reaches the Safe zone only when both pulls return the same entityId. The two pulls are never averaged. If there is no overlap, the page says so and stops; the Safe zone does not insert a fallback film to fill the gap.
How we built it
Next.js + TypeScript on Vercel. Core path: Qloo Hackathon API search, then two independent /v2/insights pulls, then deterministic entityId overlap. Optional Vercel AI SDK agent (via OpenRouter) can narrate zones; if the key is missing or the model call fails, the demo falls back to the fixed Qloo pipeline—Safe-zone rules do not change.
Challenges we ran into
Keeping disagreement honest (no averaging). Separating optional agent narration from code-computed overlap so a failed model call cannot invent a Safe-zone title.
Accomplishments that we're proud of
Evidence-based Safe zone; honest empty states; core mediate works without the optional agent path.
Built With
- api
- hackathon
- next.js
- qloo
- then-deterministic-`entityid`-overlap.-optional-vercel-ai-sdk-agent-(via-openrouter)-can-narrate-zones;-if-the-key-is-missing-or-the-model-call-fails
- then-two-independent-`/v2/insights`-pulls
- typescript
Log in or sign up for Devpost to join the conversation.