Inspiration

Living in San Francisco, California, I’m immersed in one of the world’s most dynamic local business ecosystems. Yet, discovering the right spot — whether a late-night taco truck or a quiet brunch café — often requires switching between apps, filtering reviews, and cross-referencing maps. I wanted a single, conversational interface that feels as natural as asking a local friend. The Yelp AI API changed everything. Its ability to understand intent, maintain conversation context, and return structured business data in real time made it the ideal foundation. My goal: build Yelp AI Recommender — a chat-based tool where users can simply type: “Find me a highly-rated vegan bakery open now near Union Square.” …and get an intelligent, actionable response.

What it does

Yelp AI Recommender is a real-time, natural-language local discovery app powered 100% by the Yelp AI API.
Key Features:

  • Conversational search: Ask in plain English — price, cuisine, hours, vibe, location.
  • Multi-turn context: Follow-up questions like “What time does the first one close?” are understood.
  • Rich business cards: Displays name, rating, address, and real-time hours.
  • Smart geolocation: Uses browser location (falls back to San Francisco).
  • Zero external data: Strictly Yelp AI API — no Google Maps, no third-party sources.
    Try it live: https://yelp-ai-recommender.vercel.app

How we built it

Tech Stack

  • Frontend: React (Create React App)
  • HTTP Client: Axios
  • Core API: Yelp AI API (POST /ai/chat/v2)
  • Deployment: Vercel (custom domain: yelp-ai-recommender.vercel.app)
  • Version Control: GitHub
  • IDE: Visual Studio Code

Architecture

graph TD
    A[User Query] --> B[React App.js]
    B --> C[sendQuery() → Axios POST]
    C --> D[Yelp AI API]
    D --> E[JSON: text + entities]
    E --> F[Parse & Render]
    F --> G[Chat UI + Business Cards]

## Challenges we ran into

1) Challenge: Deeply nested hours data
    Solution: Navigated "contextual_info.business_hours[0].business_hours[0]" safely

2) Challenge: Git history conflicts
    Solution: Resolved with "--allow-unrelated-histories" and safe "--force push"

3) Challenge: Default long Vercel URL
    Solution: Configured custom domain: "yelp-ai-recommender.vercel.app"

4) Challenge: Real-time UI updates
    Solution: Managed React state with "useState" and loading indicators

## Accomplishments that we're proud of

Built a fully functional, production-ready app in under 48 hours.
Achieved 100% compliance with hackathon rules: Yelp AI API as sole data source.
Secured custom domain for professional branding: yelp-ai-recommender.vercel.app
Implemented multi-turn conversation with persistent chat_id — a true AI agent feel.
Deployed with CI/CD via Vercel + GitHub — every push goes live instantly.
Clean, responsive UI that works on mobile and desktop.

## What we learned

Yelp AI API is incredibly powerful — it handles comparisons, filtering, and natural language out of the box.
State management is critical in conversational UIs — one missed chat_id breaks context.
Security is non-negotiable — even a single exposed key can compromise a project.
Vercel + GitHub = magic for rapid iteration and professional deployment.
Parsing complex JSON (like Yelp’s nested hours) requires defensive coding and optional chaining.
Most importantly: Great tools lower barriers — with VS Code, GitHub, and Vercel, anyone in San Francisco (or anywhere) can build world-class AI apps.

## What's next for Yelp AI Assistant

The journey is just beginning. Future enhancements include:
Voice input & output using Web Speech API for hands-free discovery.
Yelp Reviews integration — show real user photos and snippets.
Personalized recommendations via saved preferences (e.g., “no chains,” “pet-friendly”).
Mobile PWA with offline fallback and push notifications for “nearby deals.”
Multilingual support — expand beyond English to serve global users.
Business owner dashboard — let venues respond to AI-suggested queries in real time.
Yelp AI Recommender is evolving into Yelp AI Assistant — your always-on, always-smart local guide.

Built With

Share this project:

Updates

Submission history