Resumen
Semanal, search your palabras clave objetivo, comparar top-ranking contenido contra your existing paginas, identificar topics you tienen no covered, y salida un prioritized gap lista for contenido planning.
Desencadenador
Semanal Friday at 3 PM UTC
Programación
Semanal Friday at 3 PM UTC
Pasos del flujo de trabajo
Search palabras clave objetivo
Consulta Google SERP for cada palabra clave in your estrategia de contenidos.
Extraer competidor topics
Recopilar titles y headings de top 10 resultados.
Comparar to existing contenido
Match competidor topics contra your published contenido library.
Identificar gaps
Topics competidores cover ese you do no.
Priorizar by intencion de busqueda
Clasificar gaps by palabra clave volume proxy (PAA conteo, resultado depth).
Implementacion en Python
import requests, os
H = {"x-api-key": os.environ["SCAVIO_API_KEY"]}
MY_PAGES = ["crm comparison", "crm for startups", "crm pricing"] # your existing slugs/topics
def find_gaps(keyword):
data = requests.post("https://api.scavio.dev/api/v1/search",
headers=H, json={"platform": "google", "query": keyword}).json()
competitor_topics = set()
for r in data.get("organic_results", [])[:10]:
competitor_topics.add(r.get("title", "").lower())
paa = [q.get("question", "").lower() for q in data.get("people_also_ask", [])]
competitor_topics.update(paa)
gaps = [t for t in competitor_topics if not any(p in t for p in MY_PAGES)]
return gaps
all_gaps = []
for kw in ["best crm tools 2026", "crm software comparison"]:
all_gaps.extend(find_gaps(kw))
print(f"Found {len(all_gaps)} content gaps:")
for gap in all_gaps[:10]:
print(f" - {gap}")Implementacion en JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
const myPages = ["crm comparison", "crm pricing"];
const gaps = [];
for (const kw of ["best crm 2026"]) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H, body: JSON.stringify({platform: "google", query: kw})
});
const data = await r.json();
const topics = (data.organic_results || []).map(r => r.title?.toLowerCase());
const paa = (data.people_also_ask || []).map(p => p.question?.toLowerCase());
[...topics, ...paa].forEach(t => {
if (t && !myPages.some(p => t.includes(p))) gaps.push(t);
});
}
console.log(`${gaps.length} content gaps found`);Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA