Inspiration

Programming a live bill looks like logistics, but underneath it is a taste problem. Anyone booking a festival, a venue, or a tour already has their headliners. The hard and expensive questions are everything around them: which support acts this exact crowd will love, which brands should sponsor it, which local spots will land in each city, and who actually shows up. Those calls get made on gut and a booker's contacts, with a lot of guessing in between.

An LLM on its own cannot answer any of it honestly. Ask it which brand a headliner's fans over-index on and you get a confident sentence you cannot check. Booking and sponsorship matching is a measured taste problem, and measuring taste across 250M+ real entities is what Qloo's Taste AI does. We built Lineup to work from the measured answer instead of the plausible one.

What it does

Give Lineup your confirmed headliners and a city. It uses Qloo's Taste AI to return the pieces that make a bill work, each with the reason attached:

  • The undercard: high-affinity support acts your crowd will love but that are not already famous, the bookings you would never guess on your own.
  • Sponsor fit: brands this specific audience over-indexes on.
  • Local partners: venues and spots in that city the crowd resonates with.
  • Audience read: the age and gender skew the bill actually pulls.
  • A programmer's brief: a short, grounded summary that ties it together.

Then you program with it:

  • Compose the bill: pin undercard picks into billing tiers (main support, undercard, openers) and watch the poster fill on a split-flap board.
  • Clash detection: scan the bill for two acts that pull the same crowd, which wastes a slot, measured by how much their taste neighbors overlap.
  • Tour routing: add more cities and the local-partner lane re-runs for each stop.
  • Sponsor pitch: draft a grounded outreach email to a brand in one click, citing the measured audience over-index and that brand's own affinity.
  • Export: copy the bill sheet to your clipboard, or print and Save-as-PDF a clean one-pager.
  • Discovery band: a popularity floor and ceiling that dials how obscure the undercard gets.

How we built it

Lineup leans on four capabilities of the Qloo Insights API, and all four carry weight:

Lane Qloo call The idea
Undercard /v2/insights · filter.type=urn:entity:artist + filter.popularity.min/max A headliner's top-affinity neighbors are themselves famous and useless as bookings. The popularity band surfaces high-affinity acts in a bookable fame range.
Attribution feature.explainability=true Each pick carries how much each headliner drove it: "38% Phoebe / 32% Tyler / 30% Fred", the proof it is a measured match.
Sponsors / Partners filter.type=urn:entity:brand and urn:entity:place (+ filter.location) Cross-domain affinity: the same audience signal projected into other domains.
Audience filter.type=urn:demographics Signed over/under-index by age and gender, averaged across the headliners.

Ranking uses Qloo's query.affinity and each entity's popularity. The undercard is sorted by a gem score that rewards acts that are on-taste but still under the radar:

$$\text{gem} = \text{affinity} \times (1 - \text{popularity})$$

Clash detection makes one /v2/insights call per act, seeded with signal.interests.entities. Two acts clash when each one is a high-affinity taste neighbor of the other. The LLM never touches the data layer: the programmer's brief and the sponsor pitch both receive the Qloo facts and are told not to invent acts, brands, venues, or numbers. Every recommendation comes from the taste graph.

Challenges we ran into

The obvious recommendation turned out to be the useless one. Qloo's single highest-affinity neighbor of a famous headliner is almost always another famous act, with popularity near 1.0, which no booker needs to be told. The popularity band plus the gem score are what turned a generic similarity list into bookings worth making.

Proving a match was harder than finding one. Turning on feature.explainability and drawing the per-headliner attribution bars is what moved Lineup from "trust us" to a breakdown you can read: 38% Phoebe, 32% Tyler, 30% Fred.

We also had to work out which lanes are actually geographic. Qloo's taste affinity is global, so re-running the undercard, sponsors, and audience for every tour city would have been fake variation dressed up as insight. Only local partners genuinely change by city, so that is the one lane that re-runs. We would rather show that honestly than invent a different bill per stop.

Keeping the LLM in its lane took a few passes too. The narration kept drifting toward invented brands and round numbers until we pinned the prompts to the supplied facts and nothing else.

The last challenge was making it feel like an instrument rather than a toy. The split-flap board, the two themes, and the scroll and motion work went through several rebuilds before the interface read like something a working booker would trust.

Accomplishments that we're proud of

It is a tool someone can actually use from end to end. A booker enters real headliners and a real city and leaves with a programmed bill, a sponsor shortlist, a drafted pitch email, and a one-pager ready to print.

Every recommendation on screen is a measured bet with its attribution shown, so there is nothing a judge or a user has to take on faith.

Clash detection catches an expensive mistake that the eye misses: two acts fighting for the same crowd.

And the design system came out polished enough to carry the product on its own.

What we learned

Qloo is strongest exactly where an LLM is weakest. It measures cross-domain taste and hands back the attribution, so you can show your work instead of asserting it.

The most useful recommendation is rarely the top-ranked one. It usually sits a few rows down the affinity list, in the band that is on-taste but not obvious.

Being honest about a tool's limits, which lanes vary by city and what the LLM is allowed to do, made the product easier to trust rather than harder.

What's next for Lineup

  • Budget and availability: overlay booking fees and routing feasibility on top of taste fit.
  • Saved bills and versioning: compare lineups side by side and track what changed.
  • Smarter tour routing: sequence stops by distance and date, not just swap partners per city.
  • Real export formats: generate offer sheets, hold-request emails, and sponsor decks straight from the bill.
  • Team workflows: shareable bills with comments so a booking team can program together.

Built With

  • gpt-oss-120b
  • groq
  • next.js
  • qloo
Share this project:

Updates

Submission history