Tagline: Route an artist where their audience's taste actually is — and see exactly what taste data changed.

The problem

Small booking agencies and self-managed artists route tours by gut feel and big-market defaults (New York, LA, Chicago…). A wrong city costs a van, a night and a room you can't fill.

What it does

  1. Type an artist. The agent finds the artist in Qloo, ranks destinations by audience affinity, and picks taste-matched venues near each strong market.
  2. It selects and orders N stops into a drivable route; any drive over 650 km is split through a marked "drive-splitting stop" (or reported if none fits).
  3. Next to it, the same planner runs without taste data (market size only). You see the cities taste added and dropped, average affinity of both plans, and how much of the route changed.
  4. Don't like a stop? Drop it or pin a city ("keep Austin") and the agent re-plans around your call.
  5. For every stop it drafts a short promoter email and suggests local acts whose fans overlap (possible openers).
  6. It drafts a routing summary that cites only the evidence it has (affinity, rank, venue affinity) — and says plainly that affinity is not a ticket-sales forecast.

Why Qloo, not a streaming dashboard

Streaming dashboards show where people already play the track. Qloo's taste graph shows where people who share this audience's wider taste — music, film, dining, places — are concentrated, including cities the artist hasn't reached.

How it's Qloo-powered

/search (artist entity) → /v2/insights (filter.type=urn:entity:destination, signal.interests.entities=<artist entity id>) → /v2/insights (filter.type=urn:entity:place, filter.location near each stop) → /v2/insights (filter.type=urn:entity:artist, signal.location, for openers). ~2 calls per stop, cached per request; failures surface as errors, never as invented data. Remove Qloo and the plan collapses to the generic big-market route — that difference is the product.

Agentic surface

MCP tool plan_tour (artist, start, stops, max drive, must_include, exclude) — any agent can route a tour and re-plan on follow-up instructions.

Built with

TypeScript, Node, clean architecture (pure domain planner, ports & adapters), 110 automated tests, server-side key handling (key never reaches the browser).

Status

Live. The hosted demo runs on the real Qloo hackathon API (/api/meta reports dataMode: live). Code is public under the MIT license. The "without taste data" baseline uses US Census metro populations. The optional planner chat (Gemini, server-side key) calls the same plan_tour tool. Affinity is audience taste overlap, not a ticket-sales forecast.

Built With

Share this project:

Updates

Submission history