r/AIAgents 2026 está lleno de publicaciones sobre agentes salientes creados en Claude Code. La receta: Claude Code como bucle de razonamiento, Scavio como backend de la investigación y una reescritura de CRM. Este tutorial ofrece el agente saliente mínimo viable con una investigación impulsada por prospectos.
Requisitos previos
- Código Claude más reciente
- Una clave API de Scavio
- Un destino de correo electrónico/CRM (Gmail, HubSpot)
- Nodo.js 20+
Guia paso a paso
Paso 1: Registrar Scavio MCP en Claude Code
Da acceso a la herramienta Claude Code a la búsqueda de Scavio.
{
"mcpServers": {
"scavio": { "command": "scavio-mcp", "env": { "SCAVIO_API_KEY": "sk_live_..." } }
}
}Paso 2: Escribe la habilidad de investigación
Una habilidad del Código Claude que activa nuevos prospectos.
// ~/.claude/skills/outbound-research.md
Instructions: For each prospect, use scavio to search:
1. Company recent news
2. Prospect LinkedIn activity
3. Reddit threads about their industry
Return a 3-bullet brief.Paso 3: Borrador de correo electrónico personalizado
Inserte el resumen en una plantilla de correo electrónico en Claude Code.
// Claude Code prompt
> Using the brief from outbound-research for {prospect_name} at {company}, draft a 3-sentence cold email referencing the most recent specific signal.Paso 4: Cola para envío
Guarde borradores en la API de Gmail o en una carpeta de revisión.
// ~/.claude/skills/queue-draft.md
After drafting, call the Gmail create_draft tool to queue for human review.Paso 5: Ejecutar según un cronograma
Un cron o una acción de GitHub activa el agente para cada nuevo cliente potencial.
# cron
0 9 * * * cd ~/projects/outbound && claude-code run ./agent.mdEjemplo en Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def research(prospect):
queries = [
f'"{prospect["company"]}" news',
f'site:linkedin.com/posts "{prospect["name"]}"',
f'{prospect["industry"]} pain points'
]
out = []
for q in queries:
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': q, 'num_results': 3})
out.append(r.json().get('organic_results', []))
return out
print(research({'name': 'Jane Doe', 'company': 'Acme', 'industry': 'saas'}))Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function research(prospect) {
const queries = [`"${prospect.company}" news`, `site:linkedin.com/posts "${prospect.name}"`];
const out = [];
for (const q of queries) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query: q, num_results: 3 })
});
out.push(((await r.json()).organic_results || []).slice(0, 3));
}
return out;
}Salida esperada
Per-prospect research brief + email draft in Gmail drafts ready for human send. Typical run: 45s per prospect, $0.02 in Scavio credits.