Inspiration

Small businesses plan co-marketing and podcast buys on a hunch: "people who like us probably like X." We tested the hunch. A capable model with no tools, asked which brands and podcasts five well-known brands' audiences love, shared at most 2 of 5 names with Qloo's audience data on every list — and 0 of 5 on 7 of 10 lists. The model answers with stereotypes (The Daily, Costco, Whole Foods for everyone); Qloo answers with the audience. We built the tool a bakery owner or a creator would actually use on that data.

What it does

Type a brand, a venue (with its city), a creator or a podcast. In about 30 seconds Overlap returns:

  • Partners to pitch — complementary brands the audience also loves, each with a drafted outreach email that cites the shared-audience evidence.
  • Neighbours to team up with — for venues, nearby places the same people love, each with a cross-promotion idea.
  • Podcasts to sponsor — screened for brand safety.
  • A playlist for the shop floor or the stream, and content ideas built on films, artists and brands the audience already loves.
  • AI guess vs Qloo data — one tab over, the same model answers the same questions without data, with an overlap score. For Katz's Delicatessen the model guesses Frank Sinatra, Billy Joel and The Godfather; Qloo says Floating Points, Nicolas Jaar and dating podcasts.
  • Held back — explicit, partisan or extremist results are kept out of the picks and listed with the reason, never silently dropped.

The same tools are an MCP server, so any agent can call find_entity, audience_affinities or the whole audience_action_plan.

How we built it

  • Research agent (Gemini 3.5 Flash, Vercel AI SDK tool loop): works out what the business is, resolves it with Qloo /search (always typed — brand, place, person, podcast), commits seeds, then calls /v2/insights for podcasts, brands, artists and films, plus places with filter.location.query for venues. It recovers from "no usable signal" by trying the next candidate.
  • Ledger + provenance check: every Qloo result is stored by id. The writer (Gemini 3.1 Pro, structured output) sees only ledger items and must cite ids; code drops anything unknown, held, or of the wrong kind before the plan reaches the page.
  • Brand-safety screen: rules (explicit content ratings, bleeped titles) plus a model pass that holds sexual, partisan, extremist and misinformation content and flags alcohol, cannabis, gambling and tobacco only when it is the main product.
  • Control: the guess runs on the same writer model so the comparison is fair.
  • Explainability: with a business plus up to two references as seeds, feature.explainability gives each result's per-seed contribution.
  • Public demo engineering: a disk cache keyed by request URL and a 250 ms rate gate fit the 5 req/s · 10k/month key; per-visitor and daily caps keep live runs affordable; five example runs are saved results. The app runs in a read-only, non-root container with no route to private networks, behind a strict CSP.

Challenges

  • Our first idea (taste → gift-destination) failed our own blind test 0/5: Qloo's destination affinity reflects audience travel, not places tied to a work. We dropped it and re-tested ten ideas against the API before choosing this one.
  • Untyped search resolves 3 of 12 names to the wrong entity kind; chains such as Blue Bottle (as a place) return no usable signal. The agent always types its searches and retries with another candidate.
  • Demographic skews contradicted public profiles for 2 of 8 brands we checked, so we left them out of the UI rather than explain them away.

Accomplishments

  • Every name in the plan is traceable to a Qloo result, enforced in code, not in the prompt.
  • The "AI guess" tab turns the hackathon's own question — would this work without Qloo? — into something a user can see on every run.
  • Local venues get genuinely local partners (Tartine Bakery → Souvla, Elephant Sushi and Gamine in San Francisco).

What we learned

Qloo is strongest exactly where general models are weakest: the specific, slightly surprising neighbours of a mid-size or local audience. For the most famous brands the model already knows a lot (Glossier: 3 of 8 artists overlap), and we show that honestly.

What's next

Saved audiences with weekly diffs ("your audience started loving …"), outreach tracking, and a city-level view for multi-location businesses.

Built With

  • cloudflare
  • docker
  • gemini-3.1-pro
  • gemini-3.5-flash
  • google-gemini
  • model-context-protocol
  • node.js
  • qloo-insights-api
  • vercel-ai-sdk
Share this project:

Updates

Submission history