Inspiration

Sales teams face a critical bottleneck: speed-to-lead. If a prospect isn't contacted within 5 minutes of filling out a form, the chance of qualifying them drops by 80%. However, human sales reps are often busy in meetings or dialing other prospects. Leads go cold, and businesses lose millions in potential revenue.

I wanted to solve this with AI-powered phone calls, and CALL-E's developer platform made it possible.

What LeadQualify Does

LeadQualify is an AI-first outbound voice agent that:

  • Calls instantly: Dials prospects within seconds of form submission
  • Qualifies intelligently: Conducts structured BANT interviews (Budget, Authority, Need, Timeline)
  • Extracts data automatically: Translates conversations into structured JSON scorecards
  • Empowers sales reps: Provides full context + transcript for immediate handoff

How I Built It

Backend: FastAPI + Python for REST APIs and webhook handlers AI Integration: CALL-E SDK for outbound calling and conversation extraction via custom result_schema Database: SQLAlchemy ORM with SQLite for lead records and transcripts Frontend: Vanilla JavaScript + glassmorphism CSS for real-time dashboard updates Testing: Pytest for endpoint validation and Mock Mode for offline simulation

Key Features

  • Instant Conversational Callbacks: Triggers on form submission
  • BANT Metrics Extraction: Structured data (budget_status, timeline_window, pain_point, interest_level, handoff_recommended)
  • Secure Webhook Handler: Origin validation by querying CALL-E servers to verify call authenticity
  • Premium Dashboard: Live call alerts, messaging-style transcripts, and animated scorecard updates
  • Intelligent Mock Mode: Simulates complete call lifecycle for local demonstrations without API calls

Challenges & Solutions

Challenge 1: Webhook Security Webhook payloads can technically be spoofed. Solution: Implemented origin validation by making a secondary API call to CALL-E servers to verify the call's final status and contents.

Challenge 2: Translating Voice to Structured Data Converting natural conversation into strict BANT categories seemed lossy. Solution: Used CALL-E's custom result_schema to enforce structured outputs while preserving full transcripts.

Challenge 3: Real-Time Dashboard Updates Webhooks arrive asynchronously after calls end. Solution: Implemented efficient polling + state management in vanilla JS to update the UI without page refreshes.

What I Learned

  • CALL-E's SDK makes outbound voice agents accessible to developers
  • Structured extraction (JSON Schema validation) bridges voice and CRM
  • Mock/dry-run modes are crucial for iteration without burning API credits
  • Sales teams desperately need speed + structure - not one or the other

Future Scope

  • CRM Integrations: Push scorecards directly to Salesforce/HubSpot
  • Calendar Integration: AI books Zoom meetings during the call
  • Multi-lingual Support: Qualify prospects in Spanish, French, German
  • Advanced Analytics: Win/loss analysis by BANT profile

Built With

Share this project:

Updates

Submission history