Social
coreyhaines31/marketingskills
When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, or Facebook, or wants to do social listening and engagement triage.
Agent skill
by growthenginenowoslawski in growthenginenowoslawski/coldoutboundskills
Fetches the most recent usable LinkedIn post from a company page OR a person's profile and stores the post content itself, with an optional AI personalization line on top.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-social-posts --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/playbooks/playbook-social-posts .claude/skills/playbook-social-posts && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "playbook-social-posts" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-social-posts into .claude/skills/playbook-social-posts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-social-posts", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-social-postsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-social-posts --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/playbooks/playbook-social-posts .agents/skills/playbook-social-posts && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "playbook-social-posts" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-social-posts into .agents/skills/playbook-social-posts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-social-posts", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-social-posts --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/playbooks/playbook-social-posts .cursor/skills/playbook-social-posts && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "playbook-social-posts" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-social-posts into .cursor/skills/playbook-social-posts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-social-posts", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/growthenginenowoslawski/coldoutboundskills.git --path skills/playbooks/playbook-social-posts--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-social-posts --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/playbooks/playbook-social-posts .gemini/skills/playbook-social-posts && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "playbook-social-posts" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-social-posts into .gemini/skills/playbook-social-posts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-social-posts", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-social-postsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/playbooks/playbook-social-posts .github/skills/playbook-social-posts && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "playbook-social-posts" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-social-posts into .github/skills/playbook-social-posts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-social-posts", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills playbook-social-posts --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/playbooks/playbook-social-posts .opencode/skills/playbook-social-posts && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "playbook-social-posts" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-social-posts into .opencode/skills/playbook-social-posts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "playbook-social-posts", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
playbook-social-postsFetches the most recent usable LinkedIn post from a company page OR a person's profile and stores the post content itself, with an optional AI personalization line on top.
Playbook Social Posts is an agent skill from growthenginenowoslawski/coldoutboundskills. Fetches the most recent usable LinkedIn post from a company page OR a person's profile and stores the post content itself, with an optional AI personalization line on top. Triggers on "what did they post about", "recent LinkedIn post", "social signal", "reference their content", "they posted about X", "what is this person posting", "engage with their content". Outputs socialposttext (the raw post) plus socialposturl and socialpostdaysago; socialpostline only when the operator asks for one.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `clay-table.md` and `clay-workflow.md`).
It sits in Writing & Content, covering Social media posts. It works with LinkedIn. The repository describes itself as: Open-source Claude Code skills for cold email and outbound sales. Grade campaigns, export Prospeo searches, scrape Google Maps — all from Claude Code. The licence is MIT.
Read from SKILL.md and the folder at commit 25c5d85. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Playbook Social Posts loads about 1.9k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 1,036 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from growthenginenowoslawski/coldoutboundskills at commit 25c5d85, republished under its MIT licence (© growthenginenowoslawski). 1,036 words, ~1,854 tokens.
.claude/skills/playbook-social-posts/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.All rules here are best practice, not law. Override any of them when the campaign calls for it; note the best practice once and move on.
Use when: the campaign wants proof you read the account's content and there is no sharper structural signal (funding, new-in-role, hiring surge).
Not this playbook: who engaged with a post (playbook-linkedin-engagement); a job change
(playbook-new-in-role).
Output: social_post_text + social_post_url + social_post_days_ago + social_post_author_type.
Optional, on request only: social_post_line → Noticed they became an IBM Business Partner.
1. The raw post is the product. The AI line is an optional layer, not the point. A human reading the actual post writes a better sentence than any generated line, and the post text is reusable for every future campaign; a generated line is not.
2. Input is a profile URL, either kind — a company page or a person. One scraper takes both.
3. The content skip filter is mandatory and fails closed.
Skip personal, political, bereavement, and charged (religious or geopolitical flashpoints).
skip key all mean SKIP. Only a literal "skip": false keeps
the post.Ordinary business content passes: memes, polls, job ads, volunteering, work anniversaries, regulation commentary.
4. Blank, never invented. Nothing usable means "" everywhere. No guess, no "N/A", no
sequencer-side fallback value.
5. Two operator questions at setup. "A written personalization line, or just the post content?" (default: content only.) "Trust the scrape, or add a verification pass?" (default: trust it — verification checks existence, never text.)
6. Empty rows are gated by a LIST SPLIT before upload, never by spintax.
Spintax picks at random and cannot see an empty variable. {Noticed {{social_post_line}}. |}
both renders Noticed . into inboxes and discards personalization you already paid for.
Split the list on social_post_line != "". Segment B has the clause removed and rewritten — and
it is your honest A/B control. Never exclude empties, never set a fallback.
QC: grep -c "Noticed \." rendered_preview.csv must be 0.
Scrape company posts with an async 3-call pattern: start the run, poll for completion, read the dataset.
⚠️ Never use a synchronous run-and-get-items endpoint. It held the client past 120s on a run that took 25s.
Body: up to ~100 target URLs, maxPosts: 3, a 3-month window, reposts off, quote posts on. Then the
skip filter over each post newest-first, keeping the first that clears.
universalName or publicIdentifier, or every person row silently vanishes.finish_reason=length with empty content means retry with double the cap, never an abstain.Coverage: 71% of company pages had a usable post in the test — and that is a floor for the field and an upper bound for this kind of list, because the sample was 17 high-frequency B2B SaaS posters.
SMB, trades and long-tail: expect 20 to 40%. Under about 50 employees the company page is usually dead, and the founder's personal profile is the intended lever (fill unmeasured).
Measure fill on a 100-row sample of YOUR list before writing copy around it.
Tests: skip filter 18/18. Optional line 8/9 (89%) held out. Person-URL probe 1/1.
⚠️ The reshaped chain has not been run end to end. Parts tested, composition not. The first operator to run it at any size owes the file a real fill rate and a re-measured cost — read the charged-event count, never estimate.
About $2.95 per 1,000 unique profiles in the default content-only shape, rising to about $3.66 with the optional line.
⚠️ Campaign rows are contacts, not profiles. Dedupe before this playbook and fan the result back out: a 1,000-contact list covering 620 accounts costs about $1.83, not $2.95. Costing this per contact overstates it by your contacts-per-company ratio.
clay-table.md — the column build, including the degraded variant for when async polling is
not available.clay-workflow.md — the CLI-buildable version.| Symptom | Cause | Fix |
|---|---|---|
| The client times out on a fast run | A synchronous run-and-fetch endpoint | The async 3-call pattern |
| Every person row vanishes at the join | On person items the company-style identifier is null | Group on universalName or publicIdentifier |
| Cost is much higher than expected | Each run start bills separately | Batch the URLs. 8 in a batch cost one start fee |
| The filter passes something you would never send | It was disabled to raise fill | Never disable it. A skip takes the next post |
| A row abstains when a later post would have worked | A skip was treated as an abstain | A skip advances to the next post |
| A malformed filter response keeps a bad post | The filter failed open | Fail closed. Only a literal "skip": false keeps a post |
Noticed . in rendered previews | Spintax used as an if-populated gate | Split the list. Grep the rendered preview to zero |
| A generated line references a post the account did not write | Reposts were included | Reposts off |
| Fill is 20% on an SMB list and 71% was promised | The 71% came from high-frequency SaaS posters | Measure fill on your own list. Use founder profiles for small companies |
| The scraper is down and the run fails over to another source | There is no fallback by design | The signal abstains; it does not fail over |
© growthenginenowoslawski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in skills/playbooks/playbook-social-posts of growthenginenowoslawski/coldoutboundskills.
Open the folder on GitHubat commit 25c5d85
Playbook Social Posts next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Playbook Social Posts this skillgrowthenginenowoslawski/coldoutboundskills | 753 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Socialcoreyhaines31/marketingskills | 54k | 4 repos | ~4.5k | Automated safety check: Pass | MIT | |
| Social Contentfreekmurze/dotfiles | 1k | 23 repos | ~2.1k | Automated safety check: Pass | None | |
| Linkedin Marketingsergebulaev/linkedin-skills | 4.4k | 1 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Linkedin Content Plannersergebulaev/linkedin-skills | 4.4k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Typefullyfreekmurze/dotfiles | 1k | 1 repos | ~3.4k | Automated safety check: Notes | None |
coreyhaines31/marketingskills
When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, or Facebook, or wants to do social listening and engagement triage.
freekmurze/dotfiles
When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms.
sergebulaev/linkedin-skills
Plan, draft, audit, and publish LinkedIn posts and comments.
sergebulaev/linkedin-skills
Generate a 7-day LinkedIn content plan from a theme, audience, and pillars.
freekmurze/dotfiles
Create, schedule, and manage social media posts via Typefully.
FlorianBruniaux/claude-code-ultimate-guide
Turns CHANGELOG.md entries for a release or a week into LinkedIn, Twitter/X, newsletter and Slack posts in French and English.
growthenginenowoslawski/coldoutboundskills
Diagnostic audit for a running cold email program. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Conversational intake for cold email campaigns. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
META skill — build the largest possible qualified lead list for any request, end to end.
growthenginenowoslawski/coldoutboundskills
Autonomous cold email campaign launcher. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Use the Blitz API to find decision-makers at specific companies when you already have a list of company domains.
growthenginenowoslawski/coldoutboundskills
Compare reply rates, bounce rates, and positive reply rates broken down by inbox type (SMTP / Gmail / Outlook) for a Smartlead account.
Works with
Categories
Fetches the most recent usable LinkedIn post from a company page OR a person's profile and stores the post content itself, with an optional AI personalization line on top. Playbook Social Posts is an agent skill from growthenginenowoslawski/coldoutboundskills. Fetches the most recent usable LinkedIn post from a company page OR a person's profile and stores the post content itself, with an optional AI personalization line on top.
Playbook Social Posts fits situations like: what did they post about; recent LinkedIn post; reference their content; they posted about X.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -a claude-code`. Or copy the skill folder (skills/playbooks/playbook-social-posts in growthenginenowoslawski/coldoutboundskills) into .claude/skills/playbook-social-posts in your project. Claude Code loads it when a task matches its description.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -a codex`. Or copy the skill folder (skills/playbooks/playbook-social-posts in growthenginenowoslawski/coldoutboundskills) into .agents/skills/playbook-social-posts in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/playbook-social-posts, .gemini/skills/playbook-social-posts, .github/skills/playbook-social-posts and .opencode/skills/playbook-social-posts in your project.
SKILL.md names no scripts, command-line tools or credentials: Playbook Social Posts is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Playbook Social Posts is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Playbook Social Posts: Social (coreyhaines31/marketingskills, 54k stars), Social Content (freekmurze/dotfiles, 1k stars), Linkedin Marketing (sergebulaev/linkedin-skills, 4.4k stars) and Linkedin Content Planner (sergebulaev/linkedin-skills, 4.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
growthenginenowoslawski (a GitHub user) maintains it in growthenginenowoslawski/coldoutboundskills, which has 753 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 5, 2026.
Source: growthenginenowoslawski/coldoutboundskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.