Inspiration
Booking a guest on podcasts is guesswork. Publicists skim category lists and chase download numbers, and neither says whether a show’s listeners would care about this guest. Qloo models taste, which is the signal that matters here. We wanted an agent that starts from the guest’s work and their audience’s interests, then shows its evidence instead of asking for trust.
What it does
Green Room takes a guest’s work plus up to 3 listener interests and returns a ranked shortlist of podcasts. Each result carries:
Receipt: the Qloo entity ID, query ID, source and retrieval time. Why it fits: the topics or shared themes, and which of your picks shaped the list. Audience and shared angles: shown when Qloo returns them.
If a name matches more than one Qloo entity, the run stops and asks you to pick. It never chooses an ID for you. Pitch Studio drafts a pitch that you edit. Green Room only drafts and never sends email.
On desktop, a sidebar, a ranked list with cover art and a “Proof, not promise” panel let you compare shows. On phones, a short flow takes you from a one-tap example to your saved shows and pitch.
How we built it
Qloo API: /search resolves entities, /v2/insights recommends podcasts and demographics, and /v2/analysis/compare finds shared angles. Next.js and TypeScript: one engine serves a desktop workspace and a phone layout. Request budget: each run makes at most 8 Qloo requests. If the budget runs out, the response is partial and lists what wasn’t fetched. Rate limiting: per-IP and global limits on the API routes. Typed degraded states: a live failure never falls back to sample data. Design: Fraunces and Hanken Grotesk, self-hosted, with real cover art from Qloo. Smoke test: npm run smoke:qloo checks the real API contract without printing keys or response values. Android: an Expo app built as an APK that calls the same API.
Challenges we ran into
Honest data: a result without provenance is not displayed, and missing fields stay missing. Qloo’s popularity index is never used as a filter or presented as audience size. Ambiguity: one wrong entity ID would poison the whole list, so we made the user confirm instead of guessing. Request cost: each result needs a search, recommendations, audience and compare calls, so we had to budget requests per run. Two products: one list for a publicist at a desk and one for someone deciding in 60 seconds on a phone. Accomplishments that we’re proud of Every result shows where it came from. LIVE, RECORDED and SAMPLE data have separate badges and are never mixed. The live smoke test passed 8 of 8 against the real Qloo API. The UI works on phone and desktop. Controls are at least 44px, nothing scrolls horizontally, and motion stops under prefers-reduced-motion.
What we learned
Taste data beats category lists, but only if you show how the score was built. Constraints like a request budget, typed failures and never auto-picking an ID make an agent easier to trust. Affinity is a score for the combined inputs. It is not a probability and not listener overlap, and the UI says so.
What’s next for Green Room
A desktop campaign desk with sortable tables, topic filters, side-by-side comparison, and CSV and HTML export with provenance. Qloo heatmaps for book tours and trend sparklines per podcast, if Qloo returns data for podcasts. Pitch review with JEV, with human review on any failure. It isn’t connected yet. The Expo Android APK, with a swipe deck to save or skip shows. A deployed version. Nothing is deployed yet.
Built With
- expo.io
- next.js
- node.js
- qloo-api
- react
- react-native
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.