Use when someone wants to grow an organic LinkedIn presence — a content strategy for a career change or consulting or thought leadership, a rewritten profile or headline, post drafts and hooks, a posting cadence or newsletter plan, connection notes and outreach, a commenting strategy, repurposing an article or talk into posts, or a read on why their reach dropped. Triggers on "grow my LinkedIn", "fix my headline", "write a LinkedIn post", "what should I post about", "LinkedIn strategy", "connection request", "my reach dropped". Forks context to route to one of five sub-skills, and refuses automation, scraping, pods, and bulk DMs before any drafting starts.
71
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
The canonical home for this skill is linkedin-skills in alirezarezvani/claude-skills
Portability + safety: 17 stdlib-only Python scripts. No LinkedIn credentials, no API calls, no scraping, nothing auto-sent. Every output is text the account holder posts themselves — automated posting, connecting, and commenting are prohibited by LinkedIn's User Agreement §8.2, and a restricted account ends the whole project.
Building an authentic presence over months, not generating a post. The five lanes cover what actually moves: who you are (profile), what you stand for (strategy), what you publish (content), who you talk to (engagement), and what any of it did (analytics).
python3 scripts/linkedin_policy_gate.py --text "<the user's own words>" --output humanpython3 scripts/linkedin_goal_router.py --text "<the goal>" --output humanExit 0 routes — invoke that lane, surfacing any prerequisite as a question first.
Exit 2 is ambiguous — ask one question naming both candidates, with a recommendation.
Exit 3 has no signal — ask what they want to walk away with, rather than guessing.
| Lane | Typical ask |
|---|---|
linkedin-profile | "fix my headline", "my profile gets views but nothing happens" |
linkedin-strategy | "what should I post about", "how often", "should I start a newsletter" |
linkedin-content | "write this post", "turn my talk into posts", "is this hook any good" |
linkedin-engagement | "who should I comment on", "write a connection note" |
linkedin-analytics | "why did reach drop", "what's working", "should I test this" |
One at a time, each with a recommended answer. Stop as soon as the lane can run honestly.
/cs:grill-linkedin walks all five with the recommendation and the canon behind each.
| Script | Role |
|---|---|
scripts/linkedin_policy_gate.py | ALLOW / CONSTRAIN / REFUSE against User Agreement §8.2 + Community Policies. 7 refusal rules, each with a substitute. |
scripts/linkedin_goal_router.py | Deterministic five-lane classifier: route (0) / ask (2) / no-signal (3), with cross-lane prerequisites. |
references/linkedin_platform_canon.md — how the feed ranks, evidence-graded (7 sources)references/policy_and_account_safety.md — §8.2, prohibited software, restriction triggers (7 sources)assets/linkedin_operating_agreement.md — the standing rules in one page, agreed before work startsmarketing-skill/x-twitter-growth — X/Twitter mechanics. Different platform and rules.marketing-skill/social-content / social-media-manager — multi-platform brand
calendars. This is one person's presence on one platform, in depth.marketing-skill/social-media-analyzer — cross-platform campaign reporting.Version: 1.0.0 · 5 lanes · 17 stdlib scripts · nothing auto-sent
19392f7
Canonical home
since Aug 28, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.