-
Each stop: opener, real comedy clubs, bars, sponsor brands, podcasts, and Qloo-grounded copy vs generic AI copy
-
One opener shortlist ranked by Qloo against the headliner's audience in every city
-
Yuna: Southeast Asia over Australia, straight from the fan-affinity numbers
-
Nate Bargatze: Qloo's heatmap routes him through the heartland; New York (55) and LA (61) are cut
-
A live run: every Qloo call the agent makes, streamed as it plans Phoebe Bridgers' UK & Ireland tour
Inspiration
Arena-level artists have routing teams, talent buyers and marketers. The long tail of live entertainment doesn't: comedians doing 30 theatres a year, artists with a few hundred thousand listeners, podcasts taking the show on the road. They route by gut feel and streaming stats, book openers they happen to know, and run the same ad in every city. A wrong city costs a venue deposit and a half-empty room.
The core question is "where do this act's fans over-index, and what else do they love there?" That isn't in any LLM's training data. It's what Qloo measures.
What it does
Type a headliner and a region. TourSmith's agent:
- Resolves the act in Qloo. Many performers exist as both a
personand anartist; the agent picks the right entry, and switches if that entry has no data. - Finds the fans. It pulls one Qloo heatmap across the whole region (7,783 grid cells for the US) and scores every candidate city from the same grid, so the scores are comparable.
- Routes the tour. It keeps the strongest markets and cuts the rest, with a reason for each that cites the numbers.
- Packages every stop with five location-aware Qloo recommendations: an opener pool, comedy clubs or live music venues, bars and restaurants for a pre-show, sponsor-fit brands, and podcasts for local PR.
- Chooses the opener. It shortlists acts less popular than the headliner, ranks the same shortlist against the headliner's audience in every city, and shows the tastes both fan bases share.
- Sells each night with city copy that may only name things Qloo returned for that city, shown next to the generic copy an LLM writes without data.
- Publishes a shareable tour page with an "Ask your tour manager" chat, where a tool-using agent answers follow-ups by calling Qloo live.
Every Qloo call shows up in the "What the agent is doing" log with the exact request it sent.
Example: Nate Bargatze across the US. A chatbot says New York, LA, Chicago. Qloo says his fans over-index most around Nashville (100), Salt Lake City (99), Denver (99), Austin (98) and Kansas City (98); New York (55) and LA (61) come last despite the most raw activity. TourSmith routes Phoenix → Salt Lake City → Denver → Kansas City → Nashville → Austin. It names real rooms (Comedy Works and Denver Improv in Denver; Esther's Follies and The Velveeta Room in Austin) and picks Sam Morril as the opener, ranked first in all six cities. For Phoebe Bridgers in the UK it picks Lucy Dacus, her bandmate in boygenius.
How we built it
- Qloo through the official
@qloo/qloo-harness. The app uses the harness's nine validated workflows (describe, find tags, recommend, rank, where popular, compare audiences, entity tags, demographics, trends). They're passed to the chat agent as tools, and the planning run uses seven of them. On Vercel the workflows run in-process; locally or in Docker the same workflows run through theqloo mcpstdio server (QLOO_TRANSPORT=mcp). - The region heatmap goes straight to the Insights API (
urn:heatmapwith a WKT boundary). That returns the full grid, which makes cross-city scores comparable. - Gemini for entity disambiguation, route decisions, copy and the chat agent, with automatic fallback across Gemini models when one is overloaded. Claude or any OpenAI-compatible model also works.
- Express streaming agent events as NDJSON, a vanilla JS + Leaflet front end, deployed on Vercel.
- A cache in front of Qloo, so the pre-planned demo tours load instantly and spend no quota.
What makes it Qloo-powered
Remove Qloo and every decision becomes a guess: which cities, which opener, which rooms, which brands. TourSmith uses:
- location as a signal (
signal_location), to bias toward the local audience; - location as a filter (
filter_location), for places that physically exist in the city; - Qloo category tags (
comedy_club,live_music_venue,bar,restaurant), to find the right kind of place; - popularity, to keep openers below the headliner's draw;
- rank positions rather than raw scores, because scores from separate calls aren't comparable.
Challenges we ran into
- Ambiguous names. Nate Bargatze is both a
personand anartistin Qloo, and only thepersonentry has heatmap data. The agent now detects that and switches entries. - City scores weren't comparable. Heatmap affinity is ranked within each query, so per-city heatmaps can't be compared; a single region-wide grid fixed it.
- Noisy fan-base tags. Fan-base tags include venue attributes ("Salad", "Three Star"), so we filter tag types to taste concepts.
- Keeping the LLM honest. The copy step whitelists references to Qloo's results for that city. The route step only lets the model swap a city within 3 points of the cut-off unless the user names it.
- Serverless hosting.
qloo mcpis a stdio process that serverless functions can't host, so the app also runs the same harness workflows in-process.
Accomplishments that we're proud of
The data finds things a chatbot can't: heartland markets over coastal ones for a clean comic, Southeast Asia over Australia for a Malaysian singer, real comedy clubs and bars by name, and openers that make sense (Sam Morril, Lucy Dacus, Zee Avi).
What we learned
Qloo's affinity values are relative to the query, so how you frame a question (one region-wide grid vs. one call per city) decides whether the answer is comparable. Grounding the LLM in Qloo's results, and not letting it overrule them, is what makes the output trustworthy.
What's next
Calendar-aware routing with venue capacities, and a two-sided marketplace: performers plan for free, while promoters, venues and brands pay to be matched with the audiences Qloo says they fit.
Try it
- Live demo: https://toursmith.vercel.app (no login; three tours are pre-planned on the home page, and you can plan a new one)
- Code: https://github.com/ShermaineYap/Qloo-Agentic-Hack (MIT)
Limits we're upfront about
- Qloo results are aggregate audience affinities, not facts about individuals.
- Candidate cities come from a curated list of touring markets per region.
- Qloo has no weekly trend data for people, so comedians show no trend line.
Built With
- express.js
- gemini
- javascript
- leaflet.js
- model-context-protocol
- node.js
- openstreetmap
- qloo
- vercel