Context
Niche: B2B SaaS platform (international market).
Client: requested anonymity (NDA).
Starting point: 3 sales reps, ~80 inbound leads/month, average qualification took 2 business days. Only 8% reached a meeting.
Goal
Cut time to first contact and automate qualification: initial classification, profile enrichment, calendar booking — without sales involvement.
What we did
1. Lead data map
Defined required signals for qualification: company size (Clearbit/Apollo), industry, contact role, tech stack (BuiltWith). 14 scoring parameters.
2. AI agent on LangGraph
Architecture: orchestrator → 4 specialized agents (research, scoring, outreach, calendar). Uses GPT-4o + Claude 3.5 for different tasks. Decision logging for auditability.
3. Integrations
HubSpot CRM (lead writes), Cal.com (booking), Slack (notifications), Sentry (agent error monitoring).
4. Testing on 200 leads
Parallel A/B: half of leads via the agent, half via reps. Compared conversion, meeting quality (sales NPS), time to first contact.
5. Gradual rollout
Month 1: 30% traffic. Month 2: 70%. Month 3: 100%. Reps freed for mid- and large-deal negotiations.
Results
| Metric | Before | After (3 mo.) | Δ |
|---|---|---|---|
| Time to first contact | ~38 hours | ~4 minutes | −99% |
| Lead → meeting conversion | 8% | 30% | ×3.8 |
| Reps on first contact | 3 | 0 | −3 |
| Qualification cost per lead | $45 | $2.30 | −95% |
Timeline & budget
3 months build + 2 months A/B validation. Stack: TypeScript + LangGraph + Vercel. LLM costs ~$700/mo at 3,000 leads.
What was tough
First two weeks the agent confused roles (startup CEO vs enterprise CEO). Fix: extra LinkedIn check + company size. Also added escalation: if agent's confidence is below 70% — the lead is handed to a rep.
