Inspiration

Immigrants and first-time owners entering a new city usually know exactly who their customers are by taste (fans of Afrobeats and Nollywood, K-pop and Korean dramas), but they have no idea which neighborhoods those people live in, who the competitors are, or which brands and artists reach them. Generic advice like "open near foot traffic" doesn't help. We wanted to turn taste into a map.

What it does

Foothold tells you where in a new city to open a taste-driven business. You choose a business type (restaurant, cafe, grocery, bookshop or salon), confirm a city, and add 1 to 5 things your customers love: artists, movies, TV shows, books, podcasts, video games, brands or people. Each one is resolved to a real Qloo entity that you confirm.

Foothold then returns a Market Entry Brief:

  • Who they are: age and gender affinity of the audience.
  • Where they are: a map of the hottest audience cells and a ranked list of neighborhoods.
  • Venues they already love: existing places that match the audience, with a bar showing which of your anchors drove each match. Chains are collapsed into one card.
  • Partners and marketing: brands with high affinity, plus artists and podcasts for in-shop music and advertising.
  • Shop vibe: the ambience tags this audience prefers.

What makes it Qloo-powered: every number, venue, neighborhood and partner in the brief comes from a Qloo response. Without Qloo there is nothing to show.

How we built it

Next.js and TypeScript, deployed on Vercel. The Qloo API key stays on the server and never reaches the browser.

Qloo endpoints we use:

  • /search to resolve anchors to entities and cities to disambiguated localities.
  • /v2/tags for place categories per business type.
  • /v2/insights for demographics, the heatmap, places with explainability, brands, artists, podcasts and ambience tags.

The heatmap is the core: it turns "who loves this" into "where they are". Qloo's heatmap returns coordinates, not names, so we take the hottest 60 cells, name each one using the nearest Qloo place's neighborhood, and rank neighborhoods by hot-cell count and affinity.

A Qloo client wraps every call with a 24-hour cache, request de-duplication, throttling to stay under Qloo's rate limit, exponential backoff on 429s (never treated as "no results"), a monthly call-budget guard and per-visitor rate limits. The interface has a WebGL gradient background that reacts to the cursor and the chosen business type, and an audience map drawn from the real heatmap cells.

Challenges we ran into

  • Silent wrong cities: a misspelled city can resolve to a place elsewhere in the world. We resolve cities to a disambiguated Qloo locality that the user confirms, and an unknown place returns a clear "not recognised".
  • Heatmap with no names: cells have only coordinates, so we built the nearest-place naming step.
  • Messy search results: one name can return several entity types (Burna Boy exists as both an artist and a person) and duplicate IDs. We show type and hints in the dropdown and dedupe results.
  • Loose place data: results can include off-target venues and chains. We collapse chains and show missing fields, like price level, as missing instead of inventing them.
  • Rate limits: Qloo's limits shaped the client design, with throttling, backoff and caching.

Accomplishments that we're proud of

  • A complete, deployed product: city and anchor confirmation, a full brief, a custom audience map and a live URL.
  • We tested the full flow in a real browser against the live site, with no console errors.
  • It works beyond one city. We ran five end-to-end sets: Chicago, Houston, Atlanta, Los Angeles and London, including a non-US city.
  • It is honest about its data. Gaps are shown, and nothing from Qloo is dressed up as more than it is.

What we learned

Taste data becomes useful when it is tied to a place. The heatmap plus explainability turns an abstract audience into concrete neighborhoods and concrete venues. We also learned how much careful handling Qloo's real-world data needs: duplicates, missing fields and ambiguous names.

What's next for Foothold: where to open, powered by Qloo

  • A Claude tool-use layer, and a "Without Qloo vs With Qloo" comparison to show exactly what the taste graph adds. Today the brief is built by deterministic code from Qloo responses, not by an LLM agent.
  • A "before you open" checklist of licences, permits and fees with official links, clearly labeled as not from Qloo, starting with one city.
  • Shared cache and rate limiting across serverless instances, plus automated tests.
  • Better venue filtering and more business types.

Qloo provides no rent data and price level is often missing, so Foothold doesn't promise either. Results describe what groups tend to like, not what one person will do.

Try it: https://foothold-five.vercel.app Code (MIT): https://github.com/shegz101/foothold Sample: cafe in Houston, Harris, Texas, for people who love BTS (artist) and Squid Game (tv show).

Built With

Share this project:

Updates

Submission history