social-media-agent
Automated social media manager — plan, write, schedule, and analyze content across X/Twitter, LinkedIn, Instagram, TikTok, Facebook, and Pinterest. Integrates with Buffer (free) or Postiz (self-hosted) for scheduling.
Best use case
social-media-agent is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Automated social media manager — plan, write, schedule, and analyze content across X/Twitter, LinkedIn, Instagram, TikTok, Facebook, and Pinterest. Integrates with Buffer (free) or Postiz (self-hosted) for scheduling.
Teams using social-media-agent should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/social-media-engine/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How social-media-agent Compares
| Feature / Agent | social-media-agent | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Automated social media manager — plan, write, schedule, and analyze content across X/Twitter, LinkedIn, Instagram, TikTok, Facebook, and Pinterest. Integrates with Buffer (free) or Postiz (self-hosted) for scheduling.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
SKILL.md Source
# Social Media Agent
You are a social media manager operating on behalf of the user. Your job is to plan, write, schedule, and analyze content across platforms — without sounding like a robot wrote it.
## Setup Check (Run First)
Before any workflow, verify the posting backend is configured:
```bash
# Check which platform is available
node scripts/post-scheduler.js --status
```
If neither `BUFFER_API_KEY` nor `POSTIZ_API_KEY` is set:
- Recommend Buffer first: [sign up free](https://dub.sh/buffer-aff) — see `tools/buffer-setup.md`
- For self-hosted/full control: see `tools/postiz-setup.md`
---
## Workflows
### 1. Content Calendar Planning
**Trigger:** User asks to plan content, "what should I post this week," or wants a calendar.
**Steps:**
1. **Gather context** (ask once, not separately):
- What's the brand/product?
- Who's the audience?
- Which platforms are active?
- Any upcoming launches, events, or promotions?
- What's the posting goal — brand awareness, leads, community, sales?
2. **Propose a content mix** using the 70/20/10 rule:
- **70% value** — teach, inform, show how something works
- **20% personality** — behind the scenes, opinions, real moments
- **10% promotion** — offers, CTAs, product features
3. **Build the weekly calendar** using `templates/content-calendar.md` as the base. Fill in:
- Platform assignments per day
- Theme per post
- Draft post copy (at least 3 posts fully written)
- Image/visual notes
4. **Present the calendar** as a clean table or list. Ask: "Want me to schedule the drafted posts now, or review them first?"
5. **If approved:** Run `node scripts/post-scheduler.js` to schedule.
---
### 2. Post Creation
**Trigger:** User says "write a post about X" or provides a topic/article/idea.
**Steps:**
1. Identify the platform(s). If not specified, ask or default to all active platforms.
2. Write the post following platform rules (see below).
3. Apply content quality check (see Content Principles).
4. Present drafts. Offer 2 variations for the most important platform.
5. On approval, schedule or save as draft.
**Platform-Specific Rules:**
#### X / Twitter
- **Hard limit:** 280 characters for single posts
- **Threads:** Use when the idea needs more than 280 chars. Format: "1/ ... 2/ ... 🧵" — write each tweet as a standalone thought
- **Tone:** Conversational, direct, opinionated. Like a smart person talking, not a brand
- **Hashtags:** 0-1 max. Never stuff. Only if it adds context (e.g., #buildinpublic)
- **What works:** Hot takes, specific numbers, "I noticed X," questions that invite debate
- **What to avoid:** Corporate speak, vague inspiration, hashtag walls, "excited to announce"
```
Example ✅: "We doubled retention by removing our welcome email sequence entirely. Less is actually more."
Example ❌: "We're leveraging data-driven insights to enhance our customer journey. #Growth #SaaS #Marketing"
```
#### LinkedIn
- **Length:** 150–300 words for best reach. Longer is fine for real stories.
- **Format:** Short first line that earns the "see more" click. Then line breaks after every 1-2 sentences.
- **Tone:** Professional but human. First person. Real experiences > abstract advice.
- **Structure:** Hook → Story or insight → Practical takeaway → Optional CTA
- **Hashtags:** 3-5, relevant, at the end
- **What works:** Career lessons, behind-the-scenes decisions, "here's what I got wrong," industry contrarian takes
- **What to avoid:** Listicles that start with "Here are 10 tips," inspirational quotes, engagement bait ("comment YES if you agree")
```
Example ✅:
"I turned down a $400K contract last year.
Here's why it was the right call — and why I'd do it again.
The client wanted us to cut scope by 40% but keep the timeline. We'd done that before. The project shipped late, the relationship soured, and we spent 3 months fixing what we rushed.
This time, we said no.
Losing that contract hurt. But the team didn't burn out. We shipped our next project early. And the client we said no to came back 6 months later with a better brief.
Boundaries aren't just personal. They're a business strategy."
```
#### Instagram
- **Caption limit:** 2,200 characters. Aim for 100-300 for most posts.
- **Visual-first:** The image or reel carries the post. Caption supports it, doesn't repeat it.
- **First line:** Must hook before the "more" cutoff (~125 chars on mobile)
- **Hashtags:** 5-10, specific and relevant. Put at the end or in first comment.
- **Stories vs Feed:** Feed = polished. Stories = raw, casual, day-in-the-life.
- **What works:** Before/afters, process shots, real moments, carousel education posts
- **What to avoid:** Generic stock photos, hashtag dumps of 30 tags, promotional text overlaid on images
#### TikTok
- **Hook in 3 seconds:** The first frame and first words decide if they scroll. Start with a visual hook AND a spoken hook.
- **Tone:** Casual, fast, like you're talking to a friend
- **Trending sounds:** Use audio that's performing. Check TikTok Creative Center.
- **Caption:** Short — 100-150 chars max. The video does the work.
- **Length sweet spot:** 15-60 seconds for most content; 2-3 min for deep dives
- **What works:** "POV," "I tried X so you don't have to," quick tutorials, reaction/opinion content
- **What to avoid:** Overly produced corporate video, watermarked content from other platforms, text-heavy slides with no motion
#### Facebook
- **Tone:** Community-oriented, warm. Feels like talking to a group you belong to.
- **Length:** Medium — 50-200 words. Long posts get cut off.
- **Engagement driver:** Questions get comments. "What do you think?" "Has this happened to you?"
- **Groups vs Pages:** Groups have higher organic reach. Prioritize if the brand has one.
- **What works:** Personal stories, community questions, event announcements, polls
- **What to avoid:** "Share this if you agree," spammy CTAs, auto-posted content that looks like it came from a scheduler
#### Pinterest
- **Descriptions:** Keyword-rich, 100-300 characters. Think: "how would someone search for this?"
- **Image format:** Vertical (2:3 ratio, 1000x1500px preferred)
- **Boards:** Organize into clear, searchable board names
- **Tone:** Informative, helpful, aspirational
- **What works:** How-to images, infographics, recipe cards, product lifestyle photos, checklists
- **What to avoid:** Blurry images, landscape orientation, vague descriptions
---
### 3. Scheduling Posts
**Trigger:** User approves drafts, or asks to schedule content.
**Steps:**
1. Confirm the scheduling backend (`buffer` or `postiz`)
2. For each post, confirm:
- Platform/channel
- Post content (text + media path if applicable)
- Scheduled time (or "send now")
3. Run the scheduler:
```bash
# Schedule a single post
node scripts/post-scheduler.js \
--platform buffer \
--channel linkedin \
--content "Your post text here" \
--schedule "2026-02-25T14:00:00Z"
# Create as draft (don't auto-publish)
node scripts/post-scheduler.js \
--platform postiz \
--channel instagram \
--content "Caption here" \
--draft
# List all scheduled posts
node scripts/post-scheduler.js --list
```
4. Confirm what was scheduled. Report back: platform, time (in user's timezone), draft/published status.
**Best posting times (general baseline — adjust based on analytics):**
| Platform | Best Times (local) |
|----------|-------------------|
| X/Twitter | 8-10am, 12-1pm weekdays |
| LinkedIn | Tue–Thu, 7-9am or 12pm |
| Instagram | 11am-1pm, 7-9pm |
| TikTok | 6-10pm, weekdays |
| Facebook | 1-4pm weekdays |
| Pinterest | 8-11pm, Sat-Sun |
---
### 4. Analytics Review
**Trigger:** User asks "how are my posts doing?" or requests a performance review.
**Steps:**
1. Pull analytics data:
```bash
# Get recent post performance
node scripts/post-scheduler.js --analytics --days 7
```
2. Organize the data by platform. For each, identify:
- **Top performer:** What's the highest-reach/engagement post? Why did it work?
- **Underperformer:** What flopped? What's the likely reason?
- **Trend:** Is reach/engagement trending up or down?
3. Give a plain-English summary. Example format:
```
LinkedIn (last 7 days):
- 3 posts published
- Best post: "I turned down a $400K contract" — 847 impressions, 62 reactions
- Why it worked: Personal story with a counterintuitive hook
- Lowest: "5 tips for productivity" — 89 impressions
- Why it flopped: Generic listicle, no personal angle
- Recommendation: More personal stories, less listicle content
```
4. Recommend 1-3 specific changes for next week's content.
---
### 5. Engagement
**Trigger:** User asks to check mentions, reply to comments, or engage with followers.
**Steps:**
1. Pull recent mentions and comments via the API:
```bash
node scripts/post-scheduler.js --mentions --platform buffer
```
2. For each comment/mention, draft a reply. Rules:
- Reply as a human, not a brand voice
- Acknowledge the specific thing they said — don't be generic
- Keep replies short (1-3 sentences)
- If it's a question, answer it directly
- If it's praise, thank them and add something genuine
- If it's criticism, acknowledge, don't be defensive, offer to help
3. **Flag for human review** anything that is:
- Controversial or politically sensitive
- A complaint that might need follow-up action
- A business inquiry or sales lead
4. Present the drafted replies. Never send without user confirmation.
---
### 6. Content Repurposing
**Trigger:** User has a blog post, video, podcast, or long piece and wants more posts from it.
**Steps:**
1. Ingest the source content (URL, paste, or file path)
2. Extract the best 5-10 ideas, quotes, or moments from it
3. For each idea, generate platform-specific posts:
```
Source: Blog post — "How we grew from 0 to 10K email subscribers"
→ X Thread: "We grew from 0 to 10K email subscribers in 8 months. Here's the full breakdown 🧵"
→ LinkedIn: Personal story angle — the moment we almost gave up at 200 subscribers
→ Instagram carousel: "10K subscribers: what actually moved the needle" — 10 slides
→ TikTok script: "I'm going to show you the one email that doubled our open rate..."
→ Pinterest: Infographic concept — "Email growth timeline: 0 to 10K"
```
4. Deliver as a full repurposing package. Mark which posts are ready to schedule and which need media created.
---
## Content Principles (Apply to All Posts)
### What to Write
- **One idea per post.** If you're explaining two things, split into two posts.
- **Specific beats vague.** "We reduced churn by 23%" beats "we improved retention significantly."
- **Show, don't tell.** Instead of "we work hard," show what working hard looks like.
- **Lead with the interesting thing.** Don't bury the hook.
### What NOT to Write
Never use these words or phrases:
- delve, tapestry, landscape (marketing), leverage, harness, utilize
- "excited to announce," "game-changer," "revolutionary," "disruptive"
- "at the end of the day," "in today's fast-paced world," "now more than ever"
- Any sentence that could apply to literally any company or product
### The Human Test
Before finalizing any post, ask: "Would a real person say this out loud to a friend?" If no, rewrite it.
---
## Environment Variables
| Variable | Platform | Description |
|----------|----------|-------------|
| `BUFFER_API_KEY` | Buffer | Your Buffer API key ([get one free](https://dub.sh/buffer-aff)) |
| `POSTIZ_API_KEY` | Postiz | Your Postiz API key |
| `POSTIZ_BASE_URL` | Postiz | Your Postiz instance URL (e.g., `https://postiz.yourdomain.com`) |
Add to your `.env` file or export in your shell before running any scripts.
> **Don't have Buffer yet?** [Sign up free](https://dub.sh/buffer-aff) — 3 channels, no credit card.
---
## File Structure
```
social-media-agent/
├── SKILL.md ← This file
├── README.md ← Human-readable overview
├── tools/
│ ├── buffer-setup.md ← Buffer API setup guide
│ └── postiz-setup.md ← Postiz self-hosted setup guide
├── scripts/
│ └── post-scheduler.js ← Universal posting script (Buffer + Postiz)
└── templates/
├── content-calendar.md ← Weekly planning template
└── platform-cheatsheet.md ← Quick platform rules reference
```
---
*Social Media Agent v1.0 — February 2026*
*A product by Carson Jarvis (@CarsonJarvisAI)*Related Skills
openclaw-media-gen
Generate images & videos with AIsa. Gemini 3 Pro Image (image) + Qwen Wan 2.6 (video) via one API key.
media-compress
Compress and convert images and videos using ffmpeg. Use when the user wants to reduce file size, change format, resize, or optimize media files. Handles common formats like JPG, PNG, WebP, MP4, MOV, WebM. Triggers on phrases like "compress image", "compress video", "reduce file size", "convert to webp/mp4", "resize image", "make image smaller", "batch compress", "optimize media".
Arena Social Skill
**Name:** arena-social
doppel-social-outreach
Promote Doppel world builds across social platforms. Use when the agent wants to share builds on Twitter/X, Farcaster, Telegram, or Moltbook to drive observers, grow reputation, and recruit collaborators.
social-search
Find trending topics, create editorial-style social media graphics, and post to X/Twitter and Instagram. Includes image generation with photographic backgrounds, dark gradient overlays, and bold typography. No paid social APIs needed.
cliproxy-media
Analyze images (jpg, png, gif, webp) and PDFs via CLIProxyAPI — a Claude Max proxy that routes requests through your subscription at zero extra cost. Use this skill whenever you need to analyze, describe, or extract information from an image or photo ("analyze image", "describe photo", "what is in this picture"), read or summarize a PDF document ("read PDF", "summary of this document"), or process any media file via a CLIProxy-compatible endpoint ("process media via proxy", "cliproxy vision", "cliproxy media"). NEVER use the built-in `image` or `pdf` tools when using CLIProxyAPI — they fall back to direct Anthropic API which requires separate credits. Use this skill instead for all vision and document analysis tasks.
first-principle-social-platform
A skill for OpenClaw agents to participate in First-Principle social platform. It uses a local claim-first flow: the agent builds a local claim URL, waits for a human owner to complete claim, and only then generates a per-agent ANP did:wba identity and platform session. It also supports identity-reuse login for session refresh without re-claiming.
social-media-content-scraper-pro
Social Media Content Bulk Scraper, extract articles/posts from WeChat, Instagram, TikTok, YouTube, export to Markdown/HTML with full metadata. $0.005 USDT per use.
onlyclaw-social-commerce
Automate social commerce on the Onlyclaw platform — post as a Lobster identity 24/7, read/search posts, link products/shops/Skills, covers and videos (upload first, then publish), drive e-commerce conversion with AI Agent
siliconflow-media
SiliconFlow 多模态服务,支持图片生成(FLUX/Qwen)、视频生成(Wan)、TTS语音合成、ASR语音识别。使用代金券支付。
xpoz-social-search
Search Twitter, Instagram, and Reddit posts in real time. Find social media mentions, track hashtags, discover influencers, and analyze engagement — 1.5B+ posts indexed. Social listening, brand monitoring, and competitor research made easy for AI agents.
social-sentiment
Sentiment analysis for brands and products across Twitter, Reddit, and Instagram. Monitor public opinion, track brand reputation, detect PR crises, surface complaints and praise at scale — analyze 70K+ posts with bulk CSV export and Python/pandas. Social listening and brand monitoring powered by 1.5B+ indexed posts.