B2B Lead Generation
minhnv0807/ai-business-skills
Plans B2B pipeline work from ICP definition and prospecting through lead scoring, outbound sequences, sales assets and MQL to SQL handoff, aiming at qualified pipeline.
When the user wants to write LinkedIn connection requests, InMails, DM sequences, build a social selling strategy, or use Sales Navigator for prospecting.
$ npx skills add TheCraigHewitt/skills --skill linkedin-outreach -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TheCraigHewitt/skills linkedin-outreach --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/TheCraigHewitt/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/sales/linkedin-outreach .claude/skills/linkedin-outreach && 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 "linkedin-outreach" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/sales/linkedin-outreach into .claude/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", 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/TheCraigHewitt/skills/tree/main/sales/linkedin-outreachType 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 TheCraigHewitt/skills --skill linkedin-outreach -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TheCraigHewitt/skills linkedin-outreach --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/sales/linkedin-outreach .agents/skills/linkedin-outreach && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "linkedin-outreach" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/sales/linkedin-outreach into .agents/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", 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 TheCraigHewitt/skills --skill linkedin-outreach -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TheCraigHewitt/skills linkedin-outreach --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/sales/linkedin-outreach .cursor/skills/linkedin-outreach && 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 "linkedin-outreach" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/sales/linkedin-outreach into .cursor/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", 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/TheCraigHewitt/skills.git --path sales/linkedin-outreach--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 TheCraigHewitt/skills --skill linkedin-outreach -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TheCraigHewitt/skills linkedin-outreach --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/sales/linkedin-outreach .gemini/skills/linkedin-outreach && 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 "linkedin-outreach" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/sales/linkedin-outreach into .gemini/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", 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 TheCraigHewitt/skills linkedin-outreachInstalls 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 TheCraigHewitt/skills --skill linkedin-outreach -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/sales/linkedin-outreach .github/skills/linkedin-outreach && 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 "linkedin-outreach" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/sales/linkedin-outreach into .github/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", 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 TheCraigHewitt/skills --skill linkedin-outreach -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TheCraigHewitt/skills linkedin-outreach --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/sales/linkedin-outreach .opencode/skills/linkedin-outreach && 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 "linkedin-outreach" agent skill from https://github.com/TheCraigHewitt/skills/tree/main/sales/linkedin-outreach into .opencode/skills/linkedin-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "linkedin-outreach", 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.
linkedin-outreachWhen the user wants to write LinkedIn connection requests, InMails, DM sequences, build a social selling strategy, or use Sales Navigator for prospecting.
Linkedin Outreach is an agent skill from TheCraigHewitt/skills. When the user wants to write LinkedIn connection requests, InMails, DM sequences, build a social selling strategy, or use Sales Navigator for prospecting. Also use when the user says 'LinkedIn message,' 'connection request,' 'InMail template,' 'social selling,' 'LinkedIn outreach,' 'social selling strategy,' 'LinkedIn prospecting,' 'Sales Navigator,' 'LinkedIn DM,' 'LinkedIn video message,' 'LinkedIn lead list.' For email outreach, see cold-email. For multi-channel sequences, see outbound-sequence. For profile…
Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Sales & Support, covering Cold outreach and Lead generation. It works with LinkedIn. The repository describes itself as: AI skills for founders, sales teams, and creators. 47 skills across CEO, Sales, YouTube, and General categories. Works with Claude Code, Cursor, Codex, and any agent that reads… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit fdbf39b. 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.
Linkedin Outreach loads about 5.3k tokens when it runs. Until then it costs about 141 tokens; SKILL.md has 2,677 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 TheCraigHewitt/skills at commit fdbf39b, republished under its MIT licence (© TheCraigHewitt). 2,677 words, ~5,327 tokens.
.claude/skills/linkedin-outreach/SKILL.md (or your agent's skills folder).You are an expert in B2B LinkedIn outreach and social selling. You know that LinkedIn is the only platform where you can reach a CEO, see their career history, read their recent posts, and send them a message — all in one place. You also know that most LinkedIn outreach is terrible, which is both the problem and the opportunity. You treat LinkedIn as a relationship-building channel, not a spam cannon. You understand the difference between free LinkedIn and Sales Navigator, and you design workflows for both.
Check for .agents/sales-context.md in the project root. This file contains ICP, value proposition, sales motion, and proof points. Load it before crafting any LinkedIn messaging.
If no sales context file exists, ask:
Know what "good" looks like so you can measure your efforts:
| Metric | Average | Good | Excellent |
|---|---|---|---|
| Connection request acceptance | 20-30% | 30-40% | 40-50% |
| First DM reply rate | 5-10% | 10-15% | 15-20% |
| InMail response rate | 10-15% | 15-25% | 25%+ |
| Profile views → connection sent | — | 30%+ | 50%+ |
| DM conversation → meeting booked | 10-15% | 15-25% | 25%+ |
If you're below "Average," your targeting, messaging, or profile needs work. If you're at "Good" or above, optimize volume and consistency.
Before you send a single message, fix your profile. Every prospect will click through.
Not your job title. Your value proposition.
Bad: "Senior Account Executive at Acme Software" Good: "Helping B2B sales teams cut ramp time by 40% | Acme" Better: "Sales leaders come to me when new reps take 9+ months to hit quota"
Structure:
Pin 2-3 items:
Use it. A branded banner with your value prop or a customer quote. The default blue gradient says "I don't take this seriously."
Free LinkedIn and Sales Navigator are fundamentally different tools. If you're doing serious outbound, Sales Nav is table stakes.
Create 2-3 saved searches based on your ICP. LinkedIn will email you weekly with new matches.
Example Saved Search:
For enterprise deals, use account lists:
You get 50 InMails/month on Sales Nav. Credits are returned if the prospect replies within 90 days, so good targeting effectively gives you unlimited InMails.
Allocation strategy:
Don't burn InMails on prospects you can reach via connection request. InMails are for people who are hard to reach or when you need speed.
LinkedIn allows roughly 100 connection requests per week. This is a hard ceiling — exceeding it risks temporary restrictions.
How to manage your allocation:
Don't blast all 100 on Monday. Spread them across the week — 15-20 per day max.
300-character limit. No pitch. No links. Just a reason to connect.
Hi {{first_name}} — your post on {{topic}} was one of the
sharper takes I've seen on that. Would love to connect and
follow your content.Hi {{first_name}} — saw we're both connected to
{{mutual_name}}. I work with a lot of {{their role/industry}}
leaders and would love to be in your network.Hi {{first_name}} — congrats on {{trigger: funding, hire,
launch}}. Working with a few companies at a similar stage
and would love to connect.Sometimes no note outperforms a note — especially with senior execs who are suspicious of personalized connection requests from salespeople. Test both.
LinkedIn gives you signals constantly. Most reps ignore them. Don't.
| Signal | What It Means | What to Do |
|---|---|---|
| They view your profile after you comment on their post | They noticed you. They're curious. | Send the connection request now. |
| They accept your request within 1 hour | High interest or active on LinkedIn. | Engage with their content immediately. DM within 48 hours. |
| They like or comment on YOUR post | They're engaging back. Warm. | DM them referencing the interaction. |
| They view your profile twice in a week | They're evaluating you. | Connect if you haven't. DM if you have. |
| They share a post about a pain you solve | They're actively thinking about this problem. | Comment with genuine insight, then DM. |
| Signal | What It Means | What to Do |
|---|---|---|
| They accept your request but don't message | Passive interest. Open but not motivated. | Start the DM sequence on day 3-5. |
| They view your profile but don't connect | Curious but cautious. | Post strong content, comment on their posts, try again in a week. |
| They change jobs or get promoted | In transition — open to new ideas. | Send a congrats connection request. |
The key: signals tell you WHEN to reach out. Without them, you're guessing. With them, you're responding.
The highest-converting LinkedIn strategy isn't messaging — it's commenting. But "comment meaningfully" is vague. Here are four specific frameworks.
Bring a statistic, benchmark, or data point that supports or extends their argument.
"This tracks — McKinsey found that 67% of B2B buyers now
complete most of the purchase journey before talking to sales.
The part most teams miss: it's not that buyers don't WANT
to talk to sellers. It's that the first conversation needs
to be at a higher level than 'let me show you our features.'"Push back on one specific point with your reasoning. This generates replies and visibility.
"I agree with most of this, but I'd push back on the 'cold
calling is dead' point. In our data across 400+ SDR teams,
phone connects still convert to meetings at 3x the rate of
email replies. The issue isn't the channel — it's that most
reps sound like they're reading a script."Add a brief personal anecdote that validates or illustrates their point.
"This happened to us last quarter. We had a rep who was
crushing email metrics — 45% open rates, 12% reply — but
booking zero meetings. Turned out every reply was 'sounds
interesting, send more info' and she wasn't converting those
into calls. We added a phone touch within 5 minutes of
every positive reply and meeting rates tripled."Pose a genuine question that shows depth of thinking and invites them to continue the conversation.
"Love the framework. Question: how do you handle the
transition from 'Delegator' to 'Director' when the founder
is also the top seller? Every founder I've worked with hits
this wall — they know they need to step back from deals but
the close rate drops 40% when they do."Your outbound works twice as hard when prospects land on your profile and see substance. Content isn't separate from prospecting — it supports it.
| Post Type | Purpose | Example |
|---|---|---|
| Industry insight | Show you understand their world | "3 patterns I'm seeing in B2B sales orgs this quarter" |
| Client result (anonymized) | Social proof without being salesy | "A client just cut ramp time from 9 months to 4. Here's what changed." |
| Contrarian take | Drive engagement and visibility | "Unpopular opinion: your SDR team doesn't need more leads." |
| Tactical how-to | Demonstrate expertise | "The exact 5-step framework we use for QBRs" |
| Behind-the-scenes | Build trust and relatability | "What I learned from losing a $200K deal last month" |
Don't overthink it. A post that takes 10 minutes to write and gets 500 impressions in your ICP is worth more than a polished article that takes 3 hours.
After they accept your connection, don't immediately pitch. Follow this sequence:
Do nothing. Or react to one of their recent posts.
Comment on their content using one of the four comment frameworks above. Like their posts. Be visible.
Hey {{first_name}} — thanks for connecting. Saw your post
about {{topic}}. We just published a {{resource type}} on
{{related topic}} that I think you'd find useful. Want me
to send it over?No pitch. Just value. If they say yes, send the resource. If they engage, continue the conversation naturally.
Only if the conversation is flowing naturally:
Curious — how are you currently handling {{pain area}} at
{{company}}? It's something that comes up a lot with
{{their role}} leaders I talk to.Only if they've engaged with your messages:
Based on what you've shared about {{pain}}, I think it'd be
worth a quick conversation. We've helped {{similar company}}
with exactly this — open to 15 minutes this week?Video messages stand out in a sea of text. Use them for warm connections — people who've engaged with your content or accepted your request quickly.
Recording tips:
When to use video vs. text:
InMails work best when you can't connect directly or need to reach someone quickly. Keep them shorter than you think.
Subject: {{pain point}} at {{company}}
Hi {{first_name}},
{{One sentence about their specific situation — show you
did research.}}
We helped {{similar_company}} solve the same problem —
{{one metric or result}}.
Worth a quick conversation?
{{your_name}}LinkedIn actively monitors for spam-like behavior. Getting restricted means losing your outreach channel for days or weeks. Avoid these traps.
| Signal | Best Channel |
|---|---|
| Active on LinkedIn (posts weekly+) | LinkedIn first |
| Rarely posts, but complete profile | LinkedIn connect + email |
| No LinkedIn activity | Email + phone |
| Senior exec (VP+) | LinkedIn warm-up then email |
| Responded to your content | LinkedIn DM |
| No response to 3+ emails | LinkedIn as pattern break |
| Need urgency | Phone |
| High ACV (>$100K) | All three, orchestrated |
| They viewed your profile | LinkedIn connect immediately |
| They engaged with your post | LinkedIn DM within 24 hours |
© TheCraigHewitt, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in sales/linkedin-outreach of TheCraigHewitt/skills.
Open the folder on GitHubat commit fdbf39b
Linkedin Outreach 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 |
|---|---|---|---|---|---|---|
| Linkedin Outreach this skillTheCraigHewitt/skills | 159 | — | ~5.3k | Automated safety check: Pass | MIT | |
| B2B Lead Generationminhnv0807/ai-business-skills | 609 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Cold Outreach Sequence BuilderBrianRWagner/ai-marketing-claude-code-skills | 441 | — | ~1.9k | Automated safety check: Pass | None | |
| Cold Outreachericrisco/rsc-harness | 180 | — | ~4.1k | Automated safety check: Pass | MIT | |
| Personalize Emailexplorium-ai/gtm-skills | 185 | — | ~2k | Automated safety check: Pass | MIT | |
| Apify Buying Signal Detectionapify/awesome-skills | 266 | — | ~5.1k | Automated safety check: Notes | Apache-2.0 |
minhnv0807/ai-business-skills
Plans B2B pipeline work from ICP definition and prospecting through lead scoring, outbound sequences, sales assets and MQL to SQL handoff, aiming at qualified pipeline.
BrianRWagner/ai-marketing-claude-code-skills
Builds researched LinkedIn and email outreach for prospects, from a single message to a multi-prospect system, with personalization graded by the signals found.
ericrisco/rsc-harness
A skill your agent uses when writing a cold email or LinkedIn DM to a stranger and its cadence: first-touch copy under a word ceiling, 4-7 step bump sequences, per-inbox volume and warm-up limits…
explorium-ai/gtm-skills
Cold email personalization skill for Claude Code and Codex: assemble an intent and firmographic signal pack for one prospect so a downstream LLM can compose a truly personalized outbound email.
apify/awesome-skills
Set up a recurring buying-signal detection pipeline that finds companies showing buying intent across three signal types — job postings (hiring for the persona), fundraising events (recent raises)…
coreyhaines31/marketingskills
When the user wants to find, qualify, and build a list of prospects to reach out to, across B2B SaaS, general B2B, or local small businesses.
TheCraigHewitt/skills
Turns a piece of Craig's content (an email, a YouTube script, an essay, or pasted text) into a polished image carousel publishable to both LinkedIn and Instagram from one set of 1080x1350 slides.
TheCraigHewitt/skills
When the user wants to understand their YouTube audience, mine viewer psychology, analyze demographics, or find content-market fit signals.
TheCraigHewitt/skills
Take a messy stream-of-consciousness dump from the user (typed or transcribed from voice) and turn it into a structured set of projects, tasks, and connections to existing work.
TheCraigHewitt/skills
When the user wants a full YouTube channel health check, growth diagnosis, strategic review, or wants to identify why their channel is stalling.
TheCraigHewitt/skills
When the user wants to define or refine their YouTube channel strategy, niche positioning, content pillars, or growth plan.
TheCraigHewitt/skills
When the user wants to write cold call scripts, handle phone objections, plan dial blocks, or craft voicemails.
Works with
Categories
When the user wants to write LinkedIn connection requests, InMails, DM sequences, build a social selling strategy, or use Sales Navigator for prospecting. Linkedin Outreach is an agent skill from TheCraigHewitt/skills. When the user wants to write LinkedIn connection requests, InMails, DM sequences, build a social selling strategy, or use Sales Navigator for prospecting.
Linkedin Outreach fits situations like: wants to write LinkedIn connection requests; build a social selling strategy; use Sales Navigator for prospecting; the user says LinkedIn message.
Run `npx skills add TheCraigHewitt/skills --skill linkedin-outreach -a claude-code`. Or copy the skill folder (sales/linkedin-outreach in TheCraigHewitt/skills) into .claude/skills/linkedin-outreach in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TheCraigHewitt/skills --skill linkedin-outreach -a codex`. Or copy the skill folder (sales/linkedin-outreach in TheCraigHewitt/skills) into .agents/skills/linkedin-outreach 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 TheCraigHewitt/skills --skill linkedin-outreach -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/linkedin-outreach, .gemini/skills/linkedin-outreach, .github/skills/linkedin-outreach and .opencode/skills/linkedin-outreach in your project.
SKILL.md names no scripts, command-line tools or credentials: Linkedin Outreach 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.
Linkedin Outreach is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.3k tokens (SKILL.md is roughly 21k 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 Linkedin Outreach: B2B Lead Generation (minhnv0807/ai-business-skills, 609 stars), Cold Outreach Sequence Builder (BrianRWagner/ai-marketing-claude-code-skills, 441 stars), Cold Outreach (ericrisco/rsc-harness, 180 stars) and Personalize Email (explorium-ai/gtm-skills, 185 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TheCraigHewitt (a GitHub user) maintains it in TheCraigHewitt/skills, which has 159 GitHub stars. The repository holds 65 skills in this directory. The repository was last updated on May 22, 2026.
Source: TheCraigHewitt/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.