๐Ÿ’ก Inspiration

Hiring local trade contractors (painters, plumbers, electricians, caterers, movers) is one of the most tedious and fragmented offline commerce experiences. There is no public pricing API for local trades. A homeowner or procurement manager typically spends 2 to 4 hours manually dialing 5 to 10 local contractors, repeating identical project scopes, enduring hold music, leaving voicemails, and jotting down disorganized notes on scrap paper.

Mathematically, sequential calling exhibits linear time complexity: $$T_{\text{sequential}} = \sum_{i=1}^{N} t_i \approx \mathcal{O}(N)$$ For $N = 5$ vendors averaging 8 minutes per interaction, procurement requires upwards of 40 minutes of uninterrupted human phone time.

With the advent of CALL-E, AI agents no longer terminate at text generationโ€”they pick up the telephone and speak. We asked: What if instead of dialing contractors sequentially over an entire afternoon, an autonomous swarm of voice AI agents could dial every contractor concurrently, negotiate pricing in natural conversational speech, extract structured facts into verifiable schemas, and deliver an executive closing dossier to the human operator in under 2 minutes?

$$T_{\text{swarm}} = \max_{1 \le i \le N} (t_i) \approx \mathcal{O}(1)$$

That was the driving inspiration behind QuoteHunter.


๐Ÿš€ What It Does

QuoteHunter is an autonomous voice negotiation platform and agent skill powered by CALL-E:

  1. True Concurrent Voice Swarm: Dials multiple local contractors simultaneously using Promise.allSettled and isolated idempotency keys (qh_<jobId>_<vendorId>) to prevent telecom carrier duplicates.
  2. Pre-Flight Safety & 3-Second "Undo" Buffer: Features a pre-call review modal and an animated circular SVG countdown ring that allows operators to abort accidental dispatches before PSTN trunks are engaged.
  3. Live Granular Telemetry: Streams real-time telecommunication states via Server-Sent Events (SSE): $$\text{Provisioning ๐Ÿค–} \longrightarrow \text{Connecting Carrier ๐Ÿ“ž} \longrightarrow \text{Ringing ๐Ÿ””} \longrightarrow \text{In-Call ๐ŸŽ™๏ธ} \longrightarrow \text{Extracting Quote ๐Ÿ“Š} \longrightarrow \text{Quoted โœ…}$$
  4. Structured Spoken Evidence & Audio Waveform Player: Enforces strict JSON Schema extraction to lock in exact totals, timelines, and material inclusions, verified by verbatim spoken quotes and a turn-by-turn interactive audio player powered by Edge-TTS.
  5. Fail-Closed Zero-Fabrication Guarantee: Unanswered, busy, or declined calls return quote_provided: "no" and price_numeric: 0. QuoteHunter strictly prohibits hallucinated bids.
  6. Executive Deal Dossier & Human Closing: The AI negotiates, but the human authorizes. Clicking "Contact & Book" unmasks vendor numbers and unlocks 1-click Direct Dialing and pre-formatted WhatsApp deal summaries.

๐Ÿ› ๏ธ How We Built It

  • Telephony & Agent Voice AI: Integrated CALL-E's REST API and developer event streams using custom task prompting, bounded negotiation parameters, and JSON Schema extraction.
  • Backend Architecture: Built with Node.js, Express, and TypeScript. Implemented Server-Sent Events (SSE) for unidirectional real-time state broadcasting and CockroachDB for distributed persistence.
  • Audio Engine: Microsoft Edge-TTS neural speech synthesis paired with an interactive HTML5 audio waveform player for verbatim transcript scrubbing.
  • Frontend Experience: Vanilla JavaScript (ES6+), custom CSS design system, dark-mode glassmorphism, responsive SVG telemetry rings, and zero heavy frontend dependencies.
  • Agent Skill Standard: Packaged as an official reusable skill (skills/quotehunter/) featuring comprehensive architecture docs, references/safety.md, and references/examples.md fully compliant with repository CI validation.
  • Deployment: Production deployment hosted on Render with automated build pipelines and active health-check probes.

๐Ÿง— Challenges We Ran Into

  1. Conversational Realism vs. Phone Tree Friction: Contractors on active job sites hang up if an AI sounds robotic. We iterated on prompt engineering to lead with the job opportunity first before disclosing AI identity, keeping conversational turns under 20 words: > "Hi! I'm calling about a painting job for a client in your area. I'm an automated assistant gathering quick estimates โ€” do you have a quick minute for a ballpark quote?"
  2. Preventing Telecom Duplicate Calls: In high-concurrency swarms, network retries could re-trigger calls to the same contractor. We solved this by generating cryptographically stable Idempotency-Key headers per vendor and job.
  3. Accurate Financial Arithmetic Extraction: Differentiating spoken time or measurements from actual prices (e.g. "I can be there in 45 minutes" was initially misclassified as โ‚น45). We engineered strict validation logic enforcing the arithmetic sum: $$\text{Price}_{\text{total}} = \text{Base Work} + \text{Labor} + \text{Materials} - \text{Discounts}$$ before accepting any numeric quote.

๐Ÿ“– What We Learned

  • Voice AI Demands Pacing: Unlike text LLMs where token generation speed is the only metric, voice telephony requires conversational pause detection, graceful handling of contractor interruptions ("Send details on WhatsApp"), and immediate acknowledgment.
  • Bounded Autonomous Authority: The safest, most effective architecture for enterprise voice agents is information discovery by AI, final commitment by humans. Giving the AI discovery power while keeping booking authority with the user creates high trust.
  • Schema-Driven Extraction: Defining deterministic JSON schemas for call outcomes bridges the gap between unpredictable human dialogue and structured tabular data.

๐Ÿ† Accomplishments We're Proud Of

  • Sub-90s Multi-Vendor Swarm: Dispatched 3 simultaneous contractor calls and synthesized full structured quotes with audio snippets in 85 seconds.
  • Zero Hallucination Pipeline: If a contractor declines or doesn't answer, QuoteHunter reports failure cleanly rather than fabricating estimates.
  • 100% Repository Validation: Fully passed python scripts/validate_repository.py and git naming conventions for the official awesome-phone-call-agents repository.

๐Ÿ”ฎ What's Next for QuoteHunter

  • Dynamic Cross-Vendor Counter-Bidding: Enabling the agent to mention competitive market rates ("Another contractor in Indiranagar estimated โ‚น9,000 with materials included, can you match that?").
  • In-Call Visual MMS/WhatsApp Dispatch: Automatically texting photos of the client's floorplan or repair site to the contractor while the voice call is actively live.
  • One-Click Calendar Sync: Automatically scheduling contractor on-site walkthroughs directly into Google Calendar or Apple iCal.

Built With

Share this project:

Updates

Submission history