Your AI sales agent has a problem. It's smart enough to write personalized emails, research companies, and craft outreach sequences. But it's working with dead data.
Contact databases decay 30% per year. By the time your agent pulls "Jane Smith, VP Marketing at Acme" from a static list, Jane might have changed jobs, Acme might have been acquired, and the email bounces.
What if your agent could access people who are actively researching your product category right now - with fresh data that updates daily?
That's what we built with Leadpipe's intent data API. Here's how to wire it up.
The Problem with AI SDR Data Today
Most AI SDR tools (11x, Artisan, Salesforce Einstein) run on the same data layer:
Static contact database -> AI writes email -> Send -> 1-3% response rate
The AI is doing its job. The data is the bottleneck. Three issues:
- Stale contacts - your agent personalizes for someone who left the company 6 months ago
- No timing signal - you're emailing people who aren't in-market, at a random time
- No behavioral context - "Hi Jane, I noticed your company is in the SaaS space" is not personalization. It's a mail merge.
What Changes with Live Intent Data
Person actively researching your category
-> Intent score: 87/100
-> Researching: "marketing automation", "CRM migration"
-> Title: VP Marketing, 200-person SaaS company
-> Has business email, LinkedIn, phone
-> Data from today, not 2024
Your agent now has:
- WHO to contact (the actual person, not a guess)
- WHEN to contact (they're researching right now)
- WHAT to say (reference the topics they're researching)
- WHY it's relevant (intent score proves active interest)
Response rates go from 1-3% to 15-25%. Not because the AI got smarter. Because the data got real.
The Setup: 3 Ways to Connect
Option 1: TypeScript SDK (build it yourself)
npm install @leadpipe/client
import { Leadpipe } from "@leadpipe/client";
const client = new Leadpipe({ apiKey: process.env.LEADPIPE_API_KEY });
// Step 1: Find topics your buyers research
const topics = await client.intent.topics.search({
q: "marketing automation",
type: "b2b",
limit: 10
});
// Step 2: Build an audience of in-market buyers
const preview = await client.intent.audiences.preview({
topicIds: [topics.data[0].topicId, topics.data[1].topicId],
minScore: 70,
filters: {
seniority: ["VP", "Director", "CXO"],
companySize: ["51-200", "201-500"],
hasBusinessEmail: true
}
});
console.log(`${preview.data.totalCount} people actively researching this`);
// Step 3: Save, activate, get full contact data
const audience = await client.intent.audiences.create({
name: "Marketing Automation Buyers",
config: {
topicIds: [topics.data[0].topicId, topics.data[1].topicId],
minScore: 70,
filters: { seniority: ["VP", "Director"], hasBusinessEmail: true }
}
});
await client.intent.audiences.update(audience.data.id, { status: "active" });
// Wait for materialization (5-60 seconds)
await client.intent.audiences.waitUntilReady(audience.data.id);
// Get the people
const results = await client.intent.audiences.results(audience.data.id, {
limit: 25
});
// Each person has 58 fields:
// name, email, phone, LinkedIn, job title, seniority, department,
// company name, industry, size, revenue, intent score, matched topics
Option 2: MCP Server (let your agent do it)
If you're building with Claude, Cursor, or Codex - skip the code. Give your agent direct access:
npx -y @leadpipe/mcp
Claude Desktop config:
{
"mcpServers": {
"leadpipe": {
"command": "npx",
"args": ["-y", "@leadpipe/mcp"],
"env": { "LEADPIPE_API_KEY": "sk_..." }
}
}
}
Now your agent has 27 tools. You just talk to it:
"Find people researching CRM tools. Filter to VPs at mid-market companies with business email. Show me the top 25."
"Analyze competitor.com and tell me what topics their audience researches. Build an audience around those topics."
"Check my saved audience. If it's ready, export it and give me the download link."
The agent calls the right API endpoints, handles pagination, waits for materialization, and returns structured results. Zero code.
Option 3: Webhook + Your AI Agent
For custom AI SDR pipelines - Leadpipe identifies website visitors in real-time and sends data via webhook:
from fastapi import FastAPI, Request
from openai import OpenAI
app = FastAPI()
openai = OpenAI()
@app.post("/webhook/leadpipe")
async def handle_visitor(request: Request):
visitor = await request.json()
# Visitor just identified on your website
# Fields: email, name, company, title, LinkedIn, page visited, duration
if "/pricing" in visitor.get("page_url", ""):
# High intent - pricing page visitor
prompt = f"""Write a 3-sentence email to {visitor['first_name']} {visitor['last_name']},
{visitor['job_title']} at {visitor['company_name']}.
They just spent {visitor['visit_duration']} seconds on our pricing page.
Be helpful, not salesy. Reference pricing without being creepy."""
email = openai.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
# Send within minutes of their visit
await send_email(visitor["email"], email.choices[0].message.content)
Webhook fires the moment someone is identified. Your agent responds in minutes, not days.
What Your Agent Gets Per Person
This isn't name + email. It's 58 fields per person:
| Category | Fields |
|---|---|
| Contact | First name, last name, email (business + personal), phone, LinkedIn, photo |
| Professional | Job title, seniority level, department, headline |
| Company | Name, domain, industry, employee count, revenue, location |
| Intent | Score (1-100), matched topics, topic overlap count |
| Demographics | Age range, gender, location, state |
The intent score matters most for your agent's decision logic:
| Score | Your Agent Should |
|---|---|
| 90-100 | Email immediately. This person is actively buying. |
| 70-89 | Add to priority sequence. They're evaluating. |
| 60-69 | Nurture. Send content, not a sales pitch. |
| <60 | Skip or add to long-term drip. |
Real Agent Architecture
Here's what a production AI SDR pipeline looks like with this data:
┌─────────────────────────┐
│ DATA SOURCES │
├─────────────────────────┤
│ │
Website Visitors ─┤ Leadpipe Pixel │─── Real-time webhook
│ (30-40% match rate) │ (name, email, company,
│ │ pages viewed, duration)
├─────────────────────────┤
│ │
In-Market Buyers ─┤ Leadpipe Orbit │─── Daily refresh
│ (20,735 topics, │ (intent score, topics,
│ 4.4B profiles) │ full contact data)
│ │
└───────────┬─────────────┘
│
┌───────────▼─────────────┐
│ YOUR AI AGENT │
├─────────────────────────┤
│ 1. Classify intent │
│ 2. Check ICP fit │
│ 3. Research company │
│ 4. Generate outreach │
│ 5. Send + log to CRM │
└───────────┬─────────────┘
│
┌───────────▼─────────────┐
│ RESULTS │
├─────────────────────────┤
│ 15-25% response rate │
│ (vs 1-3% cold) │
└─────────────────────────┘
Two data sources feeding one agent:
- Website visitors (reactive) - someone visits your pricing page, agent responds in minutes
- Intent audiences (proactive) - people researching your category across the web, agent reaches out before they even visit your site
The Cost Comparison
| Approach | Monthly Cost | Leads | Response Rate |
|---|---|---|---|
| ZoomInfo + AI SDR | $15,000+ | Static list | 1-3% |
| 11x / Artisan | $2,400-10,000 | Their database | 3-5% |
| Leadpipe + OpenAI | $167 | Live intent data | 15-25% |
$147/mo for Leadpipe (visitor ID + intent data) + ~$20/mo for OpenAI API calls. That's a custom AI SDR for $167/month with better data than platforms charging 50x more.
Topic Discovery Is Free
You don't need an API key to explore. Start here:
import { Leadpipe } from "@leadpipe/client";
// No auth needed for topic discovery
const client = new Leadpipe();
// What are people researching in your space?
const topics = await client.intent.topics.search({ q: "your product category" });
// What does your competitor's audience care about?
const competitor = await client.intent.topics.analyze({ url: "https://competitor.com" });
// Which topics are growing fastest?
const trending = await client.intent.topics.movers({ direction: "up", type: "b2b" });
20,735 topics. Free. No signup. See what's out there before committing.
Links
-
SDK: github.com/leadpipe-com/sdk -
npm install @leadpipe/client -
MCP Server: github.com/leadpipe-com/mcp -
npx -y @leadpipe/mcp - API Docs: docs.leadpipe.com
- Get API Key: dashboard.leadpipe.com/auth/signup (free trial, 500 leads)
- Full developer guide: Visitor Identification API: Complete Developer Guide
- Build a custom AI SDR: Step-by-step Python tutorial
- Why AI agents need identity data: The missing infrastructure layer
Top comments (0)