Los equipos B2B que venden a corredurías de bienes raíces necesitan nuevas señales: movimientos de corretaje, puestos de contratación, comentarios del mercado. El acceso directo a la MLS es cerrado y costoso. Public SERP plus Reddit cubre el 80% de la misma señal a una fracción del costo. Este tutorial recorre la compilación de Claude Code de dos días que llegó a Reddit en 2026.
Requisitos previos
- Python 3.10+
- Una clave API de Scavio
- Clave API antrópica para Claude Code
Guia paso a paso
Paso 1: Definir mercado y práctica
Parametrizar ciudad más zona de práctica.
def query_for(city, practice):
return f'{practice} brokerages {city} 2026 hiring OR new listings'Paso 2: Ejecute el descubrimiento SERP
Los 25 principales resultados orgánicos más noticias sobre corretaje.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def discover(query):
r = requests.post('https://api.scavio.dev/api/v1/google',
headers={'x-api-key': API_KEY},
json={'query': query, 'num_results': 25})
return r.json().get('organic_results', [])Paso 3: Señal de Reddit por mercado
Búsqueda en Reddit de hilos de contratación y reseñas.
def reddit_signal(city, practice):
r = requests.post('https://api.scavio.dev/api/v1/reddit/search',
headers={'x-api-key': API_KEY},
json={'query': f'{city} {practice} brokerage'})
return r.json().get('posts', [])[:10]Paso 4: Extraer páginas de contacto
Utilice el punto final de extracción de Scavio en cada sitio candidato.
def contacts(url):
r = requests.post('https://api.scavio.dev/api/v1/extract',
headers={'x-api-key': API_KEY}, json={'url': url})
return r.json().get('content', '')Paso 5: Puntuación y clasificación
Claude califica a cada prospecto según su actualidad y su idoneidad.
import anthropic
client = anthropic.Anthropic()
def score(prospect):
msg = client.messages.create(
model='claude-sonnet-4-6', max_tokens=200,
messages=[{'role':'user','content':f'Score 1-10 fit: {prospect}'}])
return msg.content[0].textPaso 6: Resumen de correo electrónico
Los 25 mejores prospectos con una justificación de una sola línea.
# SMTP wiring left to reader; output is markdown digest.Ejemplo en Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def daily_engine(city, practice):
serp = requests.post('https://api.scavio.dev/api/v1/google',
headers={'x-api-key': API_KEY},
json={'query': f'{practice} brokerages {city} 2026'}).json()
rdt = requests.post('https://api.scavio.dev/api/v1/reddit/search',
headers={'x-api-key': API_KEY},
json={'query': f'{city} {practice} brokerage'}).json()
return {'prospects': serp.get('organic_results',[])[:25], 'signal': rdt.get('posts',[])[:10]}
print(daily_engine('austin', 'commercial'))Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function dailyEngine(city, practice) {
const [serp, rdt] = await Promise.all([
fetch('https://api.scavio.dev/api/v1/google', { method:'POST', headers:{'x-api-key':API_KEY,'Content-Type':'application/json'}, body: JSON.stringify({ query: `${practice} brokerages ${city} 2026` }) }).then(r => r.json()),
fetch('https://api.scavio.dev/api/v1/reddit/search', { method:'POST', headers:{'x-api-key':API_KEY,'Content-Type':'application/json'}, body: JSON.stringify({ query: `${city} ${practice} brokerage` }) }).then(r => r.json())
]);
return { serp, rdt };
}Salida esperada
Daily morning email with top 25 brokerage prospects per market, scored by Claude on recency and fit. Reddit signal flags hiring threads and brokerage reviews.