Skip to content

issacops/opencloser-v2

Repository files navigation

OpenCloser — Your AI Sales Team, On Your Desktop

OpenCloser Tauri React Rust TypeScript License

CI Release Stars

Open-source AI sales platform | Desktop CRM | AI Voice Caller | Sales Automation | Built with Tauri + React + Rust + Gemini


⚡ What is OpenCloser?

OpenCloser is an open-source, AI-powered sales development platform that runs entirely on your desktop. It gives you an autonomous AI sales team: a strategist to build your ICP, a researcher to hunt leads, a voice caller to dial prospects, a coach to train your rebuttals, and a manager to analyze every call — all running locally. No SaaS fees. No cloud dependency. No data ever leaves your machine.

Traditional Sales Team OpenCloser
Strategy Hire a consultant ($5K+/mo) AI Strategist generates ICP using SPIN & Challenger in minutes
Research SDR manually Googles leads (hours) AI Researcher hunts, scores & qualifies leads automatically
Cold Calling SDR dials 50 calls/day, burns out AI Caller dials with perfect pitch, never tired
Coaching Manager reviews recordings (hours) AI Coach gives instant post-call analysis
Training Roleplay sessions (awkward, infrequent) AI Sparring Partner available 24/7, adjustable difficulty
Analytics Spreadsheets and gut feelings Real-time dashboards, sentiment analysis, pipeline tracking
Cost $15K–50K+/mo in salaries Free. Open source.

🎯 Who It's For

  • Solo founders who need to sell but can't afford a sales team
  • Early-stage startups that want enterprise-level sales ops from day one
  • Sales teams looking to augment human reps with AI intelligence
  • Developers who want to build on top of an open sales AI framework

✨ Your AI Sales Team

🧠 AI Sales Strategist

Generates your Ideal Customer Profile (ICP) using SPIN & Challenger frameworks. Asks the right questions during onboarding to deeply understand your market. Builds targeted outreach strategies automatically.

🔍 AI Lead Researcher

Autonomous lead hunting with scoring and qualification. Full local-first CRM with Kanban pipeline management. Industry-aware demo mode with 5 keyword categories when no API key is configured.

📞 AI Caller (SDR)

Real-time AI voice agent powered by Google Gemini (also supports OpenAI Realtime and ElevenLabs ConvAI). Virtual audio bridge for phone integration. Live transcription, sentiment analysis, and objection detection. Power dialing mode for high-volume outreach.

🎯 AI Sales Coach

Objection sparring trainer with 3 difficulty levels (Rookie, Pro, Elite). Practice handling 12 objection archetypes against an AI prospect. Real-time encouragement and post-session scoring with specific improvement tips.

📊 AI Sales Manager

Post-call AI debrief with sentiment analysis and key insights. Auto-generated follow-up emails. Call analytics dashboard with conversion metrics. Pipeline intelligence with live Kanban board.


🚀 Quick Start

Prerequisites

Run the Desktop App

git clone https://github.com/issacops/opencloser-v2.git
cd opencloser-v2
npm install
npm run tauri dev

No API Key? No Problem.

OpenCloser works fully in demo mode with no API key — 10 realistic seed leads, simulated AI calls, and all features functioning with fallback data. Perfect for evaluation.

Enable Real AI

Add any of these in Settings → Voice Engine:

Provider Key
Google Gemini GEMINI_API_KEY for onboarding, lead hunting, call analysis
OpenAI Realtime openai_api_key for voice calling through the built-in relay
ElevenLabs ConvAI elevenlabs_api_key + Agent ID for the most human-like voice

🏗️ Architecture

opencloser/
├── src/                         # React 19 frontend (TypeScript strict mode)
│   ├── features/
│   │   ├── crm/                # Kanban pipeline, Dashboard, Settings, Persona
│   │   ├── voice/              # War Room, Post-Call Debrief, Objection Trainer
│   │   ├── hunter/             # Lead hunting engine
│   │   └── onboarding/         # AI onboarding + ICP generation
│   ├── stores/                 # 6 Zustand stores (lead, call, persona, etc.)
│   ├── services/               # Typed Tauri invoke wrappers
│   ├── test/                   # 35 Vitest tests across 3 suites
│   └── components/             # AppShell, shared UI
├── src-tauri/                  # Rust backend
│   └── src/
│       ├── ai/gemini.rs        # Gemini API + industry-aware demo mocks
│       ├── db/                 # SQLite schema + 10 seed leads + migrations
│       ├── relay/              # WebSocket proxy for OpenAI/ElevenLabs
│       └── lib.rs              # 15 Tauri commands registered
└── public/
    └── audio-processor.worklet.js  # Zero-latency PCM capture

Tech Stack

Layer Technology
Frontend React 19, TypeScript strict, Tailwind CSS 3, Vite 6, Zustand 5
Desktop Runtime Tauri 2.10
Backend Rust (rusqlite, reqwest, tokio, tokio-tungstenite)
Database SQLite — local-first, zero cloud dependency
AI Google Gemini 2.5 Flash, OpenAI Realtime, ElevenLabs ConvAI
Voice Web Audio API + AudioWorklet (zero-latency PCM capture)
Tests Vitest + React Testing Library (35 tests, 3 suites)
CI/CD GitHub Actions — lint, test, build, multi-platform release

📦 Platform Support

Platform Architecture Download
macOS Apple Silicon (ARM64) .dmg
macOS Intel (x64) .dmg
Windows x86_64 .msi / .exe
Linux x86_64 .deb / .AppImage / .rpm

All packages available on the Releases page.


📊 Project Status

Metric
TypeScript Strict mode, 0 errors
Tests 35 passing across 3 suites
Codebase 9,400 lines (TS: 7,572 + Rust: 1,185 + CSS: 637)
Bundle 312KB main + 5 lazy-loaded chunks
Demo mode No API key required — full fallback data

🔒 Privacy & Security

  • All data stays local — SQLite database on your machine, never synced to any server
  • API keys stored in your browser's localStorage — never transmitted except to the AI provider you choose
  • Open source — every line auditable. MIT license.
  • Offline capable — demo mode works with zero internet connectivity

🎙️ Audio Bridge Setup

For AI-to-phone calling, OpenCloser uses a virtual audio cable:

  • Windows: VB-Cable (free)
  • macOS: BlackHole (free)
  • Linux: Use PulseAudio's null-sink module

The built-in Audio Setup Wizard guides you through configuration, or skip entirely for VoIP-only mode.


🤝 Contributing

We welcome contributions! See AGENTS.md for the full developer guide.

# Setup
npm install

# TypeScript check (strict mode)
npm run lint

# Run tests
npm test

# Run desktop app
npm run tauri dev
  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes with clear messages
  4. Ensure npm run lint and npm test pass
  5. Open a Pull Request

📄 License

MIT License — see LICENSE for details.


🙏 Acknowledgments


Built with ❤️ for sales teams who want an unfair advantage.

⭐ Star This Repo · 🐛 Report Bug · 💡 Request Feature · 📖 Developer Guide


Keywords: ai-sales sales-automation crm-software ai-voice-caller desktop-app tauri open-source-crm lead-generation cold-calling-software sales-coach gemini-ai react typescript rust sentiment-analysis sales-pipeline

About

Open-source AI sales platform. Run your entire AI sales team locally: strategist, lead researcher, voice caller (SDR), coach, and manager — all on your desktop. AI cold calling, objection handling, post-call debrief, sentiment analysis, Kanban CRM. Built with Tauri + React + Rust + Gemini. No SaaS fees.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors