From meta-skills
Scans YouTube, TikTok, X, Reddit for top content by engagement, views, likes. Finds viral patterns, hooks, gaps for keyword/niche research before content creation.
npx claudepluginhub affitor/affiliate-skills --plugin meta-skillsThis skill uses the workspace's default tool permissions.
Scan YouTube, TikTok, X, and Reddit for top-performing content by real engagement data.
Tracks and analyzes content performance across Instagram, YouTube, LinkedIn, Twitter/X, Reddit using anysite MCP. Measures engagement metrics, identifies top posts, benchmarks strategies.
Find what your audience is searching for right now — scout X/Twitter and Reddit for trending topics, discover and deep-analyze competitors, and find content gaps. Combine social signals with SEO intelligence. Powered by Citedy.
Ranks content angles by engagement data, competition level, and platform fit for keywords or products. Prioritizes ideas after trending-content-scout using weighted scores for optimal content selection.
Share bugs, ideas, or general feedback.
Scan YouTube, TikTok, X, and Reddit for top-performing content by real engagement data. Find winning formats, hooks, and content gaps — before you create anything. Stop guessing what works. See what's already winning, then build on proven patterns.
This skill is the data foundation for the entire content pipeline. Run it first,
then feed its output into content-angle-ranker, viral-post-writer, tiktok-script-writer,
or any S2/S3 content skill.
This skill belongs to Stage S1: Research
keyword: string # (required) Search keyword — "AI video tools", "email marketing tips"
platforms: string[] # (optional, default: ["youtube", "tiktok"])
# Options: "youtube" | "tiktok" | "x" | "reddit"
sort_by: string # (optional, default: "engagement_score")
# Options: "views" | "likes" | "engagement_score" | "recency"
time_range: string # (optional, default: "30d") "7d" | "30d" | "90d" | "all"
limit: number # (optional, default: 20) Max content pieces to analyze
product: object # (optional) Specific product to focus on
name: string # "HeyGen"
url: string # "https://heygen.com"
No api_config needed in input — skills auto-detect configuration from conversation
context, project settings, or CLAUDE.md. See shared/references/social-data-providers.md
for setup instructions.
Check if the user has API configuration available:
IF social_data_config exists in context/settings for a platform:
→ Use configured API for that platform
→ Structured data: exact views, likes, comments, shares
ELSE (default — no API):
→ Use web_search + web_fetch
→ Still effective — see fallback methods below
API mode (when configured):
For each platform in platforms:
See shared/references/social-data-providers.md for specific API endpoints and config.
web_search fallback (no API — default):
For YouTube:
web_search "[keyword] site:youtube.com" → top 10-15 video results
For each result: extract title, channel, view count from search snippet
Optional: web_fetch individual video pages for likes/comments (slower)
For TikTok:
web_search "[keyword] tiktok" → find popular TikTok content
web_search "[keyword] site:tiktok.com" → direct TikTok results
Extract: titles, creators, approximate view counts from snippets
For X:
web_search "[keyword] site:x.com" OR "[keyword] site:twitter.com" → top tweets
Extract: tweet text, author, engagement signals from snippets
For Reddit:
web_search "[keyword] site:reddit.com" → top Reddit discussions
web_fetch top results → extract upvotes, comments from page
web_search "reddit [keyword] top upvoted" → find popular threads
Note which data source was used — include in output for transparency.
For each content piece found, extract and normalize into a standard schema:
ContentItem:
title: string # Video title, tweet text (first line), post title
url: string # Direct link to content
platform: string # "youtube" | "tiktok" | "x" | "reddit"
creator: string # Channel name, @handle, username
views: number # View/impression count (0 if unavailable)
likes: number # Like/upvote count (0 if unavailable)
comments: number # Comment/reply count (0 if unavailable)
shares: number # Share/retweet count (0 if unavailable)
published_date: string # ISO date or relative ("3 days ago")
duration: string # Video duration ("2:34") — video only
engagement_score: number # Calculated — see formula below
content_format: string # Detected format (see classification below)
hook_type: string # Detected hook style (see classification below)
Engagement Score Formula (consistent across all Affitor skills):
engagement_score = (likes × 2 + comments × 3 + shares × 5) / max(views, 1) × 1000
Platform-specific adjustments:
(score × 2 + num_comments × 3) / max(score, 1) × 1000 (no share count)comments × 0.5 (not available via most APIs)views as the ranking signal and note that engagement_score is estimatedSee shared/references/social-data-providers.md for full formula documentation.
Content Format Classification:
Detect format from title and description:
Hook Type Classification:
Detect from first sentence/title:
Sort all collected content by the chosen sort_by parameter:
Take top limit results after sorting.
From the top content, extract actionable patterns:
Format Analysis:
For each content_format in top results:
count: how many of top 20 use this format
avg_engagement: average engagement_score for this format
best_example: highest engagement content in this format
Hook Analysis:
For each hook_type in top results:
count: how many use this hook
avg_engagement: average engagement_score
best_example: highest engagement content with this hook
Duration Analysis (video platforms only):
Group videos by duration buckets:
<30s, 30-60s, 60-120s, 2-5min, 5-10min, 10-20min, 20min+
For each bucket: count and average engagement
→ Identify optimal duration range
Creator Analysis:
For each unique creator in top results:
content_count: how many pieces in top results
avg_engagement: average engagement score
platforms: which platforms they're on
dominant_format: their most-used format
Gap Analysis:
This is the most strategically valuable output. Look for:
For gap analysis with web_search fallback:
web_search "[keyword] reddit questions" → find unanswered user questionsweb_search "[keyword] alternatives nobody talks about" → find underserved anglesSet benchmark ranges so user knows what "good" looks like:
engagement_benchmark:
sample_size: number # how many content pieces analyzed
median_views: number # 50th percentile views
median_engagement_score: number
top_10_percent_threshold:
views: number # views needed to be in top 10%
engagement_score: number # engagement_score needed for top 10%
platform_averages: # per-platform breakdown
youtube:
median_views: number
median_engagement: number
tiktok:
median_views: number
median_engagement: number
Before presenting output, verify:
If any check fails, fix the output before delivering. Do not flag the checklist to the user.
Other skills can consume these fields from conversation context:
output_schema_version: "1.0.0"
keyword: string
platforms_scanned: string[]
data_source: "api" | "web_search" | "mixed" # transparency
total_content_analyzed: number
top_content: ContentItem[] # top results sorted by sort_by
pattern_analysis:
winning_formats:
- format: string # "comparison"
count: number # 9
percentage: number # 45
avg_engagement: number # 35.2
best_example:
title: string
url: string
engagement_score: number
winning_hooks:
- hook_type: string
count: number
avg_engagement: number
best_example:
title: string
url: string
optimal_duration:
range: string # "45-60 seconds"
platform: string # "tiktok"
avg_engagement: number
top_creators:
- name: string
platform: string
content_count: number
avg_engagement: number
dominant_format: string
content_gaps: string[] # specific, actionable gaps
engagement_benchmark:
sample_size: number
median_views: number
median_engagement_score: number
top_10_percent_threshold:
views: number
engagement_score: number
platform_averages: object
recommended_angles: string[] # top 3 content angles based on gaps + engagement
recommended_next_skill: string # "content-angle-ranker"
## Trending Content Scout: [Keyword]
### Data Source
📊 **[API: YouTube Data API + RapidAPI TikTok | web_search (no API configured)]**
Scanned: [X] content pieces across [Y] platforms
Time range: [30 days]
---
### 🏆 Top Performing Content
| # | Title | Platform | Creator | Views | Eng. Score | Format | Hook |
|---|-------|----------|---------|-------|------------|--------|------|
| 1 | [Title] | YouTube | @creator | 150K | 42.3 | comparison | bold_claim |
| 2 | [Title] | TikTok | @creator | 800K | 38.1 | demo | demo_first |
| 3 | [Title] | YouTube | @creator | 95K | 35.7 | tutorial | question |
| ... | ... | ... | ... | ... | ... | ... | ... |
---
### 📈 Pattern Analysis
**Winning Formats:**
| Format | Count | % of Top 20 | Avg Engagement | Verdict |
|--------|-------|-------------|----------------|---------|
| Comparison | 9 | 45% | 35.2 | 🔥 Dominant — proven winner |
| Tutorial | 5 | 25% | 28.4 | ✅ Solid performer |
| Review | 4 | 20% | 22.1 | ⚡ Works but competitive |
| Listicle | 2 | 10% | 18.5 | ➖ Below average |
**Best Hooks:**
1. 🥇 **Bold claim** — "This tool replaced my $5K/mo agency" (avg engagement: 41.3)
2. 🥈 **Demo first** — Show end result in first 3 seconds (avg: 36.8)
3. 🥉 **Contrarian** — "Stop using X, use this instead" (avg: 33.2)
**Duration Sweet Spot:**
- TikTok: 45-60 seconds (avg engagement: 34.2)
- YouTube: 8-12 minutes (avg engagement: 31.5)
**Top Creators in This Space:**
| Creator | Platform | Pieces in Top 20 | Avg Engagement | Style |
|---------|----------|-------------------|----------------|-------|
| @creator1 | YouTube | 4 | 38.5 | In-depth comparisons |
| @creator2 | TikTok | 3 | 35.2 | Quick demos |
---
### 🕳️ Content Gaps (Opportunities)
1. **[Gap 1]:** Nobody comparing [Product A] vs [Product B] on TikTok — YouTube has 5 comparisons, TikTok has zero
2. **[Gap 2]:** No "honest cons" content — all top content is positive. Authentic negative review = differentiation
3. **[Gap 3]:** Missing "[keyword] for [specific audience]" — all content targets general audience
4. **[Gap 4]:** Top content is 4-6 months old — fresh 2024 take is an opportunity
5. **[Gap 5]:** Reddit has high engagement (avg score: 450) but no affiliate content → underserved platform
---
### 📏 Engagement Benchmark
| Metric | Median | Top 10% Threshold | Your Target |
|--------|--------|-------------------|-------------|
| Views | 12,000 | 85,000 | Beat median to start |
| Engagement Score | 18.5 | 45.0 | Aim for top 10% |
**Per Platform:**
| Platform | Median Views | Median Engagement |
|----------|-------------|-------------------|
| YouTube | 25,000 | 22.3 |
| TikTok | 45,000 | 16.8 |
---
### 🎯 Recommended Next Steps
Based on this data, the highest-opportunity path is:
1. **Run `content-angle-ranker`** — rank specific angles for [best platform]
2. **Create a [winning format]** using a [best hook] hook
→ Skill: `viral-post-writer` (format: [format], hook: [hook])
3. **Fill [Gap 1]** — this is the lowest-competition, highest-potential opportunity
→ Skill: `tiktok-script-writer` (if TikTok) or `comparison-post-writer` (if blog)
shared/references/social-data-providers.md"Example 1:
User: "What content is working about HeyGen on TikTok?"
→ keyword: "HeyGen", platforms: ["tiktok"]
→ web_search "HeyGen tiktok" + "HeyGen site:tiktok.com" + "HeyGen TikTok viral"
→ Find 15 TikTok videos, extract view counts and creators
→ Pattern: demo_first hooks dominate (60%), 30-45s duration optimal
→ Gap: nobody doing "HeyGen for [specific profession]" content
→ Recommend: tiktok-script-writer with demo_first hook, 30s, angle: "HeyGen for real estate agents"
Example 2: User: "I want to create content about email marketing tools. What's performing well?" → keyword: "email marketing tools", platforms: ["youtube", "tiktok", "reddit"] → Scout all 3 platforms → YouTube: dominated by listicles ("Top 10 email marketing tools 2024") — avg 45K views → TikTok: very few results — gap opportunity → Reddit: high engagement on comparison threads in r/emailmarketing → Recommend: Fill TikTok gap with comparison format, or target Reddit with authentic discussion
Example 3:
User: "Scout trending content about AI writing tools, I have RapidAPI configured"
→ Use configured APIs for YouTube + TikTok
→ Get exact engagement data: views, likes, comments, shares
→ Engagement scores calculated precisely
→ Pattern: "I replaced my copywriter with AI" hook has 3x average engagement
→ Output includes exact benchmark: median 18K views, top 10% needs 120K+
→ Recommend: content-angle-ranker to pick best angle, then viral-post-writer
When this skill produces unexpected, incomplete, or incorrect output, generate a
skill_feedback block (see shared/references/feedback-protocol.md for full schema).
Skill-specific failure modes:
data_quality with the keyword used.data_quality, note which platforms had no metrics.wrong_output with the misclassified content.Auto-detect triggers:
top_content array has <5 items after scanning all platformsengagement_benchmark.sample_size < 1050% of
content_gapsare generic rather than specific
Report issues: GitHub Issues | Discussions
shared/references/social-data-providers.md — API configuration and provider optionsshared/references/flywheel-connections.md — master flywheel connection mapshared/references/affiliate-glossary.md — affiliate marketing terminologyshared/references/feedback-protocol.md — issue detection and reporting standardcontent-angle-ranker (S1) — full scout output for angle scoringviral-post-writer (S2) — pattern_analysis (winning formats, hooks, benchmark)tiktok-script-writer (S2) — top TikTok content + engagement datatwitter-thread-writer (S2) — top X threads + engagement datareddit-post-writer (S2) — top Reddit posts + engagement datacontent-pillar-atomizer (S2) — platform performance data for allocationcompetitor-spy (S1) — top_creators data (who's dominating this keyword)keyword-cluster-architect (S3) — engagement data per keyword for cluster prioritizationaffiliate-blog-builder (S3) — winning formats and gaps for blog content anglescompetitor-spy (S1) — competitor URLs/channels to analyze specificallyniche-opportunity-finder (S1) — niche keywords to scoutperformance-report (S6) — your content metrics to compare against benchmarkperformance-report provides your actual content metrics → compare against engagement_benchmark from this skill → identify where you're beating or trailing the benchmark → refine content strategy in the next scout runchain_metadata:
skill_slug: "trending-content-scout"
stage: "research"
timestamp: string
suggested_next:
- "content-angle-ranker"
- "viral-post-writer"
- "tiktok-script-writer"