Playbook Social Posts
Fetches the most recent usable LinkedIn post from a company page OR a person's profile...
Install
npx skills add growthenginenowoslawski/coldoutboundskills --skill playbook-social-posts -g -a claude-code -y- Repository
- growthenginenowoslawski/coldoutboundskills797
- Category
- Engineering
- Updated
- 1mo ago
- License
- MIT
- Context cost
- Mediumabout 1,715 tokens
- Runs scripts
- No, instructions only
What it does
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 social_post_text (the raw post) plus social_post_url and social_post_days_ago; social_post_line only when the operator asks for one.
Playbook: Recent Social Post
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.
Six decisions that govern every run
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.
- Company runs: dedupe to companies, then fan the one result out to every contact there.
- Person runs: never fan out.
- Never guess a slug. They are frequently not what you would predict from the company name.
3. The content skip filter is mandatory and fails closed.
Skip personal, political, bereavement, and charged (religious or geopolitical flashpoints).
- A skip takes the NEXT post. It is not an abstain.
- Error, bad parse, or a missing
skipkey all mean SKIP. Only a literal"skip": falsekeeps the post. - Never disable it to raise fill.
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.
