LinkedIn Content Generation โ Claude Code Skill
A production-ready Claude Code skill that turns your AI assistant into a personal LinkedIn Content Strategist. Generate SEO-optimised posts, carousels, newsletters, and content calendars โ with a reinforcement learning memory that gets smarter every time you use it.
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]

โจ What This Skill Does
Once installed, type a slash command in Claude Code and get professional LinkedIn content in seconds:
| Command | Output |
|---|
/generate-post | A ready-to-publish LinkedIn post with hook, body, CTA, and hashtags |
/generate-carousel | Numbered slide-by-slide carousel content + LinkedIn caption |
/generate-newsletter | A full long-form newsletter edition in Markdown |
/generate-calendar | A 30-day content calendar table with hooks and CTAs |
/feedback | Saves what worked to memory for smarter future content |
/show-memory | Displays your current preferences and learning history |
/clear-memory | Resets memory back to defaults |
Reinforcement Learning built-in: Every time you tell the skill what worked, it updates memory.md. Every future generation reads that memory and adapts to your personal voice, tone, and style โ automatically.
๐ Folder Structure
linkedin-content-skill/
โ
โโโ README.md โ You are here
โ
โโโ scripts/ โ Python scripts (visible & editable)
โ โโโ generate_post.py โ Post prompt builder
โ โโโ generate_carousel.py โ Carousel prompt builder
โ โโโ generate_newsletter.py โ Newsletter prompt builder
โ โโโ generate_calendar.py โ Calendar prompt builder
โ โโโ memory_manager.py โ Read/write/clear memory.md
โ โโโ utils.py โ Shared LinkedIn SEO prompt engine
โ โโโ memory.md โ Your RL database (edit this!)
โ
โโโ .claude/ โ Hidden folder (Claude Code reads this)
โโโ skills/
โโโ generate-post/SKILL.md
โโโ generate-carousel/SKILL.md
โโโ generate-newsletter/SKILL.md
โโโ generate-calendar/SKILL.md
โโโ feedback/SKILL.md
โโโ show-memory/SKILL.md
โโโ clear-memory/SKILL.md
Note: The .claude/ folder is hidden on macOS by default. Press โ Cmd + Shift + . in Finder to reveal hidden files.
๐ Installation โ Step by Step
Prerequisites
- Claude Code installed (
npm install -g @anthropic-ai/claude-code)
- Python 3.8 or higher (
python3 --version to check)
- A Claude Pro or Team account
Option A โ Install as a Project-Level Skill
Use this if you want the skill available only inside a specific project folder.
Step 1: Download this repository
# Clone via git
git clone https://github.com/yourusername/linkedin-content-skill.git
# OR download the ZIP from GitHub and unzip it
Step 2: Copy the skill into your project
# Navigate to your existing project (or create a new folder)
mkdir ~/my-project && cd ~/my-project
# Copy the .claude folder and scripts folder into your project root
cp -r /path/to/linkedin-content-skill/.claude .
cp -r /path/to/linkedin-content-skill/scripts .
Your project should now look like:
my-project/
โโโ .claude/
โ โโโ skills/
โ โโโ generate-post/SKILL.md
โ โโโ ... (all 7 skills)
โโโ scripts/
โโโ generate_post.py
โโโ ... (all scripts + memory.md)
Step 3: Launch Claude Code
cd ~/my-project
claude
Step 4: Verify installation
Type / in the Claude Code prompt. You should see all 7 LinkedIn commands in the autocomplete list.
Option B โ Install as a Global User-Level Skill
Use this if you want the skill available in every project you open with Claude Code.
Step 1: Download this repository
git clone https://github.com/yourusername/linkedin-content-skill.git
Step 2: Copy skills to your global Claude directory
# Create the global skills directory if it doesn't exist
mkdir -p ~/.claude/skills
# Copy all skill definitions globally
cp -r /path/to/linkedin-content-skill/.claude/skills/* ~/.claude/skills/
# Create a permanent home for the scripts (recommended: ~/.claude/linkedin-scripts)
mkdir -p ~/.claude/linkedin-scripts
cp -r /path/to/linkedin-content-skill/scripts/* ~/.claude/linkedin-scripts/
Step 3: Update script paths in each SKILL.md
Because the scripts now live at ~/.claude/linkedin-scripts/, update the bash commands in each .claude/skills/*/SKILL.md file. Replace:
# Old path
python3 scripts/generate_post.py
# New path (use the full absolute path)
python3 ~/.claude/linkedin-scripts/generate_post.py
Repeat for all 7 SKILL.md files.
Step 4: Launch Claude Code from any folder
claude
Type / โ your LinkedIn commands are now available globally in every project.
Personalising the Skill
Step 1: Set Your Niche and Tone (Do This First)
Open scripts/memory.md in any text editor and update the top section:
## ๐ง Core Identity & Tone
- **Primary Niche:** AI & Technology โ Change this to your niche
- **Tone:** Professional and story-driven โ Change this to your style
- **Voice:** First-person, confident โ Describe your writing voice
This is the most important personalisation step. Every script reads this file before generating.
Step 2: Start Using and Giving Feedback
The skill learns from you over time. After generating content you love:
/feedback The contrarian hook about AI replacing developers got 500+ reactions. Save this.
Claude Code will automatically run memory_manager.py and store the learning. Future content will reflect it.
๐ ๏ธ How to Modify & Extend the Skill
To change how a command works โ edit the SKILL.md file
Each command's behaviour is defined in its SKILL.md:
| What you want to change | File to edit |
|---|
How Claude interprets /generate-post | .claude/skills/generate-post/SKILL.md |
How Claude interprets /generate-carousel | .claude/skills/generate-carousel/SKILL.md |
How Claude interprets /generate-newsletter | .claude/skills/generate-newsletter/SKILL.md |
How Claude interprets /generate-calendar | .claude/skills/generate-calendar/SKILL.md |
| How Claude saves feedback | .claude/skills/feedback/SKILL.md |
Example: To make /generate-post always ask for the niche before running, open .claude/skills/generate-post/SKILL.md and add to Step 1:
If `niche` is not specified, ALWAYS ask the user before proceeding.
To change the content quality and SEO rules โ edit utils.py
scripts/utils.py is the brain of the skill. It contains all the LinkedIn SEO rules injected into every prompt:
- Hook formulas โ Edit
LINKEDIN_SEO_RULES to add new hook patterns
- Structure rules โ Change the post structure (Hook โ Body โ CTA)
- Hashtag limits โ Adjust the hashtag count or strategy
- Tone rules โ Add new writing style guidance
To add new tone or style options โ edit the generator scripts
For example, to add a "humorous" tone to /generate-post:
Open scripts/generate_post.py and add to TONE_GUIDE:
TONE_GUIDE = {
...
"humorous": "Use wit and light humour. Keep it professional but make the reader smile.",
}
Then update .claude/skills/generate-post/SKILL.md to include humorous as an option.
To add a brand new command
- Create a new folder:
.claude/skills/your-command-name/
- Create
SKILL.md inside it with the format:
---
description: What this command does. Usage: /your-command-name <args>
allowed-tools: Bash
---
## Step 1 โ Parse Arguments
...
## Step 2 โ Run Script
```bash
python3 scripts/your_script.py --arg "$ARGUMENTS"
- Create
scripts/your_script.py with your logic
- Restart Claude Code โ the command is live immediately
๐ก Usage Examples
# Generate a controversial post about AI in the tech niche
/generate-post AI agents replacing junior developers in tech, tone: controversial
# Create a 10-slide carousel about LinkedIn growth hacks
/generate-carousel 10 LinkedIn growth hacks nobody tells you, 10 slides, listicle style
# Plan a full month of content with a lead generation goal
/generate-calendar AI & Technology niche, 30 days, goal: leads, 4 times a week
# Write a deep-dive newsletter edition
/generate-newsletter The state of AI agents in 2025, long format, niche: Technology
# Save what worked to memory
/feedback That storytelling post about my first startup failure got 800 reactions โ save the narrative hook style
# Check what the skill remembers about you
/show-memory
๐ Reinforcement Learning โ How It Works
You generate a post
โ
You post it on LinkedIn
โ
It performs well
โ
You run: /feedback <what worked>
โ
Claude runs: python3 scripts/memory_manager.py add ...
โ
memory.md is updated with a timestamped entry
โ
Every future generation reads memory.md
โ
Content becomes more aligned with YOUR voice over time
The memory.md file grows richer with every piece of feedback. After 10-20 feedback entries, the skill generates content that sounds genuinely like you.
Script Reference
scripts/generate_post.py
python3 scripts/generate_post.py --topic "<topic>" --niche "<niche>" [--tone <tone>] [--style <style>]
| Flag | Options | Default |
|---|
--tone | professional storytelling controversial educational motivational | professional |
--style | list-based text-only data-driven contrarian storytelling | list-based |
scripts/generate_carousel.py
python3 scripts/generate_carousel.py --topic "<topic>" --niche "<niche>" [--slides <n>] [--style <style>]
| Flag | Options | Default |
|---|
--slides | Integer 3โ12 | 7 |
--style | how-to listicle myth-busting framework story-arc | listicle |
scripts/generate_newsletter.py
python3 scripts/generate_newsletter.py --topic "<topic>" --niche "<niche>" [--length <length>] [--title "<title>"]
| Flag | Options | Default |
|---|
--length | short (~700w) medium (~1200w) long (~2000w) | medium |
scripts/generate_calendar.py
python3 scripts/generate_calendar.py --niche "<niche>" [--days <n>] [--frequency "<freq>"] [--goal <goal>]
| Flag | Options | Default |
|---|
--days | Any integer | 30 |
--frequency | e.g. "daily" "3 times a week" | "3 times a week" |
--goal | awareness engagement leads authority growth | growth |
scripts/memory_manager.py
python3 scripts/memory_manager.py add --id "<id>" --feedback "<text>" [--tags "<tags>"]
python3 scripts/memory_manager.py read
python3 scripts/memory_manager.py clear
Platform Compatibility
| Platform | Support |
|---|
| Claude Code (CLI) | โ
Full native support โ slash commands auto-register |
| Claude Projects (Web) | โ ๏ธ Partial โ paste SKILL.md contents into Custom Instructions; upload memory.md to Knowledge |
| GitHub Copilot | โ ๏ธ Partial โ add SKILL.md content to .github/copilot-instructions.md |
| Cursor | โ ๏ธ Partial โ add SKILL.md content to .cursorrules |
Contributing
Contributions are welcome. To add a new command or improve an existing one:
- Fork this repository