Try it: https://open-here.vercel.app · Code: https://github.com/dylanbuchi/open-here
Inspiration
Picking a location is one of the biggest bets an independent café, bar or restaurant owner makes, and most people make it on gut feel and a few walks around town. Foot traffic tells you where people are. It doesn't tell you where the people who'd like your kind of place are.
I asked a regular chatbot where to open a cozy Italian date-night spot in Austin. It named a reasonable neighborhood and suggested Norah Jones for the playlist. Fine, but it couldn't see anything about the city. Qloo has data on what people in different parts of a city like, so I wanted to see what an agent could do with it.
What it does
You type a concept, a city and what you're going for, like "Italian restaurant, Austin, cozy date-night spot for young couples". An agent works through Qloo's data while you watch, and you get:
- A map of taste lift: areas where people like your kind of place more than the area's general popularity would suggest. So not just "downtown is busy".
- The best spots by neighborhood, like "Downtown, near Emmer & Rye on Rainey Street", with how many popular competitors are within 1 km.
- Who likes places like yours: which age groups like this kind of place more or less than average, and the gender lean.
- What they're into: music, films and brands, for the city and for each spot.
- A launch plan: best spot and why, the vibe, menu ideas, a playlist, partner brands and an opening pitch. Every artist and brand is checked against what Qloo actually returned, and anything the AI came up with on its own is labeled as a suggestion.
- What the agent double-checked. Before it commits, it flags results that look off and says what it did about them, without making up explanations. In Los Angeles it passed over the top-ranked spot because it's a drive-heavy stretch that doesn't suit a quick after-work bowl, and picked Venice instead. When it can't explain something from the data, it says so.
- A side-by-side with a plain AI. Same model, same request, no Qloo. Then Open Here puts the plain AI's neighborhood on the same map and scores both picks the same way: average taste lift within 1 km.
| Example | Plain AI's pick | Open Here's pick |
|---|---|---|
| Italian date night, Austin | East Austin: −1 | Downtown, on Rainey Street: +5 |
| Ramen, Los Angeles | Little Tokyo: +2, with 8 popular competitors within 1 km | Venice: +12 |
| Wine bar, Brooklyn | Bushwick North: −7 | Red Hook: +4 |
| Taqueria, Chicago | Pilsen: +15, a good pick near my #4 spot | Brighton Park: +25 |
To be fair about what this shows: Open Here picks its spots using this same map, so it has a home advantage. What the comparison shows is that a plain AI picks without seeing the map at all. Sometimes its instinct is good, like Pilsen, and the app says so.
How I built it
- The agent is an LLM (DeepSeek, through an OpenAI-compatible API) with four tools: map the market, check one spot's crowd, check the audience's taste, and submit the plan. You see each step as it happens. The map shows up after about 3 seconds and the plan after 15 to 20.
- From Qloo I use tag search to turn the concept into a real place category, Insights for competitors, heatmaps across the city, demographics, taste in music, film, brands and podcasts, and locality search to put the plain AI's neighborhood on the map.
- Taste lift. Qloo's raw heatmap mostly follows how busy an area is (r ≈ 0.95 in Austin), so on its own it just says "go downtown". I compare interest in the concept against general popularity, and a spot's taste lift is the average gap within 1 km of it. I keep only spots with real businesses around them, so no airports, parks or zoos.
- One spot's crowd. I checked whether Qloo's location parameter changes the taste results. It barely does: two Austin zones 15 km apart got almost the same artists. Using the places actually in a zone works much better. South Lamar's record and vintage shops point to Rayland Baxter and Nikki Lane, while The Domain mall's crowd leans mainstream country.
- Keeping it honest: the plan is checked on the server and sent back to the model if anything's missing, names are verified by type, and the city and concept always come from you, not the model. The agent is told never to rule out a neighborhood because of who lives there. It also has a request deadline, a rate limit and a daily spending cap.
- Stack: Node 22 with no dependencies, Vercel, plain JavaScript and Leaflet, plus 44 tests.
Challenges I ran into
- The raw heatmap just pointed downtown. Comparing against popularity fixed it.
- Hidden demand loves empty places. Early versions picked a zoo, an airport café and a highway overlook. Now a spot needs real businesses nearby, and I use Qloo's place categories to tell a café from a zoo.
- Matching the concept. "Vegan bakery" first matched a vegan dish that supermarkets carry, so Walmart showed up as a competitor. Now only place categories count, matched on the main word.
- Measuring both sides the same way. I first ranked my spots by averaging a small map tile, and scored the plain AI's pick within 1 km. Those don't match: one Austin spot was +15 by tile but −2 within 1 km. Now everything uses the 1 km measure, which made my numbers smaller but honest.
What I'm proud of
- The agent weighs spots against your brief instead of just taking the top score, and explains when it doesn't.
- It's upfront about its limits: taste lift is a lead, not proof of sales, competitor counts are a sample, and AI suggestions are labeled.
- The example buttons replay real recorded runs, so you see a full result instantly.
What I learned
An LLM's guesses about taste can sound convincing, so playlists alone don't prove much. Where Qloo helps most is location: where a crowd is, what's around them and who they are. And measuring carefully matters more than impressive numbers.
What's next for Open Here
- First user: independent café, bar and restaurant owners picking their next location. I'd want to show it to a handful of them and see whether it changes where they'd look.
- Rent and foot traffic next to taste lift, so a lead can be checked against real costs.
- If it helps independents, the same tool could serve franchise teams that pick sites every month.
Limits
- Taste lift measures taste, not sales or rent. Treat it as a lead to check in person.
- Competitor counts come from the most popular matching places Qloo returns, so smaller spots may be missing.
- Coverage depends on the city and concept. Concepts are matched in English, and if a search finds nothing, the app suggests concepts that do have data there.
- Very dense cities can max out Qloo's scores, and the app warns you when that happens.
Built With
- ai-agents
- deepseek
- javascript
- leaflet.js
- node.js
- openstreetmap
- qloo
- vercel
Log in or sign up for Devpost to join the conversation.