Inspiration

Every season, an independent shop owner gets a supplier's list of 30 or 40 brands and has to decide what to order, months ahead, usually on instinct and a sales rep's word. Sales history can't help with a brand they've never carried, and a bestseller list knows nothing about their customers. Get it wrong and the money sits on a shelf: retailers lose $1.73 trillion a year to inventory distortion, $572B of it overstock, while the median small retailer holds just 19 days of cash.

Qloo knows which brands, artists and shows the same people love, and how that changes city by city. That's exactly the missing piece: what my crowd will want.

What it does

  • Set up your shop once: pick your city (Qloo checks it has local data there) and what your customers already love (brands, musicians, shows), chosen from live Qloo suggestions.
  • Paste a supplier's brand list. The agent checks every name on Qloo, asks when a name is unclear ("Kapital the brand, or the bank?"), and never guesses.
  • Get a drop: every brand sorted into stock, consider or skip, with the reasons. For example: Stanley → Stock. 1st of 23 among fans of Patagonia, Carhartt and Tyler Childers (34% from Patagonia fans), 10th in Denver. A bestseller list would say skip.
  • Overrule any call, then Order: your calls become an email to the supplier's rep. You approve it and it opens in your own email.
  • Ask the agent: "Why skip Baggu?", "What if I opened in Austin?", "Who buys Stanley?", "Snow Peak vs Cotopaxi", "Where does Filson fit?" (a map across 12 US cities), "Brands similar to Aesop". If you ask about something Qloo doesn't cover, like margins, it says so honestly.
  • How it decided: every drop shows its steps and every Qloo call behind it.
  • Use it from your own AI: Restocked is an MCP server, so Claude or ChatGPT can call the same five tools.

How we built it

  • Qloo, used together: /search (brands, artists, shows, places), /v2/insights ranked by the customers' taste with explainability, /v2/insights ranked by city, demographics, /v2/insights/compare, and similar brands.
  • Taste and place are asked as two separate questions. With a city signal, Qloo only returns brands it has local data for, so combining them would silently drop brands. Each brand gets a top, middle or bottom third on taste; the city lifts or lowers it one step; missing data never counts against a brand.
  • A rule-based agent (no AI key needed) reads the message, plans the steps, asks when unsure, and keeps track of the shop between questions.
  • A paced, allow-listed Qloo client: one call at a time (Qloo rejects bursts), a 6-hour cache, bounded retries, and unknown parameters refused before they reach Qloo.
  • An MCP server (Streamable HTTP) exposing the same tools to any assistant.
  • Next.js 16 on Vercel, a full workspace UI (light and dark), and 72 tests.

Challenges we ran into

  • Qloo rejects parallel requests, so everything had to be serialised and paced without making the app feel slow.
  • A combined taste-plus-city query quietly dropped brands with no local data. Splitting it into two questions fixed it.
  • Wrong matches are easy ("Kapital" is also a bank), so the agent asks rather than guesses.
  • Being honest about evidence. We tested Restocked against an LLM on its own, and the LLM won on average, so we published that too.

Accomplishments that we're proud of

  • Validated before building: Qloo's city rankings matched real stockist lists for 7 brands across 12 US cities (r = +0.32, about a 1 in 1,000 chance by luck).
  • The "without Qloo" test: the same supplier list sorted for four shops. A bestseller list gives all four the same answer; with Qloo, 21 of 23 brands change call by crowd.
  • Real shops: against three real boutiques' public brand lists, Restocked beat a bestseller list at all three.
  • An honest LLM comparison: Claude on its own (no Qloo) scored higher on average on that small test (0.79 vs 0.62 for our improved method). The improved method was declared in writing before we re-ran it, and every number is in the README.
  • A complete, live product that judges can use with no login.

What we learned

  • Qloo is strongest at "which cities suit this brand" (rank correlation +0.64) and weaker at "which brands suit this city" (+0.20). That's why Restocked shows groups, not a precise order.
  • A language model is good at guessing "what kind of shop carries this". Qloo's value is grounding: traceable reasons, real local differences, and no invented brands. The best product is likely both together.

What's next for Restocked

  • A hybrid planner: an LLM reads the shop's request, and Qloo grounds and ranks its picks.
  • Ten real shop owners using it on a real order, tracking what sold.
  • Accounts and saved workspaces, then the brand side: brands pay to see which cities and shop crowds fit them, with aggregate data only.

Try it

Built With

Share this project:

Updates

Submission history