Voice-First Business Discovery - Hackathon Submission
Inspiration
I got tired of the endless scrolling and typing whenever I wanted to find a good place to eat. You know the drill - open Yelp, type your search, filter through results, read reviews, check the map, then finally get directions. It felt like there should be a faster way.
The idea hit me: what if I could just ask out loud, like I'm asking a friend? "Hey, where's the best pizza near me?" and boom - instant answer with everything I need. No typing, no clicking through menus.
When I saw Yelp had an AI API that could understand natural conversations, I knew this was possible. I wanted to build something that felt like having a local expert in your pocket who you could just talk to.
What it does
It's a voice-controlled web app where you literally just speak to find businesses. Say "find pizza places near me" and it:
- Understands what you want using Yelp's AI
- Finds places based on your actual location (or any city you mention)
- Reads the results out loud
- Shows you business cards with ratings and photos
- Let's you book a table, get directions, or call - all with one tap
No typing required. Just talk to it like you'd talk to a person.
How we built it
Tech stack:
- Plain HTML/CSS/JavaScript - kept it simple, no heavy frameworks
- Yelp AI API for the conversational search
- Web Speech API for voice recognition and text-to-speech
- Geolocation API to figure out where you are
- Google Maps for directions
- Vercel for hosting
The build process:
Honestly, I started with a completely different idea - an AR app that would overlay restaurant info on your camera view. But after building a prototype, I realized it wasn't that useful. Who wants to hold up their phone and spin around to find restaurants?
So I pivoted to voice-first. Made way more sense.
The core challenge was making the conversation feel natural. When someone says "find pizza near me," the app needs to use GPS. But when they say "find pizza in New York," it should search New York, not where they're standing. Getting that logic right took some trial and error.
I also learned that voice input is great for searching but not for filling forms. People don't want to dictate their name and phone number - too many errors. So I simplified the booking flow to a regular form with smart defaults (like suggesting tomorrow at 7 PM for dinner reservations).
Challenges we ran into
The AR pivot: Spent a day on AR before realizing it wasn't solving a real problem. Hard to abandon work, but had to make the call.
Location detection: The app kept using GPS even when users said "restaurants in Manhattan." Had to build smarter parsing to detect when someone mentions a specific place vs "near me."
Voice reliability: Speech recognition is great but not perfect. Booking a table by voice was too error-prone, so I made it optional and focused on manual input with good defaults.
Permission prompts: Browsers are weird about asking for microphone and location access. Had to explicitly trigger the prompts and handle all the edge cases when users deny access.
Button clicks breaking: At one point, literally nothing was clickable. Turns out I was attaching event listeners before the page finished loading. Classic JavaScript gotcha.
Syntax error nightmare: The app completely broke in production. Users in incognito mode saw nothing. Spent an hour hunting down orphaned code that was causing a syntax error. Node's -c flag saved me.
Browser caching: Even after fixing bugs, users still saw the broken version because their browser cached the old JavaScript. Added cache-busting to force reloads.
Accomplishments that we're proud of
- It actually works! Voice search is reliable and feels natural.
- Smart location handling - automatically figures out if you want "near me" or a specific city.
- Full Yelp AI integration - I'm using the real conversational API, not mock data.
- Multi-platform - works in browsers AND as a native Android app.
- Real features - booking, directions, calling all actually work.
- Survived the pivot - could have given up on AR but built something better instead.
- Deployed and live - it's on Firebase, anyone can use it right now.
What we learned
Technical:
- The Web Speech API is powerful but quirky. Continuous listening is tricky.
- Working with conversational APIs is different from REST APIs. The responses are less structured.
- GPS location can fail in surprising ways. Always have a fallback.
- Event listeners need to wait for the DOM to load. Obvious in hindsight.
- Syntax errors in JavaScript fail silently in weird ways. Always validate.
Product:
- Voice is amazing for search, not great for data entry.
- Users prefer buttons when they're in a rush, voice when they're hands-free.
- Smart defaults reduce friction. Nobody wants to pick every option.
- Pivoting is hard but necessary when something isn't working.
Development:
- Ship early, test with real users, iterate based on feedback.
- Version control saves your life when things break.
- Simple tech stack = faster debugging.
- Perfect is the enemy of done. Get it working first, then polish.
What's next for Voice-First Business Discovery
Short term:
- Multi-turn conversations: "Show me more options," "Filter by outdoor seating"
- Better filters: price range, cuisine type, ambiance, dietary restrictions
- Real booking integration once I get OAuth approval from Yelp
- Publish the Android app to Google Play Store
Medium term:
- Car mode with bigger buttons and high contrast for safe driving
- Multi-language support (Spanish, French, Chinese)
- Social features: share favorites, group decision making
- Payment integration for deposits and splitting bills
Long term:
- Expand beyond restaurants: hotels, events, services, activities
- Personalized AI that learns your preferences
- "Plan my entire day in San Francisco"
- Smart speaker integration (Alexa, Google Home)
- Smartwatch app for quick queries on the go
Big vision:
- Make this the default way people discover local businesses
- Partner with car manufacturers for in-car integration
- API for other apps to use our voice-first discovery
- Global expansion to 50+ countries
Links
🌐 Live Demo: https://yelpai.vercel.app/voice-app.html
🔗 GitHub: https://github.com/satishtamilan/yelpai
Built for the Yelp AI API Hackathon
Just me, a lot of coffee, and the Yelp AI API making local discovery feel like talking to a friend.
Built With
- css3
- frontend:-html5
- html5
- javascript
- vanilla
Log in or sign up for Devpost to join the conversation.