Develops a sustainable LinkedIn strategy by validating a positioning brief, calculating a realistic posting cadence based on available time, and determining newsletter eligibility. It produces a 90-day plan with specific content pillars, weekly time allocations, and a decision on whether to launch a newsletter.
Say it in your own words; the assistant finds this recipe by itself. Examples:
Use this skill when a user needs a high-level plan for their LinkedIn presence, specifically asking for content pillars, posting frequency, or a 90-day roadmap. It is the correct choice when the user is deciding whether to start a newsletter or trying to define their professional positioning for a career change or consulting practice. It handles strategic questions like 'what should I post about' or 'how often should I post' rather than writing the posts themselves.
Three decisions, in this order. Out of order is why most LinkedIn efforts produce a feed of unrelated observations and stop in week five.
1. The brief — an editorial constitution, not a wish. Walk the five questions one at a time, each with a recommended answer, then validate:
python3 scripts/positioning_brief.py --input brief.json --output human
It refuses on the two things that make everything downstream impossible: an objective that
is not one of the six real ones (career-change, consulting, thought-leadership,
hiring, fundraising, community), and an audience too broad to exclude anyone. It also
refuses fewer than two exclusions — a positioning that excludes nothing is availability.
Pillars: two to four, shares summing to 100, at least one backed by proof that already exists, at least one at 10-20% as the experimental slot. Every pillar needs a "why you"; if anyone could post it, cut it.
The script emits observable 90-day criteria. Follower count is deliberately absent — it moves for reasons unrelated to whether the objective is being met.
2. The cadence — priced against a bad week.
python3 scripts/cadence_planner.py --minutes 240 --stage starting --target-posts 3 --output human
Exit 0 fits / 2 below the 90-minute floor / 3 over budget with the overage named. Every activity is priced in minutes including the reply window, which is part of the post and not an extra. Allocation shifts with stage: from a standing start 60% of the budget belongs in other people's comment sections, because a post published to nobody reaches nobody.
Below 90 minutes a week it refuses to plan a posting schedule and returns a comment-only week: a cadence abandoned in week five is worse than one never started, because the abandonment is visible on the profile. Every plan ships with a minimum viable week.
3. The newsletter — only if the promise can be paid.
python3 scripts/newsletter_planner.py --followers 1800 --cadence biweekly \
--minutes-per-month 420 --pillar "..." --output human
Refuses below LinkedIn's published 150-follower evaluation floor, and refuses a cadence whose six-month cost exceeds the budget. Emits a 12-issue arc rotating issue types across pillars, and a stop rule written before issue one.
| Script | Role |
|---|---|
scripts/positioning_brief.py |
Validates objective, audience, 2-4 proof-backed pillars, and the exclusion list; emits observable 90-day criteria. |
scripts/cadence_planner.py |
Prices the week in minutes, allocates by stage, refuses over-budget targets, emits the minimum viable week. |
scripts/newsletter_planner.py |
Eligibility + six-month sustainability gate, 12-issue arc across pillars, stop rule. |
references/objective_to_pillars.md — the six objectives and the pillar arithmetic (7 sources)references/cadence_and_consistency.md — what a post really costs and why the floor exists (7 sources)references/newsletter_playbook.md — eligibility, cadence as a promise, the stop rule (7 sources)
assets/positioning_brief_template.md — fillable brief
assets/example_brief.json — a passing brief, for the validatorlinkedin-content — drafts and lints individual posts. This decides what they are about
and how many there are. Posts without pillars are noise; offer this first, never chain silently.linkedin-analytics — tells you what happened. This decides what to do next.marketing-skill/content-strategy — company-level content marketing. This is one
person's own presence.Version: 1.0.0
LICENSESKILL.mdassets/example_brief.jsonassets/positioning_brief_template.mdreferences/cadence_and_consistency.mdreferences/newsletter_playbook.mdreferences/objective_to_pillars.mdscripts/cadence_planner.pyscripts/newsletter_planner.pyscripts/positioning_brief.pyVendored from alirezarezvani/claude-skills, commit 27cfcd0fb0a4, path marketing/linkedin/skills/linkedin-strategy, licence MIT. The upstream licence file ships inside the skill.