Skill detail
linkedin-post-generator
Generates LinkedIn posts from source material in a personal voice.
Inspect before use
Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.
SKILL.md
The saved excerpt is a snapshot from review. The external source remains the complete and most current version.
---
name: linkedin-post-generator
description: >
LinkedIn post generation from meeting transcripts, Slack dumps, and other source material,
written in the user's personal writing style. Use this skill when: generating LinkedIn posts,
creating social content from internal material, ghostwriting LinkedIn content, or when the user
mentions LinkedIn, social posts, or content generation from transcripts/notes.
Supports personal style profiles stored locally per user.
Can auto-pull source material from Fireflies.ai, Slack channels, and Google Drive.
---
# LinkedIn Post Generator
Generate LinkedIn posts from shared source material, written in each user's personal style.
## How It Works
1. **Personal style profile** — stored locally at `~/.config/casper/linkedin-style.md` (never committed)
2. **Source config** — stored locally at `~/.config/casper/linkedin-sources.md` (never committed)
3. **Shared source material** — meeting transcripts, Slack dumps, docs in `source-material/`
4. **Prompt template** — extraction rules, voice guidelines, few-shot examples in `references/prompt-template.md`
## First Run: Style Setup
Check if `~/.config/casper/linkedin-style.md` exists.
**If it does NOT exist**, run the style setup flow:
1. Say: "Welcome to the LinkedIn Post Generator! Before we start, I need to understand your writing style."
2. Say: "Share 3 LinkedIn posts that match the style you want. You can either paste the post links (e.g. `https://linkedin.com/posts/...`) or paste the text directly."
3. Wait for the user to provide 3 posts
4. **If the user provides LinkedIn URLs**, fetch the post content using the `apify-scrapers` skill from the `research` plugin:
```bash
python ${CLAUDE_PLUGIN_ROOT}/../../bizdev/research/skills/apify-scrapers/scripts/scrape_linkedin_posts.py search "{url}" --max-posts 1
```
If the script isn't found (the `research` plugin isn't installed) or the call fails, tell the user: "LinkedIn URL fetching needs the `research` plugin (`/plugin install research`) — paste the post text instead for now." Then continue with pasted text.
5. Analyze the posts for: tone, sentence length, vocabulary, formatting habits, hook style, CTA style, use of questions, paragraph length, overall energy
6. Create `~/.config/casper/` directory if it doesn't exist
7. Save the analysis to `~/.config/casper/linkedin-style.md` using this format:
```markdown
# LinkedIn Style Profile
Generated: [date]
## Tone
[analysis]
## Structure Patterns
[paragraph length, line breaks, formatting habits]
## Hook Style
[how they open posts]
## CTA / Closing Style
[how they end posts — questions, challenges, etc.]
## Vocabulary & Phrases
[distinctive phrases, word choices, energy level]
## Sample Posts
[the 3 original posts, for reference]
```
8. Confirm: "Got it! Your style profile is saved. You can update it anytime with `/content-marketing:generate-linkedin-post --setup`"
## First Run: Source Material Check
After style setup completes (or if style exists but source-material/ is empty), check for source material:
1. Check if `source-material/` contains any `.md` files besides `README.md`
2. **If empty**, guide the user:
- Say: "You don't have any source material yet. I need content to generate posts from — meeting transcripts, notes, Slack conversations, etc."
- Present options:
- **"Connect integrations"** — run the `--setup-sources` flow to configure Fireflies, Slack, or Google Drive auto-pulling
- **"Paste something manually"** — run the `--add-source` flow to let the user paste a transcript, notes, or other content
- Wait for user choice and proceed with the selected flow
3. **If source material exists**, proceed with generation
## Normal Run: Post Generation
**If style config exists and source material is available**, proceed with generation:
1. Read `~/.config/casper/linkedin-style.md`
2. Read ALL files in `${CLAUDE_PLUGIN_ROOT}/skills/linkedin-post-generator/source-material/` (excluding READMRead the full source on GitHub (opens external page)