Inspiration

Touring is a multi-million-dollar bet, yet cities are still picked from past ticket sales and gut feel. Past sales only show where an act already plays. They miss the cities that want a show and have never had one. Openers, venues, sponsors and local marketing are then planned in separate tools by separate people. A plain language model can't fix this: it has no live cultural data, so it guesses. We wanted Qloo's taste graph to be the source of truth.

What it does

Headliner is an AI tour planning agent powered by Qloo. Type any act Qloo knows (a band, a comedian, an actor, a sports club or a podcast) and a realistic 3D Earth lights up with a worldwide tour plan:

  • Worldwide scan: scores 99 cities across 7 regions by how well each city's places match the act's fans, then balances the route so it spans the globe instead of piling up in one continent.
  • Real venues: stadiums, arenas, concert halls, theatres and clubs near each city that suit the show size, ranked by fan fit. An AI check marks which ones actually host concerts.
  • Best support slot: an opener for an act, a friendly opponent for a football club's preseason tour, a guest show for a podcast, picked by audience overlap.
  • Explainable stops: popularity rank in each city, songs or specials to lead with, sponsors whose fans match, VIP food and nightlife picks, and a city ad line.
  • Route optimizer: shortest route (nearest neighbour plus 2-opt), west to east, or demand first, with dates, travel days and distances.
  • Edit and export: add a "next best market" or drop a stop and the route rebuilds. Export a PDF brief, CSV, calendar (.ics) or JSON.
  • Any artist worldwide: type-ahead search over Qloo's catalogue, plus popularity by region, a known-for list and what the fans also love.

How we built it

Next.js 14 (App Router) and TypeScript. The globe is globe.gl on three.js with a custom day/night shader, city lights and a drifting cloud layer. A server-side agent streams its work to the browser over Server-Sent Events, so the globe draws while the plan is still being built.

Qloo integration (https://hackathon.api.qloo.com, X-Api-Key, GET only):

  • /search to find any act, team or podcast and read its tags, photo and Last.fm reach.
  • /v2/insights with signal.interests.entities for related acts (openers), brands (sponsors), and movies, shows and podcasts (what fans also love).
  • /v2/insights on urn:entity:place with filter.location and a radius to score each city by the mean affinity of the places nearby.
  • Place tags (filter.tags) for restaurants, bars, nightlife and the venue categories.
  • urn:heatmap results for the heat layer on the globe.

OpenAI model (a cheap "luna" model) writes the per-city copy, picks from Qloo's lists, checks venues, and lists what the act is known for. Its output is validated against Qloo's names, and anything it adds from its own knowledge is labelled in the UI. Finished plans are cached server-side (never in the repo, as Qloo's terms require) so demo subjects load in about 3 seconds. It runs on Vercel.

Challenges

  • Qloo's "stadium" tag also returns sports training grounds, so we added a model check for concert venues and drop the ones it rejects.
  • Turning place affinity into a fair city score: we use the mean affinity of the top places nearby, scaled across all cities.
  • Speed: a fresh worldwide plan first took about 50 seconds. Running the city scan, stop building and per-city model calls in parallel brought it to about 25 to 35 seconds.
  • Keeping a WebGL globe with 8K textures smooth, and keeping the data honest: Qloo data and AI-written text are clearly separated.

Accomplishments we're proud of

It works end to end on live Qloo data for musicians, comedians, football clubs and podcasts, and every pick can be explained. The same engine plans a concert tour, a preseason club tour or a live podcast run.

What we learned

Let the data decide and the model write. Qloo picks the cities, venues, openers and sponsors; the model explains and checks, and can never invent a name.

What's next

Compare mode for two acts on one globe, live venue availability and ticketing data, a sponsor pitch generator, shareable saved plans and more cities.

Built With

Share this project:

Updates

Submission history