Use Case: Social Media Management
schedule posts ยท monitor mentions ยท repurpose content ยท draft replies
What you'll build
An agent that turns a blog post or idea into platform-ready content, schedules it, monitors who's talking about your brand, and drafts replies โ all on autopilot. Every post requires your approval by default.
Platform API note: Twitter/X and LinkedIn both require developer app approval before posting programmatically. The setup below covers what's needed. Read-only operations (monitoring, drafting) work without elevated access.
Jump to section
Skills you need
| Skill | What it unlocks | Required? |
|---|---|---|
| twitter-poster | Post tweets, threads, replies via Twitter/X API v2 | Core |
| twitter-search | Search mentions, keywords, and competitors on Twitter/X | Core |
| linkedin-skill | Post to LinkedIn personal profile or company page | Recommended |
| content-repurposer | Reformat a blog post or long-form text into platform-specific snippets | Recommended |
| web-search | Find trending topics and news to incorporate into posts | Optional |
| file-reader | Read a local blog post or newsletter draft as source material | Optional |
SOUL.md template
# Social Media Agent
You manage social media presence: draft content, monitor mentions, and schedule posts.
## Identity
- Name: SocialBot
- Brand voice: [describe your tone โ e.g. "direct, technical, occasionally witty"]
## Content rules
- Twitter/X: 280 chars max per post. Threads max 5 posts. No filler phrases ("excited to share", "thrilled to announce").
- LinkedIn: 1,200 chars max, professional tone, lead with a hook sentence, add 3 relevant hashtags at the end
- Never post the same content word-for-word on both platforms โ adapt for each audience
## Approval rules
- NEVER post to any platform without showing me the draft and getting "yes post it" or "post"
- Exception: pre-approved scheduled posts listed at the end of this file
## Monitoring
When asked to check mentions:
1. Search Twitter/X for [@mybrand OR "my brand name"] from the last 24 hours
2. Classify each as: positive / neutral / negative / needs-reply
3. For "needs-reply", draft a response
4. Report count by category, show the top 3 posts by engagement
## Pre-approved scheduled content
# Add specific posts here with date/time to skip approvalTwitter/X setup
- Go to developer.twitter.com โ Projects & Apps โ New App
- Apply for Elevated access if you need to post (basic access is read-only)
- Under Keys and Tokens, generate: API Key, API Secret, Access Token, Access Token Secret
- Add to your OpenClaw config:
{
"skills": [
"official-twitter-poster",
"official-twitter-search",
"official-content-repurposer"
],
"model": "claude-sonnet-4-5",
"soulPath": "./SOUL.md",
"env": {
"TWITTER_API_KEY": "your-api-key",
"TWITTER_API_SECRET": "your-api-secret",
"TWITTER_ACCESS_TOKEN": "your-access-token",
"TWITTER_ACCESS_TOKEN_SECRET": "your-access-token-secret"
}
}LinkedIn setup
- Go to linkedin.com/developers โ Create App
- Add the Share on LinkedIn and Sign In with LinkedIn products
- Under Auth, add a redirect URI and generate an OAuth token with
w_member_socialscope - LinkedIn tokens expire every 60 days โ you'll need to refresh them manually or via the OAuth flow
{
"env": {
"LINKEDIN_ACCESS_TOKEN": "your-access-token",
"LINKEDIN_PERSON_URN": "urn:li:person:YOUR_ID"
}
}Content repurposing workflow
The most useful pattern: give the agent a blog post URL or file, get back platform-ready drafts for Twitter/X and LinkedIn in one shot.
From blog post URL
"Read https://myblog.com/post/ai-agents-2026 and create: (1) a Twitter thread of 4 tweets, (2) a LinkedIn post under 1,000 chars. Show me both drafts before posting."
From local file
"Read ~/drafts/newsletter-march.md and create a Twitter thread (max 5 tweets) and a LinkedIn post. Make the LinkedIn version more professional."
Monitor mentions
"Check Twitter for mentions of @mybrand and "clawkit" from the last 24 hours. Show me any that need a reply."
Trend-based post
"Search for what's trending in AI agents today. Draft a relevant tweet and LinkedIn post that ties it to our product. Show drafts before posting."
Common issues
โ Twitter returns 403 Forbidden when posting
Your app needs Elevated access (or Basic access with write permissions under API v2). Go to developer.twitter.com โ your app โ Settings โ User authentication settings and enable OAuth 2.0 with write scope.
โ LinkedIn post fails with 401 Unauthorized
LinkedIn access tokens expire every 60 days. Generate a new one via the OAuth flow: go to linkedin.com/developers โ your app โ Auth โ generate a new token with w_member_social scope.
โ Content is too generic
Add specific brand voice examples to your SOUL.md. Include 2โ3 sample posts that represent your ideal style. The more specific the examples, the better the output.
โ Agent posts without asking
Ensure "NEVER post without showing draft and getting yes" is in your SOUL.md behaviour section. If using crons, verify the task does not say "post directly".
Related guides
Did this guide solve your problem?