Aperçu
Chaque semaine, recherchez vos mots-clés cibles, comparez le contenu le mieux classé avec vos pages existantes, identifiez les sujets que vous n'avez pas couverts et produisez une liste priorisée des lacunes pour la planification de contenu.
Déclencheur
Tous les vendredis à 15h00 UTC
Planification
Tous les vendredis à 15h00 UTC
Étapes du workflow
Rechercher les mots-clés cibles
Interrogez le SERP Google pour chaque mot-clé de votre stratégie de contenu.
Extraire les sujets des concurrents
Collectez les titres et en-têtes des 10 premiers résultats.
Comparer avec le contenu existant
Faire correspondre les sujets des concurrents à votre bibliothèque de contenu publié.
Identifier les lacunes
Les sujets que les concurrents couvrent et que vous ne couvrez pas.
Prioriser par intention de recherche
Classer les lacunes par proxy de volume de mots-clés (nombre de PAA, profondeur des résultats).
Implémentation 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}")Implémentation 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`);Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA