Use when repurposing content across multiple channels.
Scanned 9/10/2026
Install to Claude Code
npx -y skills add LoopyLuci/Skills --skill content-repurposing-distribution --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Content Repurposing Distribution?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/loopyluci-content-repurposing-distribution)More formats (shields.io, HTML) on the badges page.
---
name: content-repurposing-distribution
description: "Use when repurposing content across multiple channels."
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
hermes:
tags: [content-repurposing, distribution, content-marketing, multi-channel, content-strategy]
related_skills: [content-writing-seo-copy, blog-building-content-strategy, social-media-content-planning, digital-marketing-strategy]
---
# Content Repurposing and Distribution
Turning one piece of content into many — repurposing strategies, distribution channels, syndication, and maximizing the ROI of every content asset.
## When to Use
- Getting more mileage from existing content assets
- Building a content distribution plan
- Repurposing long-form content into multiple formats
- Distributing content across owned, earned, and paid channels
- Maximizing content ROI (one piece, many formats, many channels)
## Repurposing Framework
```
Core Asset (e.g., 2000-word blog post)
├── Social Media (5-10 posts across platforms)
├── Email (2-3 email sequence)
├── Visual (infographic, carousel, video)
├── Audio (podcast episode)
├── Short-form (Twitter thread, LinkedIn post)
├── Derivative (checklist, cheatsheet, template)
└── Updated/Refreshed (republish with updates)
```
## Content Repurposer
```python
from typing import Dict, List, Optional
import re
class ContentRepurposer:
"""Repurpose content into multiple formats."""
@staticmethod
def analyze_content(content: str) -> Dict:
"""Analyze content to find repurposing opportunities."""
paragraphs = [p for p in content.split('\n\n') if len(p) > 40]
# Extract key elements
stats = re.findall(r'\d+%|\$\d+|\d+x|\d+ [a-z]+', content)
quotes = re.findall(r'"([^"]*)"', content)
headings = re.findall(r'^#{1,3}\s(.+)$', content, re.MULTILINE)
return {
'paragraph_count': len(paragraphs),
'key_stats': stats[:5],
'quotable_moments': quotes[:3],
'headings': headings,
'estimated_read_time': max(1, len(content.split()) // 200),
'repurpose_opportunities': ContentRepurposer._suggest_formats(paragraphs, stats, quotes),
}
@staticmethod
def _suggest_formats(paragraphs, stats, quotes) -> List[Dict]:
formats = []
if len(paragraphs) >= 7:
formats.append({'format': 'twitter_thread', 'items': len(paragraphs)})
formats.append({'format': 'email_sequence', 'items': min(len(paragraphs) // 3 + 1, 5)})
if stats:
formats.append({'format': 'infographic', 'key_stat_count': len(stats)})
formats.append({'format': 'linkedin_carousel', 'slides': min(len(paragraphs) // 2 + 1, 10)})
if quotes:
formats.append({'format': 'quote_graphics', 'count': len(quotes)})
formats.append({'format': 'summary_post'})
formats.append({'format': 'podcast_script', 'estimated_minutes': max(5, len(paragraphs))})
return formats
@staticmethod
def to_twitter_thread(paragraphs: List[str], max_tweets: int = 15) -> List[str]:
"""Convert paragraphs into a Twitter thread."""
thread = []
for i, p in enumerate(paragraphs[:max_tweets - 1], 1):
tweet = f"{i}/{len(paragraphs)}: {p[:240]}"
thread.append(tweet)
thread.append(f"{len(paragraphs)}/{len(paragraphs)}: 👆 Full article at [link]")
return thread
@staticmethod
def to_email_sequence(paragraphs: List[str], title: str) -> List[Dict]:
"""Convert content into a multi-email sequence."""
chunk_size = max(1, len(paragraphs) // 5)
emails = []
for i in range(0, min(len(paragraphs), chunk_size * 5), chunk_size):
chunk = paragraphs[i:i + chunk_size]
emails.append({
'subject': f"{title} — Part {len(emails) + 1}",
'preview': chunk[0][:100] if chunk else '',
'content': '\n\n'.join(chunk),
'position': len(emails) + 1,
})
return emails
@staticmethod
def create_linkedin_carousel(paragraphs: List[str], title: str) -> List[Dict]:
"""Create LinkedIn carousel slides from content."""
slides = [{'title': title, 'type': 'cover'}]
for p in paragraphs[:8]:
slides.append({
'title': '',
'body': p[:200],
'type': 'content',
})
slides.append({'title': 'Want the full guide?', 'body': 'Link in comments ↓', 'type': 'cta'})
return slides
```
## Distribution Channels
```python
class DistributionPlanner:
"""Plan content distribution across channels."""
CHANNELS = {
'owned': {
'website_blog': 'High', 'email_newsletter': 'High',
'podcast': 'Medium', 'knowledge_base': 'Medium',
},
'earned': {
'medium': 'High', 'linkedin_posts': 'High',
'quora': 'Medium', 'industry_publications': 'Medium',
'podcast_interviews': 'Medium', 'guest_posts': 'High',
},
'paid': {
'social_ads': 'High', 'google_ads': 'Medium',
'sponsored_content': 'Medium', 'retargeting': 'High',
},
'social': {
'linkedin': 'High', 'twitter': 'High',
'facebook': 'Medium', 'instagram': 'Medium',
'youtube': 'High', 'tiktok': 'Medium',
},
}
@staticmethod
def build_plan(content_title: str, content_type: str,
target_audience: str, budget: str = 'low') -> List[Dict]:
"""Build a distribution plan for a piece of content."""
plan = []
# Owned channels (always)
plan.append({'channel': 'blog', 'action': 'Publish on website', 'timing': 'Day 0'})
plan.append({'channel': 'email', 'action': 'Send to email list', 'timing': 'Day 0'})
# Social
plan.append({'channel': 'linkedin', 'action': 'Native article/post', 'timing': 'Day 0'})
plan.append({'channel': 'twitter', 'action': 'Thread or tweet with image', 'timing': 'Day 0'})
# Earned
if budget != 'low':
plan.append({'channel': 'medium', 'action': 'Republish on Medium (canonical URL)', 'timing': 'Day 3'})
plan.append({'channel': 'outreach', 'action': 'Share with industry influencers', 'timing': 'Day 3'})
# Paid (if budget allows)
if budget == 'high':
plan.append({'channel': 'social_ads', 'action': 'Boost top-performing post', 'timing': 'Day 7'})
plan.append({'channel': 'retargeting', 'action': 'Retarget content visitors', 'timing': 'Day 14'})
# Repurpose
plan.append({'channel': 'repurpose', 'action': 'Create derivative formats', 'timing': 'Days 7-14'})
plan.append({'channel': 'update', 'action': 'Update and republish after 3 months', 'timing': 'Month 3'})
return plan
```
## Common Pitfalls
1. **No canonical URL** — republishing without canonical tags creates duplicate content issues
2. **Same content, same format** — turning a blog post into... another blog post isn't repurposing
3. **Not adapting to platform** — reposting the same text on LinkedIn, Twitter, and Instagram ignores platform norms
4. **Forgetting distribution** — creating content is 20%, distributing is 80%; plan both
5. **One-and-done** — posting once and never sharing again wastes potential; re-share evergreen content quarterly
6. **No tracking** — many distribution channels, no way to know what works; use UTM parameters
## Verification Checklist
- [ ] Core content analyzed for repurposing opportunities
- [ ] At least 5 derivative formats planned (social posts, email, visual, audio, short-form)
- [ ] Distribution plan covers owned, earned, and social channels
- [ ] UTM parameters on all distribution links
- [ ] Canonical URL set when republishing on third-party platforms
- [ ] Re-sharing schedule planned (evergreen content reshared quarterly)
- [ ] Performance tracked per channel
## See Also
- content-writing-seo-copy — writing the original content
- blog-building-content-strategy — planning the content
- social-media-content-planning — distributing on social
- digital-marketing-strategy — content marketing strategy
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!