Social + SEO + GEO Workflow v2
Create social media content that performs on platforms AND gets cited by AI search engines.
CRITICAL: This is a 4-step sequential pipeline. Each step produces output. Each gate BLOCKS progress until every check passes. Do NOT combine steps. Do NOT skip gates.
Pre-Flight
- Check for
.agents/product-marketing-context.md. If it exists, load it.
- Gather from user (ask if not provided):
- Topic or source — What to post about
- Target platforms — Which social platforms
- Target AI engines — Which AI search engines matter
- Goal — Awareness, traffic, leads, authority, launch support
- Audience — Who reads this
- Research platform constraints BEFORE writing anything:
Platform Constraints Reference
| Platform |
Hard character limit |
Hashtag rules |
Format |
| X/Twitter |
280 chars per tweet (4000 Premium) |
1-2 per tweet, mid/end placement, must be active communities |
Thread = linked tweets, all posted at once |
| LinkedIn post |
3000 chars |
3-5 max, broad+niche mix, research active tags first |
Link in first comment, not body |
| LinkedIn article |
Unlimited |
N/A (use on sharing post only) |
H2/H3 headings, professional tone |
| Reddit |
40,000 chars body, 300 chars title |
None — Reddit does not use hashtags |
Subreddit norms vary, check rules |
| Product Hunt tagline |
60 chars max |
N/A — uses Topics |
No hype, no emojis unless part of name |
| Product Hunt description |
500 chars max |
N/A |
Value prop + features |
| Threads |
500 chars |
Similar to Twitter |
Short takes |
| Bluesky |
300 chars |
Minimal |
Short takes |
- Research hashtags BEFORE writing:
- Web search for trending hashtags in the relevant category + current month
- Verify each hashtag has an active community (not made-up)
- Twitter: pick 1-2 per tweet from verified active tags
- LinkedIn: pick 3-5 from verified active tags
- Never use hashtags with zero community (#UXValidation, #AITesting = bad)
- Prefer engaged niche communities (#BuildInPublic, #OpenSource) over saturated broad tags (#AI)
Step 1: Create Platform-Native Content
Invoke social-content.
Input: Topic, platforms, audience, brand voice.
Produce per platform:
- Post text that fits within the platform's hard character limit
- Platform-appropriate formatting (no markdown on platforms that don't render it)
- Hook (curiosity, story, value, or contrarian)
- CTA
- Hashtags (researched, verified active communities)
- Content pillar tag
Rules:
- One post per platform — never identical cross-posts
- Plain text only — no markdown formatting (no bold, no - bullets, no
code)
- Every post must be copy-paste ready into the platform's native editor
- Count characters for every tweet/post BEFORE moving to Gate 1
GATE 1 — Platform Compliance (BLOCKING)
Verify EVERY item. If ANY fails, rewrite before proceeding.
| Check |
How to verify |
Fail action |
| Character limit |
Count characters for each post/tweet |
Rewrite to fit |
| Platform formatting |
No markdown on platforms that render plain text |
Strip formatting |
| Hook present |
First 1-2 sentences create curiosity or value |
Rewrite opening |
| Single CTA |
One clear action per post |
Remove extra CTAs |
| Hashtags verified |
Each hashtag has active community (web searched) |
Replace with verified tag |
| Copy-paste clean |
Paste into a text editor — does it look right? |
Fix formatting |
| No identical cross-posts |
Compare all posts — none are the same |
Differentiate |
DO NOT proceed to Step 2 until Gate 1 passes 100%.
Step 2: Optimize for AI Extraction
Invoke ai-seo.
Input: Gate 1-approved posts from Step 1.
For EACH post, apply these optimizations in order:
Brand entity anchoring
- Product/brand name appears in the first 2 sentences
- Never use "it", "the tool", "our product", "a tool" when the brand name should appear
- Full brand name in every self-contained passage
Extractable passage creation
- Write 1-2 sentences per post that are self-contained (15-40 words for social, 134-167 words for articles)
- The passage must answer a question like "What is [Product]?" without surrounding context
- Test: if you copy JUST that sentence, does it make complete sense alone?
Statistical density
- At least one specific number per post (not vague like "minutes" — use "under 5 minutes" or "in 3 minutes")
- Named sources when possible
- Avoid unsubstantiated superlatives ("best", "leading", "revolutionary")
Adjacent search terms
- Include terms people actually search for, not just your brand vocabulary
- Example: if your product does "UX validation", also mention "automated testing", "QA", "user testing" at least once across the content set
- Each post doesn't need every term — distribute across the set
Source citations (long-form only)
- For LinkedIn articles, Reddit posts: add data points with attribution
- For tweets: one stat per tweet is sufficient
Rules:
- Optimizations must NOT break platform character limits (re-count after edits)
- Optimizations must NOT make the post sound robotic or keyword-stuffed
- Short-form (tweets, Threads): apply only items 1 and 2
- Long-form (LinkedIn, Reddit, articles): apply all 5
GATE 2 — AI Extraction Quality (BLOCKING)
| Check |
How to verify |
Fail action |
| Brand name in first 2 sentences |
Read each post opening |
Add brand name |
| Zero generic references |
Search for "it", "the tool", "our product", "a tool", "the system", "the workflow" |
Replace with product name |
| Extractable passage exists |
Copy the passage alone — does it answer "What is X?" |
Rewrite passage |
| Specific numbers, not vague |
Search for "minutes", "fast", "easy", "many" without a number |
Add specific number |
| Character limits still pass |
Re-count after all edits |
Trim to fit |
| Adjacent terms present |
Check that the full content set mentions how real people search |
Add bridging sentence |
DO NOT proceed to Step 3 until Gate 2 passes 100%.
Step 3: Tune Per AI Platform
Invoke geo-platform-optimizer.
Input: Gate 2-approved posts + user's target AI engines.
For EACH target AI platform, verify and apply:
Google AI Overviews
- At least one question-based heading per long-form post ("What is X?", "How does X work?")
- Direct answer immediately after the question (not 3 paragraphs of backstory first)
- Lists or structured formatting where appropriate
ChatGPT
- Full brand/product names used consistently (ChatGPT uses entity recognition)
- Freshness signal: include a date or "as of [month year]" in at least one post
- Ensure Reddit posts exist (ChatGPT indexes Reddit heavily)
Perplexity
- Reddit posts have quotable standalone paragraphs (not just narrative flow)
- Original data or first-party insights present
- Conversational but factual tone
Gemini
- YouTube video link included in at least one post (or noted as companion action)
- Google ecosystem signals mentioned if relevant (Google Business, Knowledge Panel)
Copilot
- LinkedIn post is detailed and rich (Copilot weights LinkedIn heavily)
- Linked pages load fast
- IndexNow submission noted as companion action
Claude / Deepseek / Others
- Clear factual claims with structured comparisons
- No hedged language ("might", "could", "possibly")
- Technical accuracy in any code or commands (verify they actually work)
GATE 3 — Platform-Specific AI Signals (BLOCKING)
| Check |
How to verify |
Fail action |
| Question headings (long-form) |
Count question-format headings per post |
Add at least 1 per long-form post |
| Brand names in every extractable passage |
Re-read each quotable sentence |
Fix missing names |
| YouTube/video companion |
Is a video link or companion action noted? |
Add it |
| Reddit posts are quotable |
Read each Reddit paragraph in isolation |
Rewrite weak paragraphs |
| LinkedIn is rich enough for Copilot |
Is the LinkedIn post the most detailed? |
Expand if thin |
| All commands/code verified |
Test every install command, URL, and code block |
Fix or remove |
| Character limits STILL pass |
Final count after all edits |
Trim to fit |
| Freshness date included |
At least one post has a date reference |
Add one |
DO NOT proceed to Step 4 until Gate 3 passes 100%.
Step 4: Review and Deliver
Final assembly and cross-file consistency check.
GATE 4 — Cross-Content Consistency (BLOCKING)
| Check |
How to verify |
Fail action |
| Same stats everywhere |
Are numbers consistent across all posts? (e.g., "70+ tools" not "70 tools" in one and "100+ tools" in another) |
Align |
| Same positioning |
Is the product described the same way across platforms? |
Align |
| No conflicting information |
Check pricing, feature claims, dates |
Fix conflicts |
| No leftover references |
Search for removed campaigns (e.g., April Fools), draft placeholder text, TODO notes |
Remove |
| Dates are correct |
Every date reference matches the actual launch date |
Fix |
| URLs are correct and live |
Test every URL in the content |
Fix or remove |
| Engagement plans are actionable |
Does each post file have clear instructions for the person posting? |
Add instructions |
Final Output Format
Deliver each post as a separate file. Each file contains:
- Platform name and posting instructions (timing, format, actions after posting)
- COPY-PASTE section clearly marked — plain text, ready to paste with zero edits
- Companion content (first comment, reply, follow-up) also copy-paste ready
- Engagement plan for that platform
Plus one summary report:
| Post |
Platform |
Chars |
Gate 1 |
Gate 2 |
Gate 3 |
Gate 4 |
Status |
| ... |
... |
... |
Pass/Fail |
Pass/Fail |
Pass/Fail |
Pass/Fail |
Ready / Needs work |
Optional Add-Ons
| Situation |
Add this skill |
Why |
| Post links to a long-form article |
article-writing + seo-content |
The linked page needs its own SEO/GEO optimization |
| Site needs structured data |
schema-markup |
sameAs and speakable properties boost entity recognition |
| Want psychology-driven hooks |
marketing-psychology |
Ground hooks in cognitive biases |
| Scaling to a content calendar |
content-strategy |
Build a full editorial plan first |
| Running paid amplification |
ad-creative |
Adapt top organic posts into ad variations |
Metrics to Track
| Metric |
Tool |
What it tells you |
| AI citation appearance |
Otterly AI, Peec AI, manual checks |
Are AI engines citing your content? |
| Platform engagement |
Native analytics |
Are humans engaging? |
| Click-through to site |
UTM tracking |
Is social driving traffic? |
| Brand mention growth |
Google Alerts, social listening |
Is your authority signal growing? |
1---2name: wf-social-seo-geo3description: Social media content workflow optimized for AI search visibility. Chains social-content, ai-seo, and geo-platform-optimizer into a 4-step pipeline with hard quality gates between each step. Produces platform-native posts tuned for Google AI Overviews, ChatGPT, Perplexity, Gemini, and Copilot. Use when user says "social post with SEO", "social content for AI search", "social + GEO", "AEO social content", "AI-optimized social posts", "social media workflow", "post with AI visibility", or wants social content that ranks in both traditional and AI-powered search.4---56# Social + SEO + GEO Workflow v278Create social media content that performs on platforms AND gets cited by AI search engines.910CRITICAL: This is a 4-step sequential pipeline. Each step produces output. Each gate BLOCKS progress until every check passes. Do NOT combine steps. Do NOT skip gates.1112---1314## Pre-Flight15161. Check for `.agents/product-marketing-context.md`. If it exists, load it.172. Gather from user (ask if not provided):18 - Topic or source — What to post about19 - Target platforms — Which social platforms20 - Target AI engines — Which AI search engines matter21 - Goal — Awareness, traffic, leads, authority, launch support22 - Audience — Who reads this233. Research platform constraints BEFORE writing anything:2425### Platform Constraints Reference2627| Platform | Hard character limit | Hashtag rules | Format |28|----------|---------------------|---------------|--------|29| X/Twitter | 280 chars per tweet (4000 Premium) | 1-2 per tweet, mid/end placement, must be active communities | Thread = linked tweets, all posted at once |30| LinkedIn post | 3000 chars | 3-5 max, broad+niche mix, research active tags first | Link in first comment, not body |31| LinkedIn article | Unlimited | N/A (use on sharing post only) | H2/H3 headings, professional tone |32| Reddit | 40,000 chars body, 300 chars title | None — Reddit does not use hashtags | Subreddit norms vary, check rules |33| Product Hunt tagline | 60 chars max | N/A — uses Topics | No hype, no emojis unless part of name |34| Product Hunt description | 500 chars max | N/A | Value prop + features |35| Threads | 500 chars | Similar to Twitter | Short takes |36| Bluesky | 300 chars | Minimal | Short takes |37384. Research hashtags BEFORE writing:39 - Web search for trending hashtags in the relevant category + current month40 - Verify each hashtag has an active community (not made-up)41 - Twitter: pick 1-2 per tweet from verified active tags42 - LinkedIn: pick 3-5 from verified active tags43 - Never use hashtags with zero community (#UXValidation, #AITesting = bad)44 - Prefer engaged niche communities (#BuildInPublic, #OpenSource) over saturated broad tags (#AI)4546---4748## Step 1: Create Platform-Native Content4950Invoke `social-content`.5152Input: Topic, platforms, audience, brand voice.5354Produce per platform:55- Post text that fits within the platform's hard character limit56- Platform-appropriate formatting (no markdown on platforms that don't render it)57- Hook (curiosity, story, value, or contrarian)58- CTA59- Hashtags (researched, verified active communities)60- Content pillar tag6162Rules:63- One post per platform — never identical cross-posts64- Plain text only — no markdown formatting (no **bold**, no - bullets, no `code`)65- Every post must be copy-paste ready into the platform's native editor66- Count characters for every tweet/post BEFORE moving to Gate 16768### GATE 1 — Platform Compliance (BLOCKING)6970Verify EVERY item. If ANY fails, rewrite before proceeding.7172| Check | How to verify | Fail action |73|-------|--------------|-------------|74| Character limit | Count characters for each post/tweet | Rewrite to fit |75| Platform formatting | No markdown on platforms that render plain text | Strip formatting |76| Hook present | First 1-2 sentences create curiosity or value | Rewrite opening |77| Single CTA | One clear action per post | Remove extra CTAs |78| Hashtags verified | Each hashtag has active community (web searched) | Replace with verified tag |79| Copy-paste clean | Paste into a text editor — does it look right? | Fix formatting |80| No identical cross-posts | Compare all posts — none are the same | Differentiate |8182DO NOT proceed to Step 2 until Gate 1 passes 100%.8384---8586## Step 2: Optimize for AI Extraction8788Invoke `ai-seo`.8990Input: Gate 1-approved posts from Step 1.9192For EACH post, apply these optimizations in order:93941. Brand entity anchoring95 - Product/brand name appears in the first 2 sentences96 - Never use "it", "the tool", "our product", "a tool" when the brand name should appear97 - Full brand name in every self-contained passage98992. Extractable passage creation100 - Write 1-2 sentences per post that are self-contained (15-40 words for social, 134-167 words for articles)101 - The passage must answer a question like "What is [Product]?" without surrounding context102 - Test: if you copy JUST that sentence, does it make complete sense alone?1031043. Statistical density105 - At least one specific number per post (not vague like "minutes" — use "under 5 minutes" or "in 3 minutes")106 - Named sources when possible107 - Avoid unsubstantiated superlatives ("best", "leading", "revolutionary")1081094. Adjacent search terms110 - Include terms people actually search for, not just your brand vocabulary111 - Example: if your product does "UX validation", also mention "automated testing", "QA", "user testing" at least once across the content set112 - Each post doesn't need every term — distribute across the set1131145. Source citations (long-form only)115 - For LinkedIn articles, Reddit posts: add data points with attribution116 - For tweets: one stat per tweet is sufficient117118Rules:119- Optimizations must NOT break platform character limits (re-count after edits)120- Optimizations must NOT make the post sound robotic or keyword-stuffed121- Short-form (tweets, Threads): apply only items 1 and 2122- Long-form (LinkedIn, Reddit, articles): apply all 5123124### GATE 2 — AI Extraction Quality (BLOCKING)125126| Check | How to verify | Fail action |127|-------|--------------|-------------|128| Brand name in first 2 sentences | Read each post opening | Add brand name |129| Zero generic references | Search for "it", "the tool", "our product", "a tool", "the system", "the workflow" | Replace with product name |130| Extractable passage exists | Copy the passage alone — does it answer "What is X?" | Rewrite passage |131| Specific numbers, not vague | Search for "minutes", "fast", "easy", "many" without a number | Add specific number |132| Character limits still pass | Re-count after all edits | Trim to fit |133| Adjacent terms present | Check that the full content set mentions how real people search | Add bridging sentence |134135DO NOT proceed to Step 3 until Gate 2 passes 100%.136137---138139## Step 3: Tune Per AI Platform140141Invoke `geo-platform-optimizer`.142143Input: Gate 2-approved posts + user's target AI engines.144145For EACH target AI platform, verify and apply:146147### Google AI Overviews148- At least one question-based heading per long-form post ("What is X?", "How does X work?")149- Direct answer immediately after the question (not 3 paragraphs of backstory first)150- Lists or structured formatting where appropriate151152### ChatGPT153- Full brand/product names used consistently (ChatGPT uses entity recognition)154- Freshness signal: include a date or "as of [month year]" in at least one post155- Ensure Reddit posts exist (ChatGPT indexes Reddit heavily)156157### Perplexity158- Reddit posts have quotable standalone paragraphs (not just narrative flow)159- Original data or first-party insights present160- Conversational but factual tone161162### Gemini163- YouTube video link included in at least one post (or noted as companion action)164- Google ecosystem signals mentioned if relevant (Google Business, Knowledge Panel)165166### Copilot167- LinkedIn post is detailed and rich (Copilot weights LinkedIn heavily)168- Linked pages load fast169- IndexNow submission noted as companion action170171### Claude / Deepseek / Others172- Clear factual claims with structured comparisons173- No hedged language ("might", "could", "possibly")174- Technical accuracy in any code or commands (verify they actually work)175176### GATE 3 — Platform-Specific AI Signals (BLOCKING)177178| Check | How to verify | Fail action |179|-------|--------------|-------------|180| Question headings (long-form) | Count question-format headings per post | Add at least 1 per long-form post |181| Brand names in every extractable passage | Re-read each quotable sentence | Fix missing names |182| YouTube/video companion | Is a video link or companion action noted? | Add it |183| Reddit posts are quotable | Read each Reddit paragraph in isolation | Rewrite weak paragraphs |184| LinkedIn is rich enough for Copilot | Is the LinkedIn post the most detailed? | Expand if thin |185| All commands/code verified | Test every install command, URL, and code block | Fix or remove |186| Character limits STILL pass | Final count after all edits | Trim to fit |187| Freshness date included | At least one post has a date reference | Add one |188189DO NOT proceed to Step 4 until Gate 3 passes 100%.190191---192193## Step 4: Review and Deliver194195Final assembly and cross-file consistency check.196197### GATE 4 — Cross-Content Consistency (BLOCKING)198199| Check | How to verify | Fail action |200|-------|--------------|-------------|201| Same stats everywhere | Are numbers consistent across all posts? (e.g., "70+ tools" not "70 tools" in one and "100+ tools" in another) | Align |202| Same positioning | Is the product described the same way across platforms? | Align |203| No conflicting information | Check pricing, feature claims, dates | Fix conflicts |204| No leftover references | Search for removed campaigns (e.g., April Fools), draft placeholder text, TODO notes | Remove |205| Dates are correct | Every date reference matches the actual launch date | Fix |206| URLs are correct and live | Test every URL in the content | Fix or remove |207| Engagement plans are actionable | Does each post file have clear instructions for the person posting? | Add instructions |208209### Final Output Format210211Deliver each post as a separate file. Each file contains:2122131. Platform name and posting instructions (timing, format, actions after posting)2142. COPY-PASTE section clearly marked — plain text, ready to paste with zero edits2153. Companion content (first comment, reply, follow-up) also copy-paste ready2164. Engagement plan for that platform217218Plus one summary report:219220| Post | Platform | Chars | Gate 1 | Gate 2 | Gate 3 | Gate 4 | Status |221|------|----------|-------|--------|--------|--------|--------|--------|222| ... | ... | ... | Pass/Fail | Pass/Fail | Pass/Fail | Pass/Fail | Ready / Needs work |223224---225226## Optional Add-Ons227228| Situation | Add this skill | Why |229|-----------|---------------|-----|230| Post links to a long-form article | `article-writing` + `seo-content` | The linked page needs its own SEO/GEO optimization |231| Site needs structured data | `schema-markup` | `sameAs` and `speakable` properties boost entity recognition |232| Want psychology-driven hooks | `marketing-psychology` | Ground hooks in cognitive biases |233| Scaling to a content calendar | `content-strategy` | Build a full editorial plan first |234| Running paid amplification | `ad-creative` | Adapt top organic posts into ad variations |235236---237238## Metrics to Track239240| Metric | Tool | What it tells you |241|--------|------|-------------------|242| AI citation appearance | Otterly AI, Peec AI, manual checks | Are AI engines citing your content? |243| Platform engagement | Native analytics | Are humans engaging? |244| Click-through to site | UTM tracking | Is social driving traffic? |245| Brand mention growth | Google Alerts, social listening | Is your authority signal growing? |