Overview
This workflow generates a comprehensive weekly marketing intelligence report by scanning competitor activity across Google, YouTube, Reddit, and TikTok. It tracks new content, brand mentions, sentiment shifts, and trending topics in your market. The output is a structured report that feeds into Monday morning strategy meetings.
Trigger
Cron schedule (every Sunday at 11 PM UTC)
Schedule
Runs every Sunday at 11 PM UTC
Workflow Steps
Load competitor and keyword list
Read monitored competitors, brands, and market keywords from configuration.
Scan Google for competitor content
Search Google for each competitor domain to find new pages, blog posts, and landing pages.
Check YouTube for new videos
Search YouTube for competitor brand names and market keywords to find new video content.
Monitor Reddit discussions
Search Reddit for brand mentions and market topic discussions from the past week.
Scan TikTok trends
Check TikTok for trending content in your market vertical.
Compile and distribute report
Aggregate all findings into a structured weekly report and send to the team.
Python Implementation
import requests
import json
from datetime import datetime
from pathlib import Path
API_KEY = "your_scavio_api_key"
TIKTOK_URL = "https://api.scavio.dev/api/v1/tiktok"
SEARCH_URL = "https://api.scavio.dev/api/v1/search"
COMPETITORS = ["competitor-one.com", "competitor-two.com"]
MARKET_KEYWORDS = ["your market keyword", "your niche term"]
BRAND_KEYWORDS = ["your brand", "competitor brand"]
def search(platform: str, query: str) -> list[dict]:
res = requests.post(
SEARCH_URL,
headers={"x-api-key": API_KEY},
json={"platform": platform, "query": query},
timeout=15,
)
res.raise_for_status()
return res.json().get("organic", [])
def scan_tiktok(keyword: str) -> list[dict]:
res = requests.post(
f"{TIKTOK_URL}/hashtag",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"hashtag": keyword.replace(" ", "")},
timeout=15,
)
if res.status_code == 200:
return res.json().get("videos", [])[:5]
return []
def run():
report = {
"week_ending": datetime.utcnow().strftime("%Y-%m-%d"),
"competitor_google": {},
"youtube_content": [],
"reddit_mentions": [],
"tiktok_trends": [],
}
# Google competitor scan
for domain in COMPETITORS:
results = search("google", f"site:{domain}")
report["competitor_google"][domain] = {
"new_pages_found": len(results),
"top_pages": [{"title": r.get("title", ""), "link": r.get("link", "")} for r in results[:5]],
}
# YouTube scan
for kw in MARKET_KEYWORDS:
videos = search("youtube", kw)
report["youtube_content"].extend([{
"keyword": kw,
"title": v.get("title", ""),
"channel": v.get("channel", ""),
"views": v.get("views", 0),
} for v in videos[:3]])
# Reddit scan
for kw in BRAND_KEYWORDS:
posts = search("reddit", kw)
report["reddit_mentions"].extend([{
"keyword": kw,
"title": p.get("title", ""),
"subreddit": p.get("subreddit", ""),
"score": p.get("score", 0),
} for p in posts[:5]])
# TikTok scan
for kw in MARKET_KEYWORDS:
videos = scan_tiktok(kw)
report["tiktok_trends"].extend([{
"keyword": kw,
"views": v.get("views", 0),
"creator": v.get("creator", ""),
} for v in videos])
output = Path(f"intel_report_{report['week_ending']}.json")
output.write_text(json.dumps(report, indent=2))
print(f"Weekly intel report generated:")
print(f" Competitors scanned: {len(COMPETITORS)}")
print(f" YouTube videos found: {len(report['youtube_content'])}")
print(f" Reddit mentions: {len(report['reddit_mentions'])}")
print(f" TikTok trends: {len(report['tiktok_trends'])}")
if __name__ == "__main__":
run()JavaScript Implementation
const API_KEY = "your_scavio_api_key";
const SEARCH_URL = "https://api.scavio.dev/api/v1/search";
const TIKTOK_URL = "https://api.scavio.dev/api/v1/tiktok";
const COMPETITORS = ["competitor-one.com", "competitor-two.com"];
const MARKET_KEYWORDS = ["your market keyword", "your niche term"];
const BRAND_KEYWORDS = ["your brand", "competitor brand"];
async function search(platform, query) {
const res = await fetch(SEARCH_URL, {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform, query }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
return (await res.json()).organic ?? [];
}
async function scanTiktok(keyword) {
const res = await fetch(`${TIKTOK_URL}/hashtag`, {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({ hashtag: keyword.replace(/ /g, "") }),
});
if (!res.ok) return [];
return ((await res.json()).videos ?? []).slice(0, 5);
}
async function run() {
const fs = await import("fs/promises");
const report = {
weekEnding: new Date().toISOString().slice(0, 10),
competitorGoogle: {},
youtubeContent: [],
redditMentions: [],
tiktokTrends: [],
};
for (const domain of COMPETITORS) {
const results = await search("google", `site:${domain}`);
report.competitorGoogle[domain] = {
newPagesFound: results.length,
topPages: results.slice(0, 5).map((r) => ({ title: r.title ?? "", link: r.link ?? "" })),
};
}
for (const kw of MARKET_KEYWORDS) {
const videos = await search("youtube", kw);
report.youtubeContent.push(...videos.slice(0, 3).map((v) => ({
keyword: kw, title: v.title ?? "", channel: v.channel ?? "", views: v.views ?? 0,
})));
}
for (const kw of BRAND_KEYWORDS) {
const posts = await search("reddit", kw);
report.redditMentions.push(...posts.slice(0, 5).map((p) => ({
keyword: kw, title: p.title ?? "", subreddit: p.subreddit ?? "", score: p.score ?? 0,
})));
}
for (const kw of MARKET_KEYWORDS) {
const videos = await scanTiktok(kw);
report.tiktokTrends.push(...videos.map((v) => ({
keyword: kw, views: v.views ?? 0, creator: v.creator ?? "",
})));
}
await fs.writeFile(`intel_report_${report.weekEnding}.json`, JSON.stringify(report, null, 2));
console.log("Weekly intel report generated:");
console.log(` Competitors: ${COMPETITORS.length} | YouTube: ${report.youtubeContent.length} | Reddit: ${report.redditMentions.length} | TikTok: ${report.tiktokTrends.length}`);
}
run();Platforms Used
Web search with knowledge graph, PAA, and AI overviews
YouTube
Video search with transcripts and metadata
Community, posts & threaded comments from any subreddit
TikTok
Trending video, creator, and product discovery