Inspiration
Local shops know their regulars by what they buy, but “who should I partner with next door?” is still guesswork. Ads reach strangers; a better path is a cross-category neighbor whose customers already share your buyers’ tastes. We built Customer Acquisition Advisor (CAA) for that—grounded in the idea that reach and growth matter for small businesses, and that partnership beats another paid campaign when the fit is real.
What it does
CAA reads who your best customers are and what they purchase, then returns a short list of nearby businesses in other categories worth walking into. Each row is a real Qloo place: why the crowd fits, what to propose, a concrete next step, and contact details when Qloo includes them.
The public demo offers three synthetic businesses (coffee in NYC, salon in LA, Mexican fast food in Austin). Pick one, run an analysis, and review ranked partnership ideas. Production-shaped path: connect sales data (Square optional locally); the hosted hackathon site uses scenario JSON only.
Qloo does partner discovery: menu lines → taste tags → Insights for ranked cross-category places. The LLM only writes copy for places Qloo already returned—it does not invent partners.
Demo notes: Hosted on Render’s free tier; the app may sleep when idle (first load after sleep can take ~1 minute). A run is often ~10–30 seconds. Several visitors can use it at once. Qloo runs every time; repeat runs for the same demo business may reuse recent LLM text from server memory until the cache TTL expires (see GitHub README).
How we built it
- Go API orchestrating an eight-step pipeline (ingest → score customers → Qloo Tags → Qloo Insights → LLM evaluate/rank → UI)
- React frontend polling run progress and showing explainability
- Docker image on Render (single web service)
- Qloo
GET /v2/tagsandGET /v2/insightswith geo radius and explainability stored on the run - OpenRouter (compatible LLM) for partnership drafting only
- Committed scenario datasets under
data/scenarios/for the public demo
Challenges we ran into
- Mapping noisy product names to stable Qloo tag URNs (including salon/menu edge cases)
- Insights + location: tuning radius and partner shortlists so sparse areas still return useful cross-category candidates without bogus text matches
- Latency and reliability on a free host while Qloo and the LLM run live
- Keeping discovery and generation separate so judges can see Qloo evidence, not a generic “shops near me” chatbot
Accomplishments that we're proud of
- End-to-end live demo: pick a business → progress → ranked partners with Qloo-backed names and rationale
- Clear split: Qloo finds candidates, LLM explains and proposes—with guards so drafts tie to Qloo
candidateIds - Three demo verticals that exercise different tag and Insights behavior
- Open MIT repo with README flow diagram and deployment path others can run locally
What we learned
Taste-graph partner discovery is a different product from LLM-only recommendations: affinity, category filters, and explainability from Qloo are the moat; the model is for language, not place picking. Small pipeline decisions (tag resolution, radius, when to widen search) matter as much as the UI for trust.
What's next for Customer Acquisition Advisor
- Optional live connector (Square) on a controlled deploy, not only scenario JSON
- Richer owner workflow: save favorites, export a one-pager, track outreach
- Stronger abuse/cost controls on the public demo if traffic grows
- Deeper use of Qloo entity fields and explainability in the UI for “why this match”
Built With
- cursor
- go
- openrouter
- qloo
- react
- render
- typescript
Log in or sign up for Devpost to join the conversation.