Inspiration
Every American has that one bill they know they're overpaying. The fix is simple: call your provider, threaten to cancel, get transferred to retention, negotiate. But nobody does it because it means 45 minutes of hold music, scripted rebuttals, and emotional labor. What if an AI agent could do the entire thing autonomously, from research to real phone call to closed deal?
What it does
Slash is a fully autonomous bill negotiation agent. You add a bill, and Slash handles everything:
- Researches competitor pricing using Tavily search and Yutori deep web analysis
- Builds a negotiation strategy using a Neo4j knowledge graph of provider retention patterns, competitor rates, and historical outcomes
- Places a real outbound phone call to your provider's retention line via Telnyx Voice AI
- Negotiates live using adaptive tactics, responding to the rep's objections in real-time
- Analyzes the conversation post-call with Modulate's Velma-2 for emotion detection, speaker diarization, and safety monitoring
- Learns from every outcome, feeding results back into the knowledge graph so the next negotiation is smarter
No human intervention. The agent researches, calls, negotiates, and closes.
How we built it
• Backend: Express 5 + TypeScript with Server-Sent Events for real-time transcript streaming • Frontend: React + Vite + Tailwind CSS v4 (dark theme, #00ff88 accent) • Voice AI: Telnyx Call Control + AI Assistants (GPT-4o for negotiation logic, Deepgram STT, MiniMax TTS) • Research: Tavily API for fast competitor pricing search, Yutori Browsing API for deep web research and verification • Knowledge Graph: Neo4j Aura for storing provider leverage data, competitor rates, retention offer patterns, and negotiation outcomes • Voice Intelligence: Modulate Velma-2 batch API for post-call emotion analysis, PII detection, and speaker diarization • Deployment: Render with web service + scheduled cron job for nightly research refresh
The architecture follows an adapter pattern where each sponsor integration degrades gracefully. If Yutori is slow, Tavily results still flow. If Neo4j is unreachable, the strategy engine falls back to heuristic-based tactics. The agent always completes the negotiation.
Challenges we ran into
• Express 5 breaking changes: Wildcard route syntax changed from Express 4. SPA catch-all routes needed a middleware-based approach instead of app.get('*'). • Production build quirks: Render's NODE_ENV=production skips devDependencies, which broke TypeScript compilation. Needed explicit --include=dev flags in the build pipeline. • Voice AI latency: Real phone calls take 2-3 minutes. Built a demo mode with real API calls but simulated call completion for fast presentations, while keeping the full call flow available. • In-memory storage: Chose speed over durability for the hackathon MVP. Server restarts wipe all data. Every deploy means re-seeding. Would use SQLite or Postgres in production.
What we learned
• Voice AI agents are surprisingly effective at negotiation when armed with good research data upfront. The key is preparation, not persuasion. • Knowledge graphs are a natural fit for negotiation intelligence. Competitor rates, retention patterns, and success rates form a connected graph that gets more powerful with every call. • Emotion detection on voice calls opens a new dimension of agent intelligence. Knowing when a rep is getting frustrated vs. cooperative changes the optimal tactic in real-time.
What's next for Slash
• Multi-provider campaigns (negotiate all your bills in one session) • Statement scanning via PDF/photo upload to auto-populate bills • Scheduled re-negotiation when contracts approach renewal • Public launch with a success-fee model (we only get paid when we save you money)
Built With
- express.js
- gpt-4o
- javascript
- modulate
- neo4j
- node.js
- react
- render
- tailwind-css
- tavily
- telnyx
- typescript
- vite
Log in or sign up for Devpost to join the conversation.