Skip to main content
ClaudeWave
Skill458 repo starsupdated 2mo ago

content-angle-ranker

The content-angle-ranker evaluates 8-12 content angle candidates against engagement data and weighted scoring criteria (platform fit, competition, predicted engagement, creator strengths) to produce a ranked list with a single recommendation. Use this after trending-content-scout provides engagement data, when a user has a keyword or product but needs to choose between multiple content formats or hooks, or when time constraints demand prioritizing a single high-impact piece before launching into content creation skills like viral-post-writer.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/Affitor/affiliate-skills /tmp/content-angle-ranker && cp -r /tmp/content-angle-ranker/skills/research/content-angle-ranker ~/.claude/skills/content-angle-ranker
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Content Angle Ranker

You have a keyword. You know the niche. But what specific content should you create?
Which angle, format, and hook will actually perform? This skill answers that question
with data — not gut feeling.

It takes engagement data (from `trending-content-scout` or live research) and ranks
8-12 content angle candidates by a weighted score combining platform fit, competition
level, engagement prediction, and creator fit. The output is a prioritized list with
a clear recommendation and direct handoff to content creation skills.

Think of it as `/plan-ceo-review` from gstack, but for content strategy: "What is
the 10-star version of this content?" — except the answer is backed by engagement data.

## Stage

This skill belongs to Stage S1: Research — but it bridges directly into S2: Content Creation.

## When to Use

- After `trending-content-scout` ran — use its data to pick the best angle
- User has a product/keyword but doesn't know what content to create
- User has multiple content ideas and wants to prioritize by data
- User wants to know: "If I only have time for ONE piece of content, what should it be?"
- Before running any S2 content skill (viral-post-writer, tiktok-script-writer, etc.)

## Input Schema

```yaml
keyword: string               # (required if no scout_data) "AI video tools"
product: object                # (optional) Affiliate product being promoted
  name: string                 # "HeyGen"
  description: string          # What it does
  url: string                  # Product URL or affiliate link
  reward_value: string         # Commission info — never shown in content
platform: string               # (required) Target platform for content creation
                               # "youtube" | "tiktok" | "linkedin" | "x" | "reddit" | "blog"
creator_strengths: string[]    # (optional) What the user is good at
                               # "storytelling" | "technical" | "humor" | "authority" |
                               # "visual" | "data" | "personal_experience"
audience: string               # (optional) Target audience — "beginners", "developers", "small business owners"
time_budget: string            # (optional) "30min" | "2hours" | "1day" — affects difficulty filter
custom_angles: string[]        # (optional) User's own angle ideas to include in ranking
```

**Auto-detection:** If `trending-content-scout` ran earlier in the conversation,
its output is automatically used as the data foundation. No need to pass it explicitly.

## Workflow

### Step 1: Gather Engagement Data

**If `trending-content-scout` output exists in context:**
- Use `pattern_analysis` (winning formats, hooks, engagement benchmarks)
- Use `content_gaps` as angle candidates
- Use `top_content` for competition assessment
- Skip to Step 2

**If no scout data:**
Run a quick scout internally:
1. `web_search "[keyword] site:youtube.com"` → top 10 videos, note formats and view counts
2. `web_search "[keyword] site:tiktok.com"` OR `web_search "[keyword] tiktok viral"` → top TikTok content
3. `web_search "[keyword] site:reddit.com top"` → top Reddit discussions
4. `web_search "[keyword] [platform] best performing"` → meta-analysis of what works
5. Extract: dominant formats, popular hooks, view count ranges, gaps

This takes 30-60 seconds and provides enough signal for angle scoring.

### Step 2: Generate Angle Candidates (8-12)

Generate 8-12 specific content angle candidates. Each angle must be concrete enough
to become a title — not vague ("write about HeyGen") but specific ("HeyGen vs Synthesia:
I tested both for 30 days — honest comparison for solo creators").

**Sources for angles:**

1. **Gap-based angles (from scout data or web_search):**
   - Content gaps: topics nobody has covered well
   - Format gaps: popular topic but missing in a specific format (e.g., comparison exists on YouTube but not TikTok)
   - Audience gaps: existing content targets general audience, specific audience underserved
   - Recency gaps: existing content is outdated, fresh version needed

2. **Pattern-based angles (from winning formats):**
   - Take the winning format and apply it to the keyword
   - Combine the best hook type with the topic
   - Replicate the structure of the highest-engagement content with a fresh perspective

3. **Contrarian angles:**
   - If all content is positive → honest cons angle
   - If all content targets beginners → advanced user angle
   - If all content is listicles → deep single-product dive

4. **User-provided angles (from custom_angles):**
   - Include any angles the user suggested
   - Score them alongside generated candidates — no bias

For each angle, define:

```yaml
Angle:
  title: string               # Specific, could be an actual content title
  angle: string               # Brief description of the angle
  format: string              # "comparison" | "review" | "tutorial" | "listicle" | "demo" | "story" | "reaction" | "explainer"
  hook: string                # The actual hook/opening line
  hook_type: string           # "question" | "shock" | "bold_claim" | "demo_first" | "relatable" | "contrarian"
  source: string              # "gap" | "pattern" | "contrarian" | "user_provided"
```

### Step 3: Score Each Angle

Score every angle on 4 dimensions (1-10 each), then calculate a weighted total:

```
angle_score = (platform_fit × 0.25) + (competition_level × 0.30) +
              (engagement_prediction × 0.30) + (creator_fit × 0.15)
```

**Dimension 1: Platform Fit (weight: 25%)**

How well does this format/hook work on the target platform?

| Format | YouTube | TikTok | LinkedIn | X | Reddit | Blog |
|--------|---------|--------|----------|---|--------|------|
| comparison | 9 | 8 | 7 | 5 | 8 | 9 |
| review | 8 | 6 | 5 | 4 | 9 | 9 |
| tutorial | 9 | 7 | 6 | 3 | 7 | 10 |
| listicle | 7 | 8 | 9 | 8 | 6 | 8 |
| demo | 8 | 10 | 5 | 4 | 3 | 5 |
| story | 6 | 9 | 10 | 8 | 7 | 7 |
| reaction | 7 | 10 | 4 | 6 | 5 | 3 |
| explainer | 8 | 5 | 8 | 6 | 8 | 9 |

Adjust b