Try it

  • Open the sample run with the guided tour: no login, no keys, about 2 minutes.
  • Start your own run: paste a brand's website (for example https://www.finlandiacheese.com) and pick Brooklyn. Ranked results take about 2 minutes. Live runs are limited to 3 per visitor per day; the sample is always open.
  • See how it was tested against real brands' account lists.
  • Source code, MIT licence. Built during the hackathon: the first commit is from October 18, 2026.

Inspiration

A small coffee roaster, kombucha brewer or spirits maker needs its first wholesale accounts. Anyone can buy a list of venues and their emails. Knowing which venues' guests would like the product is the hard part. Founders guess, walk the streets or pay a broker. A venue stocks what its guests like, and that's what Qloo models.

Middlemen cost a small brand a lot. Brokers typically take 3 to 7 percent of net sales, and specialty distributors such as UNFI and KeHE keep a 20 to 28 percent effective margin (Matt Putra, Eightx, June 2026). Craft makers also sell close to home. The 2,131 active US craft distillers made about half of their 2025 sales in their home state (American Craft Spirits Association and Park Street, Craft Spirits Data Project, October 6, 2026). Picking the right local accounts is the job TasteRoute does.

What it does

TasteRoute turns a brand's website into a ranked list of local accounts, with evidence and a draft pitch for each:

  1. Reads your brand: your website or a short description becomes a profile with up to 5 products.
  2. Finds you in Qloo: each product resolves in Qloo. A brand too new to be known resolves through real comparable brands, and Qloo must confirm each one.
  3. Ranks a city's venues by taste fit: how strongly each venue's guests share your brands' fans' taste, against the same venues' taste for mass-market brands. Places everyone likes don't win by default, and chains are hidden unless you ask.
  4. Picks the product to lead with at each venue and says why. Every claim is labelled "Qloo" or "Our inference" and links to the call it came from.
  5. Shows an LLM's ranking next to it and marks the venues only TasteRoute ranks high.
  6. Plans a taste route: the top 15 grouped into walkable areas, strongest taste hotspot first, with Qloo's heatmap on the map.
  7. Finds public business contacts (OpenStreetMap, the venue's own site, then a web search) and drafts a short pitch that may only cite that evidence. You edit, approve and send it from your own inbox.

How Qloo is used

Qloo decides what's on the list; the LLM reads, plans and writes. Each step feeds the next:

  1. Search: /search resolves products or verifies comparable brands. Entity ids only ever come from Qloo.
  2. Taste: a /v2/insights place query per venue type (filter.location.query, filter.tags, signal.interests.entities, feature.explainability) gives each venue's taste percentile and which of your brands drive it.
  3. Mass-market baseline: a second query over the same venues (filter.results.entities) uses Coca-Cola, Pepsi, Budweiser, Starbucks and Dunkin' as the signal. lift = taste − mass-market taste and fit = 0.7·taste + 0.3·max(lift, 0).
  4. Product fit: one insights query per product over the ranked venues picks the product each venue stands out most for among its type.
  5. Reasons: audience tags (filter.type=urn:tag) and the venues' own Qloo tags turn a match into a readable reason.
  6. Music: an insights query with filter.type=urn:entity:artist and your brands as the signal gives the music their fans like. A place query with those artists shows which venues' guests share it. It explains a pick and can open a pitch.
  7. Heatmap: two filter.type=urn:heatmap queries for the city use your brands and the mass-market brands as signals. Their difference shows where your brands' fans concentrate more than everyone's, in cells of about 150 m. The taste route visits the strongest hotspot first.

Music and the heatmap never change a score: checks written down before they ran found they didn't help pick real accounts (see below).

Calls are cached, rate limited, budgeted per run and per month, and counted on screen. With no Qloo key, a rejected key or Qloo down, TasteRoute refuses to rank. If it worked the same without Qloo, it would be the wrong product.

How we built it

  • Web: Next.js 16 and React 19, typed from the API's OpenAPI schema. Hosted on Vercel.
  • API: FastAPI (Python 3.12) on Render, with Postgres on Supabase and row-level security on every table.
  • Agent: Gemma 4 31B on Ollama Cloud with native tool calls. It gets a goal, tools and decision rules, not a script. Tool results carry the numbers it decides from:
    • When a product is known through only one similar brand, it asks for more, and Qloo must confirm each.
    • When a venue type comes back thin, it adds another. In Hudson, NY it added cafés and then restaurants (8 venues to 21).
    • A rule checker approves every call: allowed tool and order, only ids the run holds, caps, no repeats.
    • If the model fails twice or is unavailable, a fixed plan applies the same rules and gives identical scores. Every decision shows in the trace with what the agent saw and its reason.
  • Drafts: a grounding validator rejects any name or number that isn't in the evidence, and claim words such as "award-winning" or "already stock". A sentence about Qloo or guests' taste must quote the evidence. A failed draft gets one repair attempt, then a template.
  • Tests: 167 API tests and 21 web tests run on recorded Qloo responses with the network blocked. An end-to-end script walks the judge path over HTTP.

Challenges we ran into

  • Small brands aren't in Qloo. We resolve them through comparables, and each must survive a Qloo /search match. A loose match once turned "Health-Ade" into "Health"; the matcher now only lets generic words extend a name.
  • Popularity bias. Raw affinity favours famous places. Lift compares the same venues under mass-market brands, so it says something about the guests' taste. On two runs it changed a third to half of the top 15.
  • API limits. take above 50 returns 400, reliable city scoping needed a location query with radius 0, and the heatmap returns 400 without a signal. We probed each one, saved the response and wrote it down before coding against it.
  • Keeping an LLM honest. In the first seeded run, every first draft named something outside the evidence. The validator, one repair, then a template keep every email grounded.
  • Reading real websites. Some shops refuse a server's address on their inner pages, so the hosted app may see only a home page that lists drinks by code ("N° 004"). Step 2 now names each product from the words the page uses and asks you to check.

Accomplishments that we're proud of

  • A backtest on real accounts, written down before it ran. Six Brooklyn brands' published account lists; two to fix the method, four run once. The result is a tie with an LLM that reads venue names: in the top 30, TasteRoute found 8 of 47 accounts, the LLM 8, Qloo taste alone 10, chance 1.5. Every account and table.
  • They find different accounts. Of the 13 test accounts either top 30 holds, 5 only TasteRoute found, 5 only the LLM and 3 both. June is one: TasteRoute ranked it 2nd, the LLM 101st. Among the 39 accounts outside Qloo's 50 best-known venues, TasteRoute found 5, Qloo taste alone 7 and the LLM 4. That's why the app shows both rankings.
  • Two more checks said no, and we kept them out of the score. Adding music taste found 4 test accounts in the top 30, against 8. Adding the heatmap found 6. Both rules were written down first.
  • A real venue wrote back in 2 hours. I sent a pitch for Pardas Chocolate, a Brooklyn chocolate maker, to a Brooklyn hotel. The Director of Rooms replied within two hours, copied their Brand Manager and asked for wholesale pricing, minimum order quantities, shelf life, sustainability and delivery before samples. One reply is an anecdote, not a result: the backtest is the evidence.

A Brooklyn hotel's Director of Rooms replies within two hours and asks for wholesale pricing, minimum order quantities, shelf life and delivery. Names and branding masked.

  • Traceable. Every score and reason links to the Qloo call it came from; every contact links to the page it was published on.
  • Hosted and checked. On the hosted API, the end-to-end script's checks of the app all passed. Lighthouse accessibility is 100 on all 7 hosted pages, and every screen works at 360 px.

What we learned

Test against an answer key before claiming anything. Our first backtest pool was biased against Qloo, because accounts entered it differently from other venues. The two practice brands caught that before the real run.

The real test said "tie". Qloo is ahead at the top of the list for taste-led brands: Qloo taste put 7 of 36 aperitivo accounts in its top 15, the LLM 4. The LLM is ahead when accounts announce themselves in their names, and Qloo can't help when it doesn't know the brands you resemble. Our mass-market check also worked against a coffee brand, because Starbucks is in it. So we call the output a taste-informed starting list, shown next to an LLM's.

Giving the agent real decisions found bugs a fixed script never hit: "Portland" resolved to Oregon, and "chipotle sauce" to the Chipotle restaurant chain.

Path to use

On the hosted demo a run took 120 and 144 seconds from the description to the ranked list, plus about a minute for contacts and drafts for the top 6. A run with contacts and drafts for the top 10 used about 30 Qloo calls (12 live, the rest cached), 24 to 28 LLM calls and 30 to 45 public page fetches. The LLM runs on an Ollama Cloud subscription, so it has no per-call price here. Qloo's commercial pricing isn't public, and that's the open question: TasteRoute needs Qloo access beyond a hackathon key. A brand or its field rep would pay per city per month.

How it's different

GeoTaste, the 2025 winner, analyses a location for someone opening a business. TasteRoute works for a supplier: it picks the accounts to approach and the product to lead with at each. Menu-data tools such as Datassential, Tastewise and Overproof see what venues sell. TasteRoute uses what each venue's guests like, which a menu can't show, and publishes its backtest with every account.

What's next

More category packs (fashion boutiques, bookshops, music venues), street routing and multi-day plans for the taste route, and CRM export.

Built With

Share this project:

Updates

Submission history