Overview
Sales teams score leads based on firmographic data alone, missing the rich signal available from search results. A company that is actively discussed on Reddit, has YouTube tutorials about their product, and ranks well on Google is a very different lead than one with no online presence. This workflow takes each new lead, searches Google for company info, Reddit for community mentions, and YouTube for video content, then computes a composite score based on online presence strength. Higher-signal leads get prioritized for outreach.
Trigger
New lead added to CRM or pipeline
Schedule
On new lead (event-driven)
Workflow Steps
Search Google for company
Query Google for the lead's company name and domain. Extract result count, snippet quality, and AI Overview presence.
Search Reddit for mentions
Query Reddit for the company name. Count discussion threads, extract sentiment signals from titles and snippets.
Search YouTube for content
Query YouTube for the company name. Count videos, check for official channel presence, and note tutorial content.
Compute composite score
Weight signals from all three platforms into a 0-100 score. Google presence (40%), Reddit engagement (30%), YouTube content (30%).
Rank and export
Sort leads by composite score. Export the ranked list with per-platform signal breakdown for the sales team.
Python Implementation
import requests, os, json
H = {"x-api-key": os.environ["SCAVIO_API_KEY"]}
LEADS = [
{"name": "TechStartup Inc", "domain": "techstartup.io"},
{"name": "DataPipe Labs", "domain": "datapipe.dev"},
{"name": "CloudSync Pro", "domain": "cloudsync.pro"},
]
def search_platform(query, platform):
"""Search a platform and return organic results."""
r = requests.post("https://api.scavio.dev/api/v1/search", headers=H,
json={"platform": platform, "query": query}, timeout=10).json()
return r.get("organic", [])
def score_lead(lead):
"""Score a lead based on multi-platform search signals."""
# Google signals
google_results = search_platform(f"{lead['name']} {lead['domain']}", "google")
google_score = min(len(google_results), 10) * 4 # Max 40
# Reddit signals
reddit_results = search_platform(lead["name"], "reddit")
reddit_score = min(len(reddit_results), 10) * 3 # Max 30
# YouTube signals
youtube_results = search_platform(lead["name"], "youtube")
youtube_score = min(len(youtube_results), 10) * 3 # Max 30
composite = google_score + reddit_score + youtube_score
return {
"name": lead["name"],
"domain": lead["domain"],
"google_results": len(google_results),
"reddit_mentions": len(reddit_results),
"youtube_videos": len(youtube_results),
"google_score": google_score,
"reddit_score": reddit_score,
"youtube_score": youtube_score,
"composite_score": composite,
"tier": "A" if composite >= 70 else "B" if composite >= 40 else "C"
}
scored = []
for lead in LEADS:
result = score_lead(lead)
scored.append(result)
print(f"[{result['tier']}] {result['name']} | Score: {result['composite_score']}/100")
print(f" Google: {result['google_results']} results ({result['google_score']}pts)")
print(f" Reddit: {result['reddit_mentions']} mentions ({result['reddit_score']}pts)")
print(f" YouTube: {result['youtube_videos']} videos ({result['youtube_score']}pts)")
scored.sort(key=lambda x: x["composite_score"], reverse=True)
print(f"\nRanked {len(scored)} leads. Top: {scored[0]['name']} ({scored[0]['composite_score']}/100)")JavaScript Implementation
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
const LEADS = [
{name: "TechStartup Inc", domain: "techstartup.io"},
{name: "DataPipe Labs", domain: "datapipe.dev"},
{name: "CloudSync Pro", domain: "cloudsync.pro"},
];
async function searchPlatform(query, platform) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform, query})
}).then(r => r.json());
return r.organic || [];
}
async function scoreLead(lead) {
const google = await searchPlatform(`${lead.name} ${lead.domain}`, "google");
const reddit = await searchPlatform(lead.name, "reddit");
const youtube = await searchPlatform(lead.name, "youtube");
const googleScore = Math.min(google.length, 10) * 4;
const redditScore = Math.min(reddit.length, 10) * 3;
const youtubeScore = Math.min(youtube.length, 10) * 3;
const composite = googleScore + redditScore + youtubeScore;
return {
name: lead.name, domain: lead.domain,
googleResults: google.length, redditMentions: reddit.length, youtubeVideos: youtube.length,
googleScore, redditScore, youtubeScore, compositeScore: composite,
tier: composite >= 70 ? "A" : composite >= 40 ? "B" : "C"
};
}
(async () => {
const scored = [];
for (const lead of LEADS) {
const result = await scoreLead(lead);
scored.push(result);
console.log(`[${result.tier}] ${result.name} | Score: ${result.compositeScore}/100`);
console.log(` Google: ${result.googleResults} results (${result.googleScore}pts)`);
console.log(` Reddit: ${result.redditMentions} mentions (${result.redditScore}pts)`);
console.log(` YouTube: ${result.youtubeVideos} videos (${result.youtubeScore}pts)`);
}
scored.sort((a, b) => b.compositeScore - a.compositeScore);
console.log(`\nRanked ${scored.length} leads. Top: ${scored[0].name} (${scored[0].compositeScore}/100)`);
})();Platforms Used
Web search with knowledge graph, PAA, and AI overviews
Community, posts & threaded comments from any subreddit
YouTube
Video search with transcripts and metadata