Inspiration

A campus show, a basement gig or a community night needs a few hundred dollars, a keg or a coffee sponsor. Nobody on the team has done sponsorship, and there is no sponsor history to copy, so they cold-email big brands that never answer.

Event guides already say where the yes is: "Local and niche companies are often more eager to support emerging events" (Ticket Fairy, "Fewer Sponsors, Deeper Partnerships: Sponsorship Strategies for Year-One Festivals"). What organizers lack is knowing which brands and local places fit their crowd, and a reason to give them.

The long tail is huge: "In 2024, Eventbrite creators hosted nearly 5 million free and paid events, issuing 270 million tickets" (Eventbrite Form 10-K for 2024). That is about 55 tickets per event on average. Big tours have sponsorship teams; events this size do not.

The insight: your event isn't in Qloo, but the music on your line-up is. Qloo knows what fans of that music like, across brands and local places, so the music can stand in for the crowd.

What it does

Live app (no sign-up): https://echolocate-topaz.vercel.app/ Video (58 s): https://youtu.be/S9hfe2OjMYE Code (MIT): https://github.com/yasinfitrah24-tech/echolocate

Try it first (no sign-up): Try an example runs a 150-person 21+ bar gig in Athens, GA with local bands Qloo doesn't know, so it searches by genre. Local sponsors come first on a map; national brands follow. A second example, an 800-person campus show in Austin with Phoebe Bridgers, boygenius and Clairo, shows reasons that name the artists. Both answer instantly from saved real Qloo data; any other search runs live.

The organizer enters the kind of music (or artists), the city, who mostly comes, who is allowed in (all ages, 18+ or 21+) and the expected crowd. Echolocate then:

  • finds local cafes, clothing stores and (for 21+) bars within a radius set by the city's size, shows them on a map, and puts them first for crowds of 200 or fewer;
  • ranks brands per sponsor category for that crowd, each with a Sponsor Fit Score (our own relative score, never above 95) and the reason from Qloo's data, such as "#1 of 46 brands Qloo matched to this crowd, across all categories. Leans toward Clairo fans";
  • drafts a pitch email for any brand or place;
  • makes a one-page sponsor PDF: tiers, what the sponsor gets, how they measure results, and only the details the organizer marked as confirmed.

Nothing is sent from the site: the organizer edits the [brackets] and sends it.

Today vs with Echolocate

Today With Echolocate
Who to ask Guesses, big brands that don't answer Brands and local places fans of this music like, ranked
Why them No reason to give Qloo's reason for each, in one line
The ask A blank email A draft pitch built from those facts
The sheet None A one-page PDF, ready to print
Time Searching by hand A few seconds from search to list

What only works because of Qloo

Without Qloo there is no list. Which brands, in what order, why, and which cafes, clothing stores and bars within 10 km of Athens are liked by fans of indie rock: all of it comes from Qloo's taste data for this crowd, today, not from what a model remembers. A campus show or a basement gig has no sponsor history to remember. The language model only writes the email, and a code check throws its draft away if it adds a number or a fit verdict that Qloo or the organizer did not give it.

How we built it

  • /search for artists (exact match only), /v2/tags for typed genres.
  • /v2/insights with filter.type=urn:entity:brand: one list across all categories plus one per sponsor category (filter.tags: drinks, financial services, and beer and spirits for 21+ only).
  • Signals: signal.interests.entities (artists), signal.interests.tags (genre), signal.location.query (city), signal.demographics.age.
  • feature.explainability=true to say which artist drives a match.
  • filter.type=urn:entity:place with filter.location=POINT(lon lat) and filter.location.radius for local places. We tested that the radius works with a point and is ignored with a city name.
  • Bounded retries on 429/503, at most 3 calls at once, saved examples that cost no calls, live search open to judges.
  • Next.js 16 on Vercel, Leaflet + OpenStreetMap, @react-pdf/renderer for the PDF in the browser, a language model through OpenRouter for the email.

One real request-to-result walk-through is in the README: https://github.com/yasinfitrah24-tech/echolocate

Why it is an agent

Given one goal, "find sponsors for this event", it:

  • resolves names into Qloo IDs and asks the organizer when a match is not exact ("Wishy" returns "Wish You Were Here");
  • adapts: no taste data for the city, so it asks again for the line-up alone; fewer than 6 places nearby, so it widens the radius once; a small crowd, so local businesses go first;
  • applies fixed rules on the server: alcohol brands and bars only for 21+; advocacy groups and institutions removed. In the Austin example these rules dropped 5 of the brands Qloo returned (3 advocacy groups, 1 institution, 1 alcohol brand for an all-ages show); in the Athens one, 4 (2 advocacy groups, 2 institutions);
  • checks the language model: the AI only writes the email body from a fixed list of facts, and a code check throws the draft away for a template if it adds a number, calls a local place a "venue" or claims a "perfect fit";
  • shows its work: "How the agent got this" lists every decision it took for the search and every Qloo request with its parameters.

Principle: Qloo picks who to ask and why; the AI only writes; a fixed check decides if the AI's draft is used; the organizer sends.

Data handling

Only artist names, a genre, the city and an age group go to Qloo. Qloo's audience segments are never used. Keys stay on the server.

Challenges we ran into

  • Qloo does not reject parameters it does not use. In our probes a search radius was silently ignored when the location was a city name, so we log every call with its parameters and result count.
  • Genre signals put the top brands at an affinity of 0.97 to 1.00, so a fixed scale gave every genre search a wall of 95s. The score is now relative within one search.
  • Many small-town places come back with Qloo's default affinity. We list them as "Nearby, little taste data", without a score, and their pitch is written around being nearby, not around taste.
  • Artist search can match the wrong name, so the agent asks instead of guessing.

Accomplishments that we're proud of

  • A full flow from a line-up to a sendable email and a printable PDF, with the source of every claim visible.
  • Honest labels everywhere: saved or live data, AI or template, score or no score.

What we learned

We tested on 10 real US festivals: 25% of 129 real sponsors were in Qloo's top 10 for their category, against 17% for a control. The edge was small, and we say so in the README.

A high Sponsor Fit Score means fans of this music like the brand compared with the other brands for this search. It does not mean the brand sponsors events or will say yes. Small local artists are often not in Qloo (the genre covers them), and small towns often have little place data.

What's next for Echolocate

  • Free for organizers. A paid plan for those who run many events (student activity boards, DIY promoters): saved sponsor lists, outreach tracking, follow-ups.
  • Ticketing platforms already hold the line-up and the city: a "Find sponsors" button for their small organizers is a natural partnership.
  • Local businesses could claim their listing to say what they offer (vouchers, kegs, prizes). Paying never changes the ranking: Qloo's taste data does.
  • Sponsor contacts, more cities outside the US.

Built With

Share this project:

Updates

Submission history