Skip to content
All Skills

Social Media Content Kit Generator

Creates platform-specific content (Twitter/X threads, LinkedIn posts, Instagram captions) from a single idea, with hashtag research and character validation. Optionally posts directly to platforms via Playwright MCP. Prerequisites: brave-search MCP, python3, playwright MCP.

Content Creation|v1|Updated 5/18/2026
MCP get_skill({ skillId: "social-media-content-kit-generator-4bf5a551" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# Social Media Content Kit Generator

Turn one idea into platform-specific content for Twitter/X, LinkedIn, and Instagram. Optionally post directly via Playwright.

## When to Use

- "Create social media posts about {topic}"
- "Turn this blog post into a Twitter thread and post it"
- "Generate a LinkedIn post and publish it"

## Requirements

- **Brave Search MCP** for trending hashtag and topic research
- **python3** for character counting and scheduling
- **Playwright MCP** for posting content directly to platforms (user must be logged in)

## Workflow

### Step 1 โ€” Content Brief

- **Source content** (blog post, idea, announcement, lesson learned)
- **Platforms** (Twitter/X, LinkedIn, Instagram, or all)
- **Brand voice** (professional, witty, inspirational, educational)
- **Goal** (awareness, engagement, traffic, leads)
- **CTA** (link to click, comment prompt, share, DM)
- **Auto-post?** (yes/no โ€” if yes, will post via Playwright after approval)

### Step 2 โ€” Research Trends

```
brave_web_search: "{TOPIC} trending hashtags {PLATFORM} {YEAR}"
brave_web_search: "viral {PLATFORM} post format {TOPIC} examples"
brave_web_search: "best time to post {PLATFORM} engagement {YEAR}"
```

### Step 3 โ€” Generate Platform Content

**Twitter/X Thread:**
```markdown
### ๐Ÿฆ Twitter/X Thread ({N} tweets)

**1/** {Hook โ€” bold claim, question, or contrarian take} ๐Ÿงต

**2/** {Supporting point 1}

**3/** {Supporting point 2}

**4/** {Supporting point 3 โ€” concrete example or data}

**5/** {Key takeaway or reframe}

**6/** {CTA}
Like this? Follow me for more on {topic}.
RT the first tweet to help others find this.

---
Characters per tweet: all under 280 โœ…
Hashtags: #{tag1} #{tag2} (on tweet 1 only)
```

**LinkedIn Post:**
```markdown
### ๐Ÿ’ผ LinkedIn Post

{Hook line โ€” personal story or surprising stat}

{Blank line}

{3-5 short paragraphs with line breaks between each}

{Bullet points or numbered list with key insights}

{CTA โ€” question to encourage comments}

---
Character count: {N}/3000
Hashtags: #{tag1} #{tag2} #{tag3} (3-5 max, at the end)
```

**Instagram Caption:**
```markdown
### ๐Ÿ“ธ Instagram Caption

{Hook line โ€” first 125 chars visible before "more"}

{Body โ€” storytelling or value, 2-3 short paragraphs}

{CTA โ€” "Save this for later" / "Tag someone who needs this"}

.
.
.
#{tag1} #{tag2} #{tag3} ... (up to 30 hashtags)

---
Image suggestion: {description of ideal visual}
```

### Step 4 โ€” Character Count Validation

```bash
python3 << 'PYEOF'
tweets = [
    "{tweet 1 text}",
    "{tweet 2 text}",
    # ...
]

for i, tweet in enumerate(tweets, 1):
    chars = len(tweet)
    status = "โœ…" if chars <= 280 else "๐Ÿ”ด OVER"
    print(f"Tweet {i}: {chars}/280 chars {status}")

linkedin = """{LINKEDIN_POST}"""
print(f"\nLinkedIn: {len(linkedin)}/3000 chars")

instagram = """{INSTAGRAM_CAPTION}"""
print(f"Instagram: {len(instagram)}/2200 chars")
PYEOF
```

### Step 5 โ€” Present for Approval

Show all generated content to the user. **Get explicit approval before posting to any platform.**

### Step 6 โ€” Post via Playwright (after approval)

Only if user approved. User must be logged into the platform in the browser session.

**IMPORTANT:** Each platform may show a cookie consent banner on first visit. Look for "Accept" / "Accept cookies" / "Allow all cookies" in the snapshot and click it before proceeding with any other interaction. Also dismiss any promotional pop-ups or upsell dialogs that appear.

**Post to Twitter/X:**
```
browser_navigate: "https://x.com/compose/post"
browser_snapshot
โ€” Handle any cookie consent or login prompts
browser_click: tweet compose text area
browser_type: "{TWEET_1_TEXT}"
browser_snapshot
```

Show the snapshot to the user for final confirmation, then:
```
browser_click: "Post" button
browser_snapshot
```

For threads, after posting tweet 1:
```
browser_click: "Add another post" / reply to own tweet
browser_type: "{TWEET_2_TEXT}"
browser_click: "Post"
```

Repeat for each tweet in the thread.

**Post to LinkedIn:**
```
browser_navigate: "https://www.linkedin.com/feed/"
browser_snapshot
โ€” Handle cookie consent banner if shown
browser_click: "Start a post" button
browser_snapshot
browser_type: "{LINKEDIN_POST_TEXT}"
browser_snapshot
```

LinkedIn uses TipTap rich text editors. If `browser_type` doesn't work on the compose box, try: `browser_click` the text area โ†’ `browser_type` the text.

Show snapshot for confirmation, then:
```
browser_click: "Post" button
browser_snapshot
โ€” Dismiss any Premium upsell or promotional dialogs
```

**Post to Instagram (web):**
```
browser_navigate: "https://www.instagram.com/"
browser_snapshot
โ€” Handle cookie consent banner if shown
browser_click: "Create" / new post button
browser_snapshot
```

Note: Instagram web has limited posting support. If image upload is required, instruct the user to upload the image manually, then fill in the caption:
```
browser_type: "{INSTAGRAM_CAPTION}"
browser_snapshot
browser_click: "Share" button
browser_snapshot
```

### Step 7 โ€” Save Content Kit

```bash
mkdir -p outputs/content/social
cat > "outputs/content/social/{TOPIC_SLUG}-{DATE}.md" << 'EOF'
{ALL_PLATFORM_CONTENT}

## Posting Status
- Twitter/X: {Posted โœ… / Not posted}
- LinkedIn: {Posted โœ… / Not posted}
- Instagram: {Posted โœ… / Not posted}
EOF
```

## Important Rules

- **ALWAYS show content and get user approval before posting** โ€” never auto-post without confirmation
- **Handle cookie consent banners** before interacting with any platform
- **Dismiss promotional pop-ups/upsell dialogs** that appear after actions (especially LinkedIn Premium)
- Take a browser snapshot before AND after clicking Post to verify
- If a platform's UI changes or an element isn't found, stop and tell the user
- Each platform version must be native to that platform โ€” not copy-paste
- Twitter: hook must be in first tweet, thread must be skimmable
- LinkedIn: first line is everything โ€” it appears before "see more"
- Instagram: first 125 characters must hook โ€” rest is below fold
- Don't over-hashtag โ€” 2 on Twitter, 3-5 on LinkedIn, up to 30 on Instagram
- If user declines auto-posting, save content to file for manual posting

## Example Prompts

- "Turn this blog post into a Twitter thread and post it"
- "Create a LinkedIn post about remote work tips and publish it"
- "Generate social media content about startup lessons โ€” just save it, don't post"
#content#social-media#marketing#brave-search#playwrightbrave-searchpython3playwright

Explore Other Categories

Skills from other categories with shared topics

Ab Test Setup

Ab Test Setup linked from Corey Haines marketing skills, with the upstream skill instructions available on GitHub.

Business, Marketing & Sales#work-life#productivity

Ab Testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics. For page-level conversion optimization, see cro.

Business, Marketing & Sales#work-life#productivity

Ad Creative

When the user wants to generate, iterate, or scale ad creative โ€” headlines, descriptions, primary text, or full ad variations โ€” for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see ads. For landing page copy, see copywriting.

Business, Marketing & Sales#work-life#productivity