Social Content Writer
Generates ready-to-publish social media posts tailored to each platform's native format, algorithm preferences, and audience expectations. Every post is built from brand voice in agency.config.json, not generic marketing copy.
Prerequisites
agency.config.json populated (agency info, case studies, services, outreach tone)
- Topic or theme to write about
- Optional: research output from
blog-researcher or linkedin-researcher
Phase 0: Intake
Read agency.config.json:
agency.name, agency.founder, agency.tagline -- brand identity
outreach.tone -- voice/style baseline (adapt per platform)
outreach.banned_phrases -- never use these
case_studies[] -- proof points for case study posts
services[] -- service areas for thought leadership angles
Accept parameters:
platform -- (required) one of: linkedin, twitter, instagram, reddit
post_type -- (required) one of: thought-leadership, case-study-snippet, hot-take, engagement-question, carousel-outline, thread, story-caption
topic -- (required) subject or theme
research -- (optional) output from researcher skills for data-backed posts
case_study -- (optional) specific case study slug from config
cta_type -- (optional) comment, dm, link, follow, none. Default: comment
count -- (optional) number of variants to generate. Default: 2
Phase 1: Platform Voice Adaptation
Adapt the base outreach.tone for each platform:
| Platform |
Tone Shift |
Format Norms |
| LinkedIn |
Professional, insight-driven, first-person narrative |
Line breaks between ideas, use of "I" and "we", no hashtag spam (max 3-5 at end) |
| X/Twitter |
Punchy, opinionated, concise |
Max 280 chars per tweet, threads use 1/ numbering, hot takes welcome |
| Instagram |
Visual-first, aspirational, casual |
Caption supports the visual, use line breaks, 5-15 relevant hashtags at end, emoji sparingly |
| Reddit |
Helpful, community-native, no self-promo |
Match subreddit tone, lead with value, mention experience naturally, no links in first reply |
Phase 2: Post Type Generation
Thought Leadership
- Open with a contrarian or surprising insight from the founder's perspective
- Support with data, observation, or experience
- Close with a question or takeaway
- LinkedIn: 150-300 words, line breaks every 1-2 sentences
- Twitter: Single tweet (280 chars) or thread (3-7 tweets)
- Instagram: 100-200 word caption paired with a quote card concept
- Reddit: 150-400 words matching the subreddit's expertise level
Case Study Snippet
- Lead with the result (number, metric, transformation)
- Brief context (who, what problem)
- What was done (2-3 bullet points max)
- Result reinforced
- Soft CTA
- LinkedIn: 150-250 words, use bullet points for the "what we did"
- Twitter: Single tweet with key metric + thread for breakdown
- Instagram: Stat-forward caption with before/after framing
Hot Take
- Bold, opinionated statement on an industry trend
- Back it up with one proof point
- Invite disagreement
- LinkedIn: 50-150 words, conversational
- Twitter: Single tweet, max edge without being hostile
- Instagram: Quote-style caption
Engagement Question
- Ask a genuine question the audience cares about
- Provide 2-3 options or your own take first
- Designed to drive comments
- LinkedIn: Question + context (50-100 words)
- Twitter: Question only (under 200 chars)
- Instagram: Question in caption, use poll sticker concept for stories
Carousel Outline
- LinkedIn/Instagram only
- 5-10 slides with headline + supporting text per slide
- Slide 1: Hook (scroll-stopping statement)
- Slides 2-8: Core content (one idea per slide)
- Slide 9: Summary or key takeaway
- Slide 10: CTA slide (follow, DM, comment)
- Output as structured slide-by-slide text
Thread
- Twitter/LinkedIn only
- 3-10 posts in sequence
- Post 1: Hook that promises value ("Here's how we 3x'd conversion rate for a sports brand")
- Posts 2-8: One insight per post, each standalone-readable
- Final post: Summary + CTA
- Number each: 1/, 2/, etc.
Story Caption
- Instagram only
- Ultra-short (1-2 lines)
- Designed to pair with a visual
- Include engagement prompt (poll, question, emoji slider)
Phase 3: Quality Check
Before returning, verify every post:
- Banned phrase scan: Check against
outreach.banned_phrases. Rewrite if any match.
- Character limits: Twitter posts under 280 chars. LinkedIn under 3000 chars. Instagram under 2200 chars.
- Tone check: Re-read against platform voice. Rewrite if it sounds corporate, generic, or salesy.
- Hashtag rules: LinkedIn max 5, Instagram 5-15, Twitter max 3, Reddit zero.
- CTA count: One CTA per post (or none for pure value posts).
- Self-promo check for Reddit: No direct links or pitches. Help first, credibility naturally.
- No emojis overload: Max 2-3 per LinkedIn post, 5-8 per Instagram caption, 0-1 per tweet.
Phase 4: Output
Return structured JSON:
{
"platform": "linkedin",
"post_type": "thought-leadership",
"variants": [
{
"text": "Full post text with line breaks...",
"hashtags": ["#Shopify", "#D2C", "#Ecommerce"],
"character_count": 487,
"word_count": 82,
"cta": "What's your take? Drop a comment.",
"visual_suggestion": "Screenshot of a Shopify analytics dashboard showing the metric",
"best_posting_time": "Tuesday 9-11 AM IST / Tuesday 7-9 AM GMT"
},
{
"text": "Variant 2...",
"hashtags": ["#ShopifyPartner", "#EcommerceTips"],
"character_count": 412,
"word_count": 71,
"cta": "DM me if you want the full breakdown.",
"visual_suggestion": "Carousel with 5 key points from the post",
"best_posting_time": "Wednesday 12-2 PM IST"
}
],
"topic": "Why most D2C brands underinvest in product page CRO",
"personalization_source": "Kibi Sports case study",
"generated_at": "2026-03-13T10:00:00Z"
}
Phase 5: Scheduling Recommendation
For each post, suggest optimal posting time based on platform best practices:
| Platform |
Best Times (IST) |
Best Days |
| LinkedIn |
9-11 AM, 12-1 PM |
Tue, Wed, Thu |
| Twitter |
8-10 AM, 12-1 PM, 5-6 PM |
Mon-Fri |
| Instagram |
11 AM-1 PM, 7-9 PM |
Tue, Wed, Fri |
| Reddit |
6-8 AM EST (for US subs) |
Mon, Wed |
For India-focused audience, adjust to IST prime hours. For US/UK audience, adjust to their local times.
Example Usage
Trigger phrases:
- "Write a LinkedIn post about CRO for D2C brands"
- "Create a Twitter thread about our Kibi Sports results"
- "Write an Instagram caption for a case study post"
- "Generate a hot take about Shopify themes for LinkedIn"
- "Write a Reddit-friendly comment about Shopify development"
- "Create a LinkedIn carousel outline about ecommerce mistakes"
- "Generate 3 engagement questions for LinkedIn this week"
1---2name: social-content-writer3description: Generates platform-native social media posts for LinkedIn, X/Twitter, Instagram, and Reddit. Supports thought leadership, case study snippets, hot takes, engagement questions, carousel outlines, and threads.4---56# Social Content Writer78Generates ready-to-publish social media posts tailored to each platform's native format, algorithm preferences, and audience expectations. Every post is built from brand voice in `agency.config.json`, not generic marketing copy.910## Prerequisites1112- `agency.config.json` populated (agency info, case studies, services, outreach tone)13- Topic or theme to write about14- Optional: research output from `blog-researcher` or `linkedin-researcher`1516## Phase 0: Intake1718Read `agency.config.json`:19- `agency.name`, `agency.founder`, `agency.tagline` -- brand identity20- `outreach.tone` -- voice/style baseline (adapt per platform)21- `outreach.banned_phrases` -- never use these22- `case_studies[]` -- proof points for case study posts23- `services[]` -- service areas for thought leadership angles2425Accept parameters:26- `platform` -- (required) one of: `linkedin`, `twitter`, `instagram`, `reddit`27- `post_type` -- (required) one of: `thought-leadership`, `case-study-snippet`, `hot-take`, `engagement-question`, `carousel-outline`, `thread`, `story-caption`28- `topic` -- (required) subject or theme29- `research` -- (optional) output from researcher skills for data-backed posts30- `case_study` -- (optional) specific case study slug from config31- `cta_type` -- (optional) `comment`, `dm`, `link`, `follow`, `none`. Default: `comment`32- `count` -- (optional) number of variants to generate. Default: 23334## Phase 1: Platform Voice Adaptation3536Adapt the base `outreach.tone` for each platform:3738| Platform | Tone Shift | Format Norms |39|----------|-----------|--------------|40| LinkedIn | Professional, insight-driven, first-person narrative | Line breaks between ideas, use of "I" and "we", no hashtag spam (max 3-5 at end) |41| X/Twitter | Punchy, opinionated, concise | Max 280 chars per tweet, threads use 1/ numbering, hot takes welcome |42| Instagram | Visual-first, aspirational, casual | Caption supports the visual, use line breaks, 5-15 relevant hashtags at end, emoji sparingly |43| Reddit | Helpful, community-native, no self-promo | Match subreddit tone, lead with value, mention experience naturally, no links in first reply |4445## Phase 2: Post Type Generation4647### Thought Leadership48- Open with a contrarian or surprising insight from the founder's perspective49- Support with data, observation, or experience50- Close with a question or takeaway51- LinkedIn: 150-300 words, line breaks every 1-2 sentences52- Twitter: Single tweet (280 chars) or thread (3-7 tweets)53- Instagram: 100-200 word caption paired with a quote card concept54- Reddit: 150-400 words matching the subreddit's expertise level5556### Case Study Snippet57- Lead with the result (number, metric, transformation)58- Brief context (who, what problem)59- What was done (2-3 bullet points max)60- Result reinforced61- Soft CTA62- LinkedIn: 150-250 words, use bullet points for the "what we did"63- Twitter: Single tweet with key metric + thread for breakdown64- Instagram: Stat-forward caption with before/after framing6566### Hot Take67- Bold, opinionated statement on an industry trend68- Back it up with one proof point69- Invite disagreement70- LinkedIn: 50-150 words, conversational71- Twitter: Single tweet, max edge without being hostile72- Instagram: Quote-style caption7374### Engagement Question75- Ask a genuine question the audience cares about76- Provide 2-3 options or your own take first77- Designed to drive comments78- LinkedIn: Question + context (50-100 words)79- Twitter: Question only (under 200 chars)80- Instagram: Question in caption, use poll sticker concept for stories8182### Carousel Outline83- LinkedIn/Instagram only84- 5-10 slides with headline + supporting text per slide85- Slide 1: Hook (scroll-stopping statement)86- Slides 2-8: Core content (one idea per slide)87- Slide 9: Summary or key takeaway88- Slide 10: CTA slide (follow, DM, comment)89- Output as structured slide-by-slide text9091### Thread92- Twitter/LinkedIn only93- 3-10 posts in sequence94- Post 1: Hook that promises value ("Here's how we 3x'd conversion rate for a sports brand")95- Posts 2-8: One insight per post, each standalone-readable96- Final post: Summary + CTA97- Number each: 1/, 2/, etc.9899### Story Caption100- Instagram only101- Ultra-short (1-2 lines)102- Designed to pair with a visual103- Include engagement prompt (poll, question, emoji slider)104105## Phase 3: Quality Check106107Before returning, verify every post:1081091. **Banned phrase scan**: Check against `outreach.banned_phrases`. Rewrite if any match.1102. **Character limits**: Twitter posts under 280 chars. LinkedIn under 3000 chars. Instagram under 2200 chars.1113. **Tone check**: Re-read against platform voice. Rewrite if it sounds corporate, generic, or salesy.1124. **Hashtag rules**: LinkedIn max 5, Instagram 5-15, Twitter max 3, Reddit zero.1135. **CTA count**: One CTA per post (or none for pure value posts).1146. **Self-promo check for Reddit**: No direct links or pitches. Help first, credibility naturally.1157. **No emojis overload**: Max 2-3 per LinkedIn post, 5-8 per Instagram caption, 0-1 per tweet.116117## Phase 4: Output118119Return structured JSON:120121```json122{123 "platform": "linkedin",124 "post_type": "thought-leadership",125 "variants": [126 {127 "text": "Full post text with line breaks...",128 "hashtags": ["#Shopify", "#D2C", "#Ecommerce"],129 "character_count": 487,130 "word_count": 82,131 "cta": "What's your take? Drop a comment.",132 "visual_suggestion": "Screenshot of a Shopify analytics dashboard showing the metric",133 "best_posting_time": "Tuesday 9-11 AM IST / Tuesday 7-9 AM GMT"134 },135 {136 "text": "Variant 2...",137 "hashtags": ["#ShopifyPartner", "#EcommerceTips"],138 "character_count": 412,139 "word_count": 71,140 "cta": "DM me if you want the full breakdown.",141 "visual_suggestion": "Carousel with 5 key points from the post",142 "best_posting_time": "Wednesday 12-2 PM IST"143 }144 ],145 "topic": "Why most D2C brands underinvest in product page CRO",146 "personalization_source": "Kibi Sports case study",147 "generated_at": "2026-03-13T10:00:00Z"148}149```150151## Phase 5: Scheduling Recommendation152153For each post, suggest optimal posting time based on platform best practices:154155| Platform | Best Times (IST) | Best Days |156|----------|-----------------|-----------|157| LinkedIn | 9-11 AM, 12-1 PM | Tue, Wed, Thu |158| Twitter | 8-10 AM, 12-1 PM, 5-6 PM | Mon-Fri |159| Instagram | 11 AM-1 PM, 7-9 PM | Tue, Wed, Fri |160| Reddit | 6-8 AM EST (for US subs) | Mon, Wed |161162For India-focused audience, adjust to IST prime hours. For US/UK audience, adjust to their local times.163164## Example Usage165166Trigger phrases:167- "Write a LinkedIn post about CRO for D2C brands"168- "Create a Twitter thread about our Kibi Sports results"169- "Write an Instagram caption for a case study post"170- "Generate a hot take about Shopify themes for LinkedIn"171- "Write a Reddit-friendly comment about Shopify development"172- "Create a LinkedIn carousel outline about ecommerce mistakes"173- "Generate 3 engagement questions for LinkedIn this week"