ClawKit Logo
ClawKitReliability Toolkit

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.

Skills you need

SkillWhat it unlocksRequired?
twitter-posterPost tweets, threads, replies via Twitter/X API v2Core
twitter-searchSearch mentions, keywords, and competitors on Twitter/XCore
linkedin-skillPost to LinkedIn personal profile or company pageRecommended
content-repurposerReformat a blog post or long-form text into platform-specific snippetsRecommended
web-searchFind trending topics and news to incorporate into postsOptional
file-readerRead a local blog post or newsletter draft as source materialOptional

SOUL.md template

SOUL.md โ€” social media agent
# 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 approval

Twitter/X setup

  1. Go to developer.twitter.com โ†’ Projects & Apps โ†’ New App
  2. Apply for Elevated access if you need to post (basic access is read-only)
  3. Under Keys and Tokens, generate: API Key, API Secret, Access Token, Access Token Secret
  4. Add to your OpenClaw config:
openclaw.json โ€” Twitter/X credentials
{
  "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

  1. Go to linkedin.com/developers โ†’ Create App
  2. Add the Share on LinkedIn and Sign In with LinkedIn products
  3. Under Auth, add a redirect URI and generate an OAuth token with w_member_social scope
  4. LinkedIn tokens expire every 60 days โ€” you'll need to refresh them manually or via the OAuth flow
Add LinkedIn to config
{
  "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".

Did this guide solve your problem?

Need Help?

Try our automated tools to solve common issues instantly.