Resumen
Un pipeline diario que extrae datos en vivo de la SERP de Google y de Reddit para tus temas objetivo, alimenta esa señal real a un LLM y produce esquemas y borradores anclados, en lugar de dejar que el modelo invente keywords long-tail como 'platos de cerámica de fabricación lenta'. Construido sobre los endpoints de Google y Reddit de Scavio para que cada borrador quede anclado a lo que de verdad posiciona hoy.
Desencadenador
A diario a las 6 AM UTC vía cron
Programación
A diario a las 6 AM UTC
Pasos del flujo de trabajo
Carga los temas objetivo de hoy
Lee una lista de temas objetivo o head keywords desde un archivo de configuración o una base de datos. Mantenla pequeña e intencionada: 5 a 15 temas al día baten a una manguera de páginas flojas. Cada tema se convierte en un borrador anclado.
Extrae la SERP en vivo para cada tema
Haz un POST de cada tema a https://api.scavio.dev/api/v1/google con light_request:false (2 créditos). La respuesta trae resultados orgánicos, el knowledge_graph, related_searches y el bloque questions (People Also Ask): la señal real de long-tail y entidades en torno a la que el LLM debe escribir, no adivinar.
Añade la capa de ángulos de Reddit
Llama a /api/v1/reddit/search (2 créditos) para el mismo tema y extrae hilos y puntuaciones. Reddit revela el fraseo real, las objeciones y las subpreguntas que usa la gente de verdad: el ángulo que hace que un borrador suene a escrito por una persona en lugar de a un modelo rellenando palabras.
Construye un brief anclado
Monta un brief que entregue al LLM las preguntas reales de PAA, las búsquedas relacionadas, los títulos de los competidores top y los ángulos de Reddit como restricciones. La instrucción del prompt es explícita: usa solo las keywords y entidades presentes en este brief; no inventes términos. Este es el paso que frena el problema del long-tail basura.
Redacta y luego pasa por una revisión humana
Genera el esquema y el borrador a partir del brief anclado. No publiques en automático. La forma más rápida de hundir un sitio es publicar texto de IA sin revisar a volumen, así que pon cada borrador en cola para un repaso humano antes de que salga en vivo. La IA es buena generando cosas para que las revises, no decidiendo qué es cierto.
Implementacion en Python
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
BASE = "https://api.scavio.dev/api/v1"
def grounded_brief(topic):
serp = requests.post(f"{BASE}/google", headers=H,
json={"query": topic, "light_request": False}).json().get("data", {})
reddit = requests.post(f"{BASE}/reddit/search", headers=H,
json={"query": topic, "limit": 15}).json().get("data", {})
return {
"topic": topic,
"paa": serp.get("questions", []),
"related": serp.get("related_searches", []),
"competitor_titles": [r.get("title") for r in serp.get("organic", [])[:10]],
"reddit_angles": [p.get("title") for p in reddit.get("posts", [])[:10]],
}
TOPICS = ["best serp api for agents", "how to ground an llm", "tiktok analytics api"]
for t in TOPICS:
brief = grounded_brief(t)
# hand brief to your LLM with: "use only the keywords and entities in this brief"
print(t, "->", len(brief["paa"]), "PAA,", len(brief["reddit_angles"]), "reddit angles")Implementacion en JavaScript
const H = { Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`, 'Content-Type': 'application/json' };
const BASE = 'https://api.scavio.dev/api/v1';
async function groundedBrief(topic) {
const [serpRes, redditRes] = await Promise.all([
fetch(`${BASE}/google`, { method: 'POST', headers: H, body: JSON.stringify({ query: topic, light_request: false }) }).then(r => r.json()),
fetch(`${BASE}/reddit/search`, { method: 'POST', headers: H, body: JSON.stringify({ query: topic, limit: 15 }) }).then(r => r.json()),
]);
const serp = serpRes.data || {}, reddit = redditRes.data || {};
return {
topic,
paa: serp.questions || [],
related: serp.related_searches || [],
competitorTitles: (serp.organic || []).slice(0, 10).map(r => r.title),
redditAngles: (reddit.posts || []).slice(0, 10).map(p => p.title),
};
}
for (const t of ['best serp api for agents', 'how to ground an llm']) {
groundedBrief(t).then(b => console.log(t, '->', b.paa.length, 'PAA,', b.redditAngles.length, 'angles'));
}Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit