writing-linkedin-posts

📁 jay-sahnan/skills 📅 6 days ago
1
总安装量
1
周安装量
#49217
全站排名
安装命令
npx skills add https://github.com/jay-sahnan/skills --skill writing-linkedin-posts

Agent 安装分布

amp 1
opencode 1
kimi-cli 1
codex 1
github-copilot 1
gemini-cli 1

Skill 文档

LinkedIn Post Writer

Create engaging, authentic LinkedIn posts that sound like the user—not generic LinkedIn content.

First-Time Setup

This skill scrapes the user’s LinkedIn posts to learn their voice. It requires two environment variables.

Check if already configured:

echo $LINKEDIN_USERNAME $APIFY_TOKEN

If not set, guide the user:

  1. Get an Apify API token (free tier available): https://console.apify.com/settings/integrations

  2. Find LinkedIn username (last part of profile URL): linkedin.com/in/jaysahnan → jaysahnan

  3. Add to ~/.zshrc:

    export APIFY_TOKEN="your_token_here"
    export LINKEDIN_USERNAME="your_username"
    
  4. Run: source ~/.zshrc

Note: Never store tokens in settings.json values. Use environment variables only.

Primary Approach: Learn Their Voice First

Before writing any post, scrape the user’s existing LinkedIn posts to learn their authentic voice. The user’s actual tone, formatting, and style is the primary guide. Algorithm research is secondary context.

  1. Run scripts/scrape_my_posts.py (reads from env vars)
  2. Analyze their posts for voice patterns
  3. Write posts that match their authentic style
  4. Ask if they want the post copied to clipboard

See “Learning the User’s Voice” section for the full workflow.

Core Principles

Authenticity Over Performance

LinkedIn has matured. Readers can spot manufactured vulnerability and engagement bait instantly. The posts that resonate now are genuinely useful or genuinely human—not optimized for virality.

What works:

  • Real experiences with honest reflection
  • Specific insights from your actual work
  • Admitting what you don’t know
  • Sharing without needing validation

What doesn’t:

  • Performed vulnerability for engagement
  • Stories that feel too perfectly structured
  • Lessons that sound like motivational posters

One Idea Per Post

The biggest mistake is cramming multiple tips, stories, or angles into one post. Focus on:

  • One core idea
  • One story
  • One insight
  • One lesson

If you have five points, that’s five posts.

Value Without Strings

Every post must educate, inspire, or entertain. Ask: “Would I find this valuable if a stranger posted it?” Not “Will this get engagement?”

Building Your Signature Voice

Top Voices don’t just post well—they’re recognizable. Their perspective, style, and focus areas are consistent.

Define Your POV

Answer these before writing:

  • What topic do I have genuine expertise in?
  • What’s my contrarian belief in my industry?
  • What perspective do I bring that others don’t?
  • What would I want to be known for saying?

Consistency Markers

Develop 2-3 recognizable elements:

  • A recurring theme or topic area
  • A consistent tone (analytical, warm, direct, witty)
  • A signature format you’re known for
  • Phrases or frameworks you’ve coined

Voice Calibration

Your LinkedIn voice should be:

  • More polished than a text to a friend
  • Less formal than a company memo
  • As smart as your best work conversations
  • As human as your real personality

Post Anatomy

The Hook (Lines 1-2)

The first 2-3 lines appear before “See more” and determine everything.

Modern hooks that work (avoid overused patterns):

Type Example Why It Works
Honest admission “I’ve been wrong about remote work.” Genuine, not performed
Specific observation “I’ve noticed something in every founder who scaled past $10M.” Credibility + curiosity
Direct challenge “Most career advice optimizes for the wrong thing.” Provokes thought
Unexpected angle “The best hire I made had the worst resume.” Subverts expectations
Simple truth “Nobody talks about how lonely leadership is.” Resonates emotionally

Hooks to retire:

  • “This one thing made me $X” (feels like a scam ad)
  • “The CEO pulled me aside and said…” (overused curiosity bait)
  • “I’m excited to announce…” (corporate and skippable)
  • “[Number] words that changed my life” (too formulaic)

See references/hooks.md for comprehensive examples.

The Body

Structure for scannability:

  • Short paragraphs (1-3 sentences max)
  • Line breaks between thoughts
  • Bullet points for lists (but don’t overuse)
  • Bold for emphasis sparingly

Storytelling framework:

  1. Set the scene (briefly—one sentence)
  2. Introduce tension or conflict
  3. Show the turning point
  4. Deliver the insight
  5. Make it applicable to the reader

The Close

End with purpose, not desperation:

Good closes:

  • Genuine question that invites perspective
  • Specific call to action (“Bookmark this for your next negotiation”)
  • Reflection that lingers (“Something to sit with this week”)

Avoid:

  • “Agree?” (lazy)
  • “Comment YES if…” (engagement bait)
  • “Share this with someone who needs it” (needy)
  • “Follow me for more” (salesy)

Vulnerability Done Right

Authentic sharing builds connection. Performed vulnerability destroys trust.

Strategic Vulnerability vs. Exploitation

Share when:

  • The experience taught you something others can learn
  • You’ve processed it enough to offer perspective
  • It serves the reader, not your need for validation
  • Time has passed and you have hindsight

Don’t share when:

  • The wound is still fresh
  • You’re seeking sympathy, not providing value
  • It could harm others involved
  • It feels performative even to you

The Vulnerability Test

Before posting something personal, ask:

  1. Am I sharing this to help others or to process my own feelings?
  2. Would I be comfortable if this went viral?
  3. Does this include genuine insight or just pain?
  4. Have I protected others who were involved?

Post Formats

Story Post

Best for: Personal experiences, lessons learned, career moments

[Hook - honest admission or surprising outcome]

[One sentence of context]

[What happened - the tension or challenge]

[The turning point]

[What you learned]

[Question or reflection for reader]

List Post

Best for: Frameworks, actionable advice, curated insights

[Hook - clear value promise]

[Why this matters - one sentence]

1. [Point with brief context]
2. [Point with brief context]
3. [Point with brief context]
(3-7 items max)

[Closing insight or question]

Contrarian Post

Best for: Challenging conventional wisdom (with substance)

[Hook - your contrarian position, stated directly]

[The common belief you're challenging]

[Your reasoning - why you see it differently]

[Evidence or experience]

[Nuanced conclusion - acknowledge complexity]

[Invite discussion]

Contrarian guardrails:

  • Have genuine expertise on the topic
  • Argue against ideas, not people
  • Offer an alternative, not just criticism
  • Acknowledge what the other side gets right
  • Be open to being wrong

Observation Post

Best for: Industry insights, trends, patterns you’ve noticed

[What you've observed]

[Specific evidence or examples]

[Why it matters]

[Your interpretation]

[Question to test if others see it too]

Media Formats

Text-only posts aren’t the only option. Different formats serve different purposes.

Document/Carousel Posts

  • Higher save rates and extended engagement
  • Best for: step-by-step guides, frameworks, before/after
  • Keep to 5-10 slides
  • Each slide should stand alone
  • End with a summary or CTA slide

Image Posts

  • Use when visual adds genuine value (charts, diagrams, photos from events)
  • Avoid: stock photos, generic graphics, memes (unless that’s your brand)
  • Native uploads outperform links

Polls

  • Good for: genuine market research, sparking discussion
  • Bad for: obvious questions, engagement farming
  • Always follow up with your take on the results

Video

  • LinkedIn favors native video over links
  • Keep under 90 seconds for most content
  • Captions are essential (most watch muted)
  • Face-to-camera builds personal connection

Engagement Strategy

What happens after you post matters as much as what you post.

The First Hour

LinkedIn’s algorithm weighs early engagement heavily:

  • Respond to every comment in the first 60 minutes
  • Ask follow-up questions to extend conversations
  • Thank people genuinely, not generically

Comment Quality

Your comments on others’ posts build your brand too:

  • Add insight, not just agreement
  • Share relevant experience
  • Ask thoughtful follow-up questions
  • Avoid “Great post!” without substance

What Not to Do

  • Engagement pods (LinkedIn detects and penalizes these)
  • Asking people to “comment for a free resource”
  • Posting and disappearing
  • Commenting just to get visibility

Writing Guidelines

Tone Spectrum

Find your spot on each scale:

Corporate ←————————→ Casual
Reserved ←————————→ Vulnerable
Analytical ←————————→ Emotional
Serious ←————————→ Playful

Most Top Voices sit slightly right of center on each scale.

Length Guidelines

  • Ideal: 800-1,500 characters (enough for depth, short enough to finish)
  • Maximum: 3,000 characters
  • Use whitespace generously—dense text kills engagement

Formatting Rules

  • Never use hashtags inline with text
  • Place 3-5 hashtags at the very end, after a line break
  • One emoji max, if any (overuse signals inauthenticity)
  • Use “I” not “we” for personal posts

What to Avoid

Content anti-patterns:

  • “I’m excited to announce…” (corporate speak)
  • Humblebrags disguised as lessons
  • Recycled viral post formats (the airport conversation, the Uber driver wisdom)
  • Posting others’ frameworks without credit
  • Tragedy exploitation (using global events for engagement)

Engagement anti-patterns:

  • “Comment YES if you agree”
  • “Share this with 3 people”
  • Tagging people who didn’t ask to be tagged
  • Posting controversial takes you don’t actually believe
  • Fake questions where you just want to share your answer

Format anti-patterns:

  • Every. Sentence. As. Its. Own. Line.
  • Excessive emoji strings
  • ALL CAPS FOR EMPHASIS
  • Hashtag stuffing

Content Categories That Perform

  1. Career lessons – Failures, pivots, decisions made
  2. Behind-the-scenes – Real work experiences, how things actually work
  3. Industry insights – Patterns you’ve noticed, trends you’re seeing
  4. How-to frameworks – Actionable processes readers can apply
  5. Contrarian takes – Challenge assumptions (with substance)
  6. Personal milestones – Only when tied to broader insights

Learning the User’s Voice (Dynamic)

Before writing posts, scrape and analyze the user’s existing LinkedIn posts to match their authentic voice.

Step 1: Run the Scraper

If env vars are configured, just run:

python scripts/scrape_my_posts.py

If not configured, the script shows setup instructions.

Caching: Posts are cached in cache/. Subsequent runs use cache automatically. Use --refresh to fetch new posts.

Step 3: Analyze Voice Patterns

From the scraped posts, identify:

  1. Hook style – How do they open posts? Questions, statements, stories?
  2. Sentence structure – Short punchy vs. flowing sentences
  3. Formatting – Line breaks, lists (bullets vs arrows), paragraph length
  4. Tone – Analytical, warm, direct, playful, vulnerable?
  5. Common phrases – Recurring words or expressions
  6. Length – Typical post length in words/characters
  7. Closing style – Questions, CTAs, reflections?
  8. What they avoid – Hashtags, emojis, corporate speak?

Step 4: Create Voice Profile

Document findings:

User's LinkedIn Voice:
- Tone: [e.g., casual but professional, reflective]
- Hook style: [e.g., personal statements, questions]
- Formatting: [e.g., heavy whitespace, -> arrows for lists]
- Sentence style: [e.g., short paragraphs, 1-3 sentences]
- Common phrases: [e.g., "feels like", "the challenge is"]
- Typical length: [e.g., 300-500 chars]
- Avoids: [e.g., hashtags, excessive emojis, "Agree?"]

Step 5: Write in Their Voice

Use the voice profile to draft posts that sound authentically like them, not generic LinkedIn content.

Step 6: Offer Clipboard Copy

After presenting the draft, ask the user if they want it copied to clipboard for easy pasting into LinkedIn. If yes, use pbcopy (macOS) or equivalent to copy the plain text post.

References

  • scripts/scrape_my_posts.pyPrimary: Scrape user’s posts for voice learning
  • references/hooks.md – Hook patterns with 2025 engagement data
  • references/examples.md – Algorithm research and format performance data

Quick Checklist Before Posting

  1. Hook: Would this stop MY scroll?
  2. Focus: Is there ONE clear idea?
  3. Value: Would I find this useful if someone else posted it?
  4. Authenticity: Does this sound like me, not “LinkedIn me”?
  5. Format: Is it scannable with short paragraphs?
  6. Close: Does it invite genuine engagement?
  7. Vulnerability check: Am I sharing to help or to process?
  8. Cringe test: Will I be proud of this post in a year?