Overview
Monitors your LinkedIn posts for comments, filters high-intent signals (questions, problem statements), enriches the commenter via Scavio public SERP, and drafts a cold email referencing their specific comment. Replaces manual LinkedIn-to-CRM copy-paste with a 60-second pipeline.
Trigger
Webhook on new LinkedIn comment (via Unipile or Phantombuster)
Schedule
Webhook-triggered, near real-time
Workflow Steps
Ingest comment payload
Webhook receives {commenter, comment_text, post_url} from LinkedIn listener.
Buyer intent classifier
LLM scores comment for question intent, problem statement, or buying signal (0-10).
Gate on score >= 7
Low-intent comments dropped; high-intent continues the pipeline.
Scavio public SERP enrichment
Search commenter's name plus company to confirm title and recent activity.
Draft cold email
LLM writes a 4-line email opening with the commenter's comment quoted back.
Push to Instantly
Upsert lead + draft into Instantly campaign for human review.
Python Implementation
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY}
def enrich(name, company):
r = requests.post("https://api.scavio.dev/api/v1/search",
headers=H, json={"query": f'"{name}" "{company}"'}).json()
return r.get("organic_results", [])[:5]
def handle_comment(payload):
text = payload["comment"]
score = 8 # LLM scored intent
if score < 7: return None
results = enrich(payload["name"], payload["company"])
return {"lead": payload["name"], "signal": results[0] if results else None}
print(handle_comment({"name": "Jane Doe", "company": "Acme", "comment": "How do you handle this?"}))JavaScript Implementation
const API_KEY = process.env.SCAVIO_API_KEY;
const H = { "x-api-key": API_KEY, "content-type": "application/json" };
async function enrich(name, company) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({ query: '"' + name + '" "' + company + '"' })
}).then(r => r.json());
return (r.organic_results || []).slice(0, 5);
}
async function handle(payload) {
const score = 8;
if (score < 7) return null;
const results = await enrich(payload.name, payload.company);
return { lead: payload.name, signal: results[0] || null };
}
console.log(await handle({ name: "Jane Doe", company: "Acme", comment: "How do you handle this?" }));Platforms Used
Web search with knowledge graph, PAA, and AI overviews
Community, posts & threaded comments from any subreddit