Un hilo de r/MarketingandAI se quejó de que los agentes de marketing de IA "reorganizan las mismas limitaciones". La solución es separar la capa de datos de la capa de orquestación. Este tutorial conecta a Scavio como la capa de datos de un agente de investigación de mercados.
Requisitos previos
- Python 3.10+
- Clave API de Scavio
- Clave antrópica u OpenAI
Guia paso a paso
Paso 1: Definir competidor + conjunto de temas
5-10 competidores, 5-15 temas.
COMPETITORS = ['firecrawl', 'tavily', 'serper']
TOPICS = ['mcp server', 'ai agent search', 'web scraping 2026']Paso 2: Resumen diario de la competencia
SERP + Reddit + YouTube por competidor.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
H = {'x-api-key': API_KEY}
def competitor_digest(name):
return {
'serp': requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'query': name}).json(),
'reddit': requests.post('https://api.scavio.dev/api/v1/reddit/search', headers=H, json={'query': name}).json(),
'youtube': requests.post('https://api.scavio.dev/api/v1/youtube/search', headers=H, json={'query': name}).json(),
}Paso 3: Seguimiento de la visibilidad a nivel de tema
¿Dónde se presenta cada competidor?
def topic_share(topic):
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H, json={'query': topic, 'include_ai_overview': True}).json()
return rPaso 4: Breve composición de LLM
Claude convierte datos sin procesar en un resumen de 200 palabras.
import anthropic
client = anthropic.Anthropic()
def brief(competitor, data):
msg = client.messages.create(model='claude-sonnet-4-6', max_tokens=400,
messages=[{'role':'user','content':f'200-word competitor brief on {competitor}: {str(data)[:6000]}'}])
return msg.content[0].textPaso 5: Horario semanal
n8n cron o crontab simple.
# 0 8 * * 1 /usr/bin/python /path/to/marketing.pyEjemplo en Python
# Weekly run: 10 competitors × 3 surfaces + 15 topics = 45 credits = $0.19. Negligible at the Project tier.Ejemplo en JavaScript
// TS version uses the Anthropic SDK.Salida esperada
Weekly digest with per-competitor 200-word brief plus topic-level visibility share. Drops into Slack or email.