Inspiration
We were inspired by a simple challenge: accessing essential services shouldn't be stressful. Millions struggle with phone anxiety or language barriers, making simple tasks like scheduling a doctor's appointment or reserving a dinner table a daunting hurdle. Bud Dial was created to be an accessible, professional voice for everyone, turning an anxious task into a seamless, automated click.
What it does
Bud Dial is a personal AI assistant that handles the entire booking process from start to finish.
Guided Request: Users select a business on a map and fill out a structured, category-specific form (e.g., party size, reason for visit).
AI Execution: The user hits "Start Call," and the AI Buddy instantly calls the business.
Intelligent Negotiation: The AI Buddy, using a calm and professional voice, runs a highly-constrained script. It handles back-and-forth, addresses issues (like "no availability"), confirms all critical details (time, price, service), and ends the call politely.
Actionable Results: The call immediately resolves to a Success or Failure screen. Failed calls include bulleted reasons (e.g., "Need full insurance ID"), allowing the user to quickly correct the input and retry. Successful calls provide a full transcript for confirmation.
How we built it
BUD Dial is a full-stack, voice-to-voice automation application built for mobile-first utility.
Front-end and Design: We chose React Native for the mobile application to ensure cross-platform compatibility, using Figma to design the clean, low-anxiety user interface.
Backend Orchestration (Node.js): Our custom Node.js server acts as the central hub, managing all the API interactions and orchestrating the call flow.
The Voice (Eleven Labs): We integrated Eleven Labs for professional, high-fidelity Text-to-Speech (TTS), ensuring the AI Buddy's voice is trustworthy and non-robotic during the live call.
The Call (Twilio): Twilio provided the essential telephony infrastructure for placing and managing the live outbound calls to the target business phone number.
Core Intelligence (Gemini LLM): The Gemini LLM is the brain of the operation, performing a critical task: after a call completes, the raw transcript is fed to Gemini, which is instructed to populate a strict, category-specific JSON Schema. This structured output (e.g., appointment_time, price) is what determines the final success or failure state and provides the user with actionable booking data.
Business Data (Google Maps API): We rely on the Google Maps API to reliably pre-fetch essential business data like phone numbers, addresses, and business status before the call is placed.
Technical Flow
Our custom Node.js backend acts as the orchestrator for all API interactions:
Call Initiation (POST /api/call): The backend sends the user's compiled booking details as a precise instruction to the Twilio/Eleven Labs agent.
Call Resolution (POST /api/analyze): Once the call is finished, the raw transcript is sent to the Gemini LLM. Gemini's critical role is to analyze the unstructured conversation and populate a specific, category-based JSON Schema. This structured output dictates the final success or failure state and provides the key booking data.
Challenges we ran into
We focused on two major areas of friction: API compatibility and failure management.
API and Mapping Friction: Integrating a reliable map feature was a challenge. We initially tried to manage both Apple Maps and Google Maps APIs for location lookup, but quickly ran into inconsistent data and integration overhead on the React Native side. We pivoted to standardize exclusively on the Google Maps API for reliable business information (phone numbers, addresses, status) to ensure a consistent experience across devices.
Real-World Failure Parsing: The second hurdle was designing a non-anxious user experience around inevitable real-world call failures. If a business can't accommodate a request, a generic error is frustrating. Our solution was to implement robust failure parsing. The AI agent is trained to gather why the call failed (e.g., "Out of stock," "Need a callback number"), and the post-call analysis specifically returns these missing pieces, transforming failure into an actionable next step for the user.
Accomplishments that we're proud of
Zero-Anxiety Persona: We successfully designed an AI that is calm, professional, and brief, directly solving the core problem of phone anxiety.
Structured Data Extraction: Using the Gemini LLM to reliably map complex, unstructured conversation transcripts into clean, actionable JSON fields (like appointment_time and price) is a critical achievement that powers the entire success/failure logic.
End-to-End Automation: We built a complete automation pipeline that requires no human intervention, turning a multi-minute, high-stress conversation into a sub-second data entry task for the user.
What we learned
We learned that in AI applications focused on real-world task completion, strict boundaries and clear failure protocols are essential. By limiting the AI Buddy to a specific, professional role (no medical advice, no payments, only scheduling), we created a highly reliable and safe system. This strict focus is what enables the high success rate for the core booking tasks.
What's next for Bud Dial
We are excited to expand BUD Dial's utility:
Integrated Schedule Awareness: Integrate with the user's external calendar. The AI would automatically cross-reference availability and only suggest open time slots to the business, drastically speeding up the booking process.
Asynchronous "Offline" Calls: Allow users to submit their request and close the app. The AI would execute the call later and notify the user with a confirmation once the booking is secured.
New Categories: Expand structured booking forms and AI scripts for more complex services like legal consultations, specialized veterinary care, and utility appointment calls.
Built With
- elevenlabs
- figma
- gemini
- node.js
- react-native
- twilio

Log in or sign up for Devpost to join the conversation.