### Setup Python Virtual Environment Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Standard command sequence to initialize a virtual environment and install dependencies when pip fails. ```bash python -m venv venv && source venv/bin/activate && pip install requests python-dotenv ``` -------------------------------- ### Install LinkedIn Skills Plugin Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Commands to install the plugin via different interfaces. ```bash /plugin install ``` ```bash codex plugin add ``` -------------------------------- ### Founder Headline Example Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-profile-optimizer/references/profile-headline-formulas.md An example showing how a founder can refine their headline to highlight their impact and the tools they build. ```text - ❌ "Founder & CEO" - ✅ "Building tools that help creators monetize | Founder at CreatorLab" ``` -------------------------------- ### OpenClaw Integration Quickstart Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Commands to clone the repository and instructions for configuring the OpenClaw system prompt. ```bash git clone git@github.com:sergebulaev/linkedin-skills.git # Add to OpenClaw system prompt: # "You have LinkedIn marketing skills in ./linkedin-skills/. # Read the relevant skills/*/SKILL.md before any LinkedIn task. # Use lib/url_parser.py for URL parsing, # lib/apify_client.py for reading posts / comments / engagers, # lib/publora_client.py for publishing." ``` -------------------------------- ### Install Required Python Dependencies Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Install the necessary packages to support API requests and environment variable management. ```bash pip install requests python-dotenv ``` -------------------------------- ### Consultant Headline Example Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-profile-optimizer/references/profile-headline-formulas.md An example illustrating how a consultant can rephrase their headline to focus on the client outcome and method. ```text - ❌ "Marketing Consultant" - ✅ "I help service businesses get clients without ads | Marketing Consultant" ``` -------------------------------- ### Marketer Headline Example Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-profile-optimizer/references/profile-headline-formulas.md An example demonstrating the transformation of a generic marketer headline to one that leads with value and specificity. ```text - ❌ "Marketing Manager at Company X" - ✅ "Helping B2B SaaS companies close 40% more deals | Sales Director at TechCorp" ``` -------------------------------- ### Developer Headline Example Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-profile-optimizer/references/profile-headline-formulas.md An example of how a developer can update their headline to showcase their specific contributions and the teams they support. ```text - ❌ "Senior Software Engineer" - ✅ "Shipping AI agents for B2B ops teams | Senior Engineer at StackCo" ``` -------------------------------- ### Generic Python Agent Integration Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Example of importing the library and using the Apify and Publora clients for LinkedIn operations. ```python import sys; sys.path.insert(0, "path/to/linkedin-skills") from lib import parse_linkedin_url, PubloraClient, ApifyClient parsed = parse_linkedin_url("https://www.linkedin.com/posts/slug-activity-7448808898326654978-iW20") print(parsed["post_urn"]) # urn:li:activity:7448808898326654978 # Read side (Apify) apify = ApifyClient() # reads APIFY_TOKEN from env post = apify.fetch_post(post_url="https://www.linkedin.com/posts/...") engagers = apify.fetch_post_engagers(post_url="https://www.linkedin.com/posts/...", max_items=50) # Write side (Publora) client = PubloraClient() # reads PUBLORA_API_KEY from env client.create_comment(post_urn=parsed["post_urn"], message="draft", platform_id="linkedin-xxx") ``` -------------------------------- ### Install LinkedIn Skills for Claude Code Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Commands to install the plugin via the Claude Code interface or by cloning the repository. ```text /plugin marketplace add sergebulaev/linkedin-skills /plugin install linkedin-skills@linkedin-skills ``` ```bash git clone https://github.com/sergebulaev/linkedin-skills.git cd linkedin-skills ``` -------------------------------- ### Install LinkedIn Skills via Skills CLI Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Universal command to add skills to agents that support the SKILL.md standard. ```bash npx skills add sergebulaev/linkedin-skills ``` -------------------------------- ### Install LinkedIn Skills for Hermes Agent Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Command to clone the skills bundle into the Hermes agent skills directory. ```bash git clone https://github.com/sergebulaev/linkedin-skills.git ~/.hermes/skills/linkedin-skills ``` -------------------------------- ### Example LinkedIn About Section Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-profile-optimizer/references/about-section-templates.md A complete example of a LinkedIn About section following the 7-step structure, designed to engage readers and attract recruiters. ```text Why do most B2B founders burn 40% of their pipeline on bad-fit leads? I help 1-10M ARR SaaS founders rebuild their inbound motion around signal, not volume. Last year my team cut acquisition cost 62% for three portfolio companies and grew pipeline 3.4x — the full case studies are in Featured. What I do: AI-native demand gen. I audit your funnel, rewire the signal layer, and install an always-on content engine that brings the right 50 buyers to you each quarter (instead of 5,000 strangers). Outside work: two kids, one dog, bad chess player. Specialties: demand generation, signal-based marketing, AI content operations, LinkedIn strategy, B2B SaaS, RAG systems. Want the demand-gen audit I run for new clients? Comment "AUDIT" on my latest post or DM me. ``` -------------------------------- ### Executive Headline Example Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-profile-optimizer/references/profile-headline-formulas.md An example for an executive, demonstrating how to clearly state their value proposition in terms of company growth. ```text - ❌ "CTO | VP Engineering | Technology Leader" - ✅ "Helping fintechs scale past $100M ARR | CTO at PaymentCo" ``` -------------------------------- ### High-Weight Comment Example Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-comment-drafter/references/comment-templates.md A practical implementation of the four-part comment structure designed to trigger in-depth algorithmic signals. ```text The point about dwell time hit me - I tested this last month by adding 3 line breaks every 2 sentences. Impressions went from ~800 to 2,400 on two consecutive posts. One thing I'm still figuring out: does this work the same way for carousels? ``` -------------------------------- ### Install LinkedIn Skills via Codex CLI Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Commands to add the LinkedIn skills plugin to the Codex CLI environment. ```bash codex plugin marketplace add sergebulaev/linkedin-skills codex plugin add linkedin-skills@linkedin-skills ``` ```bash git clone https://github.com/sergebulaev/linkedin-skills.git cd linkedin-skills codex plugin marketplace add . codex plugin add linkedin-skills@linkedin-skills ``` -------------------------------- ### R1 Example: Conviction Muscle Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-reply-handler/references/reply-templates.md An example of the R1 template, demonstrating how to answer a question about building conviction with a team and providing a concrete practice. ```markdown conviction doesn't build in meetings, it builds when you ship what you argued for and find out within a week whether the customer actually cared. our default now.. if a team member can't turn an opinion into something shippable in two or three days, we park the opinion until they can. ``` -------------------------------- ### Example Team Configuration for Employee Advocacy Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-employee-advocacy/references/advocacy-principles.md This YAML configuration defines roles, posting cadences, review policies, and content pillars for team members in an employee advocacy program. It also outlines overall program output, time costs, and reach targets. ```yaml team: VP Marketing (author: Alice): cadence: 2 posts/week review: bypass pillars: [thought leadership, contrarian takes] Senior PMM (author: Bob): cadence: 3 posts/week review: bypass pillars: [product positioning, competitive teardowns] Marketing Manager (author: Carol): cadence: 3 posts/week review: 4h SLA pillars: [campaign recaps, customer wins] Content Writer (author: Dan): cadence: 4 posts/week review: 4h SLA pillars: [industry analysis, frameworks] ... (5 more team members) weekly_output: 23 posts total from 8 members weekly_time_cost: 1.9 hours target_team_reach: 15,000 impressions/week (growing toward 40,000/month) ``` -------------------------------- ### R1: Answer Their Question Template Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-reply-handler/references/reply-templates.md Use when the counterpart ends with a direct question. Follow the skeleton by providing a direct answer and a supporting example. ```markdown [Name] [direct answer in 1 sentence]. [one concrete practice, number, or lived example that backs the answer]. ``` -------------------------------- ### Initialize Environment Configuration Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Copy the template file to create a local .env configuration file. ```bash cp .env.example .env ``` -------------------------------- ### Configure Publora API Environment Variables Source: https://github.com/sergebulaev/linkedin-skills/blob/main/SKILL.md Add these credentials to your .env file to enable automated publishing via the Publora API. ```text PUBLORA_API_KEY=sk_... LINKEDIN_PLATFORM_ID=linkedin-... ``` -------------------------------- ### Configure OpenClaw for LinkedIn Skills Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Steps to clone the repository and update the OpenClaw system prompt to recognize the new skills. ```bash git clone https://github.com/sergebulaev/linkedin-skills.git ``` ```text You have LinkedIn marketing skills in ./linkedin-skills/. For any LinkedIn task, read the relevant skills/*/SKILL.md first. Use lib/url_parser.py for URL parsing, lib/apify_client.py for reading posts / comments / engagers, lib/publora_client.py for publishing actions. ``` -------------------------------- ### Run Detector Tester with Text File Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-humanizer/sub-skills/detector-tester.md Execute the detector tester script by passing the content of a text file as an argument. Ensure you are in the correct directory and have the script available. ```bash cd /home/sbulaev/p/linkedin-skills/skills/linkedin-humanizer python3 scripts/test_detectors.py --text "$(cat draft.txt)" ``` -------------------------------- ### Account Engagement Warmup Template Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-comment-drafter/references/comment-templates.md Use this structure to build familiarity with target-account prospects before initiating outreach. ```text [React to a specific point from prospect's post]. [Add one insight from your industry that reinforces their thesis]. ``` -------------------------------- ### Answer-the-Closing-Question Comment Template Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-comment-drafter/references/comment-templates.md Use this structure when a post ends with a question. It prioritizes a direct answer followed by a concrete example to build rapport with the author. ```text [direct answer, not a hedge]. [one concrete example OR number]. [why this matters for their framing]. ``` -------------------------------- ### Emotional Cold-Open Hook Formula Source: https://github.com/sergebulaev/linkedin-skills/blob/main/references/hook-formulas.md Use this structure to start at the emotional peak of a story to maximize likes. Avoid using all-caps for the first line to maintain authenticity. ```text {One short line dropped into the emotional peak of a real story — the moment of breaking, loss, or impossible odds. No setup.} {Subject} had almost {given up / lost everything} after {the struggle}. [Mid-scene narrative — 3-6 short lines, present-tense, sensory. The reader is already inside the moment.] [The turn: what changed, who showed up, what it cost.] [One-line meaning, not a moral. Let the story carry it.] ``` -------------------------------- ### LinkedIn Hook Extractor Blank Template Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-hook-extractor/references/examples.md A template for generating LinkedIn posts with a bold claim, reasoning, and a closing question. Use this to structure content similar to the provided examples. ```text Every {category} {bold claim}. {Reasoning paragraph 1 — the forcing function} {Reasoning paragraph 2 — what it requires} {Reasoning paragraph 3 — what breaks if you don't} {Closing question that invites reader to take a side} ``` -------------------------------- ### Configure Apify Token Environment Variable Source: https://github.com/sergebulaev/linkedin-skills/blob/main/SKILL.md Add your Apify token to the .env file to enable automated LinkedIn data fetching for various skills. ```text APIFY_TOKEN=apify_api_... ``` -------------------------------- ### Sync Codex Marketplace Source: https://github.com/sergebulaev/linkedin-skills/blob/main/AGENTS.md Run this script after updating root manifest files to synchronize the generated package in the marketplace directory. ```bash python3 scripts/sync_codex_marketplace.py ``` -------------------------------- ### Run validation commands in bash Source: https://github.com/sergebulaev/linkedin-skills/blob/main/AGENTS.md Execute these commands from the repository root to ensure all dependencies are present, scripts run correctly, and configuration files are valid. ```bash python3 -c "from lib import publish, fetch_post, ApifyClient, PubloraClient; print('OK')" python3 scripts/sync_codex_marketplace.py wc -l SKILL.md skills/*/SKILL.md ls skills/ | wc -l # must equal 10 grep -nE '^description:' skills/*/SKILL.md SKILL.md | grep -P '\x{2014}|\x{2013}' # must be empty python3 -m json.tool .codex-plugin/plugin.json >/dev/null python3 -m json.tool .agents/plugins/marketplace.json >/dev/null python3 -m json.tool .claude-plugin/plugin.json >/dev/null python3 -m json.tool .claude-plugin/marketplace.json >/dev/null ``` -------------------------------- ### Run validation commands Source: https://github.com/sergebulaev/linkedin-skills/blob/main/CLAUDE.md Execute these commands from the repository root to ensure environment and data integrity. Failure of any command indicates the repository is not ready for a push. ```bash python3 -c "from lib import publish, fetch_post, ApifyClient, PubloraClient; print('OK')" python3 scripts/sync_codex_marketplace.py wc -l SKILL.md skills/*/SKILL.md ls skills/ | wc -l # must equal 10 grep -nE '^description:' skills/*/SKILL.md SKILL.md | grep -E '—|–' # must be empty ``` -------------------------------- ### Explain-to-Kids Simplification Formula Source: https://github.com/sergebulaev/linkedin-skills/blob/main/references/hook-formulas.md Use this template to break down complex jargon into scannable, emoji-anchored content for high save rates. ```text {Jargon term} explained to kids. Explanations for kids... and adults! {emoji} {TERM}: what does it stand for? {emoji} {first part} = {plain-language meaning} {emoji} {second part} = {plain-language meaning} [continue the scannable, emoji-anchored glossary] [One-line "now you'll never forget it" close.] ``` -------------------------------- ### Practitioner Observation Comment Skeleton Source: https://github.com/sergebulaev/linkedin-skills/blob/main/skills/linkedin-comment-drafter/references/comment-templates.md Use this template to demonstrate operational expertise by contrasting system behaviors under different conditions. ```text [Name] when [condition-A] the [system] does X, when [condition-B] it does Y. [the rule behind it].. that's when [desirable outcome] kicks in. ``` -------------------------------- ### Project Directory Structure Source: https://github.com/sergebulaev/linkedin-skills/blob/main/README.md Visual representation of the repository layout and the purpose of each directory. ```text linkedin-skills/ ├── skills/ ← SKILL.md frontmatter; native to Claude Code and Codex, others read as markdown ├── .codex-marketplace/ ← generated nested Codex package (run scripts/sync_codex_marketplace.py) ├── lib/ ← pure Python, works in any agent runtime ├── references/ ← pure markdown, works anywhere └── scripts/ ← pure Python CLI, works anywhere ```