Inspiration

Every night on tour is a bet that the room will fill, and independent musicians and comedians place it on gut feel and old gig history. That finds the fans they already have, not the people who would love them but haven't heard of them yet. An empty room costs a small act money it doesn't have. Taste is the missing signal, and Qloo has it.

What it does

TourScout is an agent you talk to, with a map that follows. Name your act, or who you sound like, and it:

  • Reads your taste fingerprint from Qloo: the acts your fans also love, your tags, and who your audience is ("fans peak at 18–24 · 45% women").
  • Ranks cities by Fan Match (0–100), each with the evidence behind its score: "Fans of Fontaines D.C. over-index here ×1.2".
  • Finds the untapped cities: where fans of acts like yours over-index, but you aren't known yet.
  • Models a new act that Qloo doesn't know yet on up to three acts it sounds like, and tells you who it chose.
  • Plans a routed, dated tour, with travel time between shows.
  • Opens any stop: venues whose crowd matches yours (live music venues or comedy clubs), local openers, partners to promote with (record shops, bars, cafés, a brand, a podcast), and a heatmap of the neighbourhoods where your fans live.
  • Changes anything by conversation: "Skip Washington, add Montreal and Toronto" re-routes the tour and says what the change costs ("Toronto (76) and Montreal (63) score lower, but Sam Morril fans still over-index in both").
  • Works for comedians too: comedy clubs as venues, comedians as openers.
  • Keeps every conversation as a scout to pick up later, and saves or shares a tour as a read-only link after Google sign-in.

What makes it Qloo-powered

Without Qloo, an agent could only guess where an act's fans are. Every city, venue, opener and partner in TourScout is Qloo's taste data, scored by plain, tested code:

Feature Qloo
Find the act /search for artists, and for people kept only if they're comedians
Taste fingerprint /v2/insights for comparable artists (or comedians) and urn:demographics for audience skew
City ranking Heatmaps (where the act's taste concentrates in each region) blended 60/40 with destination affinity (how strongly its fans lean toward each city); I measured both on known acts before choosing the blend
The evidence Destination-affinity lifts of comparable acts' fans
Neighbourhoods urn:heatmap within 15 km of the city
Venues urn:entity:place within 12 km, kept to Qloo's live-music-venue and concert-hall categories, or comedy clubs
Openers Artists (or comedians) with the city as a location signal, below the headliner's own popularity; "local" only when their own description or tags name the city or country
Partners Record shops, bars and cafés nearby, plus a brand and a podcast, capped below household-name popularity so they suit this act

The agent chooses tools and explains their results; it never invents a city, venue or number.

How I built it

Next.js and TypeScript, MapLibre maps, Firebase Auth and Firestore, on Google Cloud Run. The agent works only through server-side tools: find_act, look_up_act (a web search for acts the taste data doesn't know), open_act, build_taste_profile, rank_cities, city_detail, city_heatmap, find_venues, find_support_acts, find_partners, plan_route, save_tour and share_tour. Scoring and routing are deterministic code with 390 unit tests, and browser tests run every journey on desktop and phone.

The Qloo client paces requests under 10 a second, keeps a private server-side cache, and trips a breaker if the key is rejected, so cached answers keep flowing. Qloo's data never leaves the server: a pipeline check fails if a Qloo response ever reaches the repository.

Challenges I ran into

  • Qloo has no hometown field, and its location signal only weights results, so a national star could come back as a "local" opener. TourScout calls an opener local only when its own description or tags name the city, and a comedian's openers must be comedians from the city or country.
  • Heatmap scores are percentiles within each region, while destination affinity compares across regions but misses some home markets. Measuring both on known acts led to the 60/40 blend.
  • Keeping Qloo's data private while still being fast: a server-side cache with no public copies, and heatmaps reduced to per-city sums or a capped set of points.

Accomplishments that I'm proud of

  • Every recommendation is explainable: each score comes with the lift that earned it.
  • It works for musicians and comedians, for famous acts and for brand-new ones.
  • It's a complete product: chat, map and full views, saved scouts, sharing, a printable tour sheet, and a phone layout.

What I learned

Taste beats demographics for touring decisions: "people like your fans live here" says far more than "people your fans' age live here". Qloo's place categories and audience lifts turn that into venues and openers a booking agent would recognise.

What's next for TourScout

Holds with venues straight from a stop, a promoter's view (which acts would fill my room?), and merging an act's own streaming and ticketing data with Qloo's taste data.

Built With

Share this project:

Updates

Submission history