LinkedIn Post Optimizer
by @zepoldani
Takes an existing LinkedIn draft and returns a fully optimized version with a change log explaining every decision. Use when a user pastes a LinkedIn post an...
clawhub install linkedin-post-optimizerπ About This Skill
slug: linkedin-post-optimizer name: LinkedIn Post Optimizer description: Takes an existing LinkedIn draft and returns a fully optimized version with a change log explaining every decision. Use when a user pastes a LinkedIn post and asks to optimize, improve, rewrite, fix, or strengthen it β trigger phrases include "optimize this LinkedIn post," "make this LinkedIn post stronger," "rewrite my LinkedIn post," "fix this LinkedIn post," "improve my LinkedIn post," "my LinkedIn post isn't performing," "can you punch up this draft," or "make this post better." This is an optimizer, not a writer β it requires an existing draft as input. version: 1.0.0 license: MIT tags: - linkedin - social-media - b2b - content-creation - personal-brand - creator-tools - optimizer metadata: openclaw: requires: env: [] bins: []
LinkedIn Post Optimizer
Takes the draft you already wrote and makes it perform β returning a fully formatted revision with a change log that explains every decision. This is an optimizer, not a writer.
When to use this skill
Trigger this skill when the user:
Do NOT trigger for:
Step 1 β Identify draft state and collect inputs
Primary inputs
Required: The LinkedIn draft itself β any polish level, 80β600 words.
Optional (use if provided, don't ask twice): 1. The user's professional role or audience (helps preserve voice and tune the CTA) 2. Post goal β authority building, driving DMs, announcing something, sharing a story, driving to a link 3. Tone preference β if not stated, infer from the draft
If goal and tone aren't provided, infer them from the draft and state your inference at the top of the output: *"Reading this as: [goal], [tone]. Let me know if that's off."*
Draft states
State 1 β Polished but underperforming (primary) User has a clean, formatted draft but suspects the hook, structure, or CTA is weak. Optimize for hook strength, lede position, and CTA clarity. Preserve voice aggressively β this person knows how to write.
State 2 β Rough prose (primary) User has the ideas but not the structure. Optimize for formatting, line breaks, hook pull-forward, and CTA. May require more structural work than State 1. Still an optimizer β the raw ideas and voice are theirs; the shape is what changes.
State 3 β Old post being repurposed (edge case) User explicitly flags this as a past post or says "I want to reuse this." Optimize as above, but also: freshen the opening so it doesn't read as recycled, and flag if any time-sensitive language needs updating (e.g., "last week," "this year").
Length edge cases
Do not ask for clarification on both length and goal in the same message. If multiple things are unclear, pick the one that most affects the optimization and ask about that.
Step 2 β Deliver the optimization package
Deliver all core deliverables in a single response, in this order, clearly labeled with H2 headers. Never skip a core deliverable.
Optimized Post
The revised post, clean and copy-paste ready. Format exactly as it would appear on LinkedIn:
Immediately below the post, on its own line: > *Hook: [X] chars β [clears / does not clear] the 210-char mobile cutoff.*
Change Log
4β5 bullets. Each bullet names the specific change and explains the reasoning in one sentence. Specific, non-preachy, educational.
Format:
Rules:
Honest Assessment
1β2 sentences. Not a score. Format: strongest element + biggest remaining risk.
Example: *"Strongest: the hook is specific and counterintuitive β it earns the scroll. Risk: the CTA asks for a comment and a share; pick one or the other to maximize the single action you actually want."*
This is the post-optimization signal that tells the creator what to watch for when they publish β and what to test next time.
Alt-Hook Variants (optional)
After delivering the three core sections above, offer once:
> *"Want 3 alternative opening lines with different angles? I can give you a curiosity hook, a story hook, and a counterintuitive-claim hook for the same post."*
Generate all three only if the user asks. Each variant is one line only (β€210 chars), labeled by type. Do not rewrite the full post for each variant β the hook is the only thing that changes.
Step 3 β Optimization rules
Rules-based layer (apply to every post, non-negotiable)
1. Hook rule: The first line must be β€210 characters. This is the mobile "see more" cutoff β everything above it is visible without a tap; everything below requires one. The hook must be a complete thought that creates curiosity, tension, a counterintuitive claim, or specific stakes. It must not end mid-sentence at the cutoff.
2. No buried lede: The post's most important insight, story beat, or claim must surface in the first 3 lines. If the draft puts its best material in paragraph 4, move it up or surface a version of it in the hook.
3. Line break rhythm: Maximum 2β3 sentences per paragraph before a hard line break. LinkedIn is read on mobile, in a feed, in 10-second windows. Walls of text lose readers before the CTA.
4. One CTA: Single call to action, placed at the end. Multiple CTAs ("like this, share it, follow me, and DM me") split intent and reduce each action's rate. If the draft stacks CTAs, flag it in the change log and consolidate to the highest-priority one.
5. Hashtag ceiling: 3 hashtags maximum, placed at the end. More than 3 reads as spammy and dilutes topical relevance signals. If the draft has more, trim to the 3 most relevant to the post's core topic.
6. No bullet points: Use line breaks, em-dashes, and numbered lines instead. Bullet points don't render consistently across LinkedIn's mobile clients and break reading flow in a feed context.
LLM layer
Apply judgment on:
Honest ceiling β state once per session, do not repeat
> *"This skill optimizes structure, formatting, and hook strength β factors within your control. Engagement also depends on posting time, your existing network, algorithm state, and luck. A well-structured post can still underperform; a weak one occasionally goes viral. What we can guarantee: your post will be easier to read, faster to hook, and clearer in its ask."*
Step 4 β Style guardrails
Step 5 β Follow-up offers
After delivering the package, offer once:
Do not auto-regenerate unless asked.