Overview
Brands get mentioned across Google search, Reddit threads, YouTube videos, TikTok posts, and Amazon reviews. Monitoring all platforms manually is impossible. Enterprise tools charge $500+/month. This workflow uses Scavio to scan all platforms daily for brand mentions and delivers a unified digest.
Trigger
Daily at 9 AM for the marketing team.
Schedule
Daily
Workflow Steps
Load Brand Keywords
Read the list of brand names, product names, and branded hashtags to monitor.
Search Each Platform
For each brand keyword, search Google, Reddit, YouTube, TikTok, and Amazon via Scavio API.
Classify Mentions
Classify each mention as positive, negative, or neutral based on snippet context.
Deduplicate and Prioritize
Remove duplicate mentions, prioritize high-engagement or negative mentions.
Send Daily Digest
Format mentions into a daily digest grouped by platform and sentiment. Send to Slack or email.
Python Implementation
import requests, os, json
from datetime import datetime
API_KEY = os.environ["SCAVIO_API_KEY"]
HS = {"x-api-key": API_KEY, "Content-Type": "application/json"}
HT = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
PLATFORMS = ["google", "reddit", "youtube", "amazon"]
def search_platform(brand: str, platform: str) -> list:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=HS,
json={"query": brand, "platform": platform, "country_code": "us"},
timeout=10,
)
data = resp.json()
key = "video_results" if platform == "youtube" else "organic_results"
return [{"title": r.get("title", ""), "url": r.get("link", ""), "snippet": r.get("snippet", ""), "platform": platform}
for r in data.get(key, [])[:5]]
def search_tiktok(brand: str) -> list:
resp = requests.post(
"https://api.scavio.dev/api/v1/tiktok/search",
headers=HT,
json={"keyword": brand},
timeout=15,
)
return [{"title": v.get("desc", "")[:80], "url": f"https://tiktok.com/@{v.get('author', {}).get('unique_id', '')}", "platform": "tiktok",
"plays": v.get("stats", {}).get("play_count", 0)}
for v in resp.json().get("videos", [])[:5]]
def daily_brand_monitor(brands: list) -> dict:
all_mentions = []
for brand in brands:
for platform in PLATFORMS:
all_mentions.extend(search_platform(brand, platform))
all_mentions.extend(search_tiktok(brand))
return {
"date": datetime.now().strftime("%Y-%m-%d"),
"total_mentions": len(all_mentions),
"by_platform": {p: len([m for m in all_mentions if m["platform"] == p]) for p in PLATFORMS + ["tiktok"]},
"top_mentions": all_mentions[:20],
}
report = daily_brand_monitor(["scavio"])
print(f"Date: {report['date']}, Total mentions: {report['total_mentions']}")
for platform, count in report["by_platform"].items():
print(f" {platform}: {count} mentions")JavaScript Implementation
const HS = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const HT = {'Authorization': 'Bearer '+process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const PLATFORMS = ['google','reddit','youtube','amazon'];
async function searchPlatform(brand, platform) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:HS, body:JSON.stringify({query:brand, platform, country_code:'us'})});
const d = await r.json();
const key = platform==='youtube' ? 'video_results' : 'organic_results';
return (d[key]||[]).slice(0,5).map(r=>({title:r.title||'', url:r.link||'', snippet:r.snippet||'', platform}));
}
async function searchTiktok(brand) {
const r = await fetch('https://api.scavio.dev/api/v1/tiktok/search', {method:'POST', headers:HT, body:JSON.stringify({keyword:brand})});
return ((await r.json()).videos||[]).slice(0,5).map(v=>({title:(v.desc||'').slice(0,80), url:'https://tiktok.com/@'+(v.author?.unique_id||''), platform:'tiktok', plays:v.stats?.play_count||0}));
}
async function dailyBrandMonitor(brands) {
const mentions = [];
for (const brand of brands) {
for (const p of PLATFORMS) mentions.push(...await searchPlatform(brand, p));
mentions.push(...await searchTiktok(brand));
}
const byPlatform = {};
for (const m of mentions) byPlatform[m.platform] = (byPlatform[m.platform]||0) + 1;
return {date:new Date().toISOString().slice(0,10), totalMentions:mentions.length, byPlatform, topMentions:mentions.slice(0,20)};
}
const report = await dailyBrandMonitor(['scavio']);
console.log('Date: '+report.date+', Total: '+report.totalMentions);
for (const [p,c] of Object.entries(report.byPlatform)) console.log(' '+p+': '+c);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
Amazon
Product search with prices, ratings, and reviews
TikTok
Trending video, creator, and product discovery