Les commentaires sur les publications LinkedIn de niches sectorielles sont le signal d'intention le plus élevé que la plupart des SDR ignorent. Ce tutoriel récupère les commentateurs d'une publication cible, enrichit chacun avec des recherches Scavio SERP pour l'entreprise, le poste et l'activité récente, puis les score pour l'intention d'achat.
Prérequis
- Python 3.10+
- Une clé API Scavio
- Une URL de publication LinkedIn avec des commentateurs cibles
- Le point de terminaison des commentaires LinkedIn de Scavio
Parcours
Étape 1: Extraire les commentaires de la publication cible
Le point de terminaison LinkedIn de Scavio renvoie les commentateurs avec leurs noms et titres.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def comments(post_url):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'linkedin', 'query': post_url})
return r.json().get('comments', [])Étape 2: Enrichir chaque commentateur via SERP
Rechercher le profil LinkedIn + actualités récentes de l'entreprise.
def enrich(person):
serp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': f'"{person["name"]}" "{person.get("company", "")}"', 'num_results': 5})
return serp.json().get('organic_results', [])Étape 3: Scorer l'intention d'achat
Points pour le poste du commentateur (VP+), taille de l'entreprise (correspond à l'ICP), signal d'embauche récent.
def score(person, enrichment):
s = 0
if any(kw in person.get('headline', '').lower() for kw in ['ceo', 'founder', 'vp', 'head']): s += 3
if any('hiring' in r.get('snippet', '').lower() for r in enrichment): s += 2
return sÉtape 4: Filtrer pour le haut de gamme
Ne transmettre que les scores >= 4 à la file d'attente des SDR.
def qualified(people, threshold=4):
return [p for p in people if p['score'] >= threshold]Étape 5: Écrire dans HubSpot ou CSV
Pousser chaque commentateur qualifié.
import csv
def export(people):
with open('linkedin_intent.csv', 'w') as f:
w = csv.DictWriter(f, fieldnames=['name', 'company', 'headline', 'score'])
w.writeheader(); w.writerows(people)Exemple Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
POST = 'https://linkedin.com/posts/example_post'
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'linkedin', 'query': POST})
for c in r.json().get('comments', [])[:10]:
e = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': f'"{c["name"]}"'}).json()
print(c['name'], '-', e.get('organic_results', [{}])[0].get('title', ''))Exemple JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
const POST = 'https://linkedin.com/posts/example_post';
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ platform: 'linkedin', query: POST })
});
const { comments } = await r.json();
for (const c of comments.slice(0, 10)) {
const e = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query: `"${c.name}"` })
});
console.log(c.name, (await e.json()).organic_results?.[0]?.title);
}Sortie attendue
Per-commenter enriched row with score. Typical post with 80 comments yields 8-15 qualified leads in under 3 minutes.