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.
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…
$ npx skills add ericrisco/rsc-harness --skill cold-outreach -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness cold-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/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cold-outreach .claude/skills/cold-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 "cold-outreach" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cold-outreach into .claude/skills/cold-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cold-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/ericrisco/rsc-harness/tree/main/skills/cold-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 ericrisco/rsc-harness --skill cold-outreach -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness cold-outreach --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cold-outreach .agents/skills/cold-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 "cold-outreach" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cold-outreach into .agents/skills/cold-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cold-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 ericrisco/rsc-harness --skill cold-outreach -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness cold-outreach --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cold-outreach .cursor/skills/cold-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 "cold-outreach" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cold-outreach into .cursor/skills/cold-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cold-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/ericrisco/rsc-harness.git --path skills/cold-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 ericrisco/rsc-harness --skill cold-outreach -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness cold-outreach --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cold-outreach .gemini/skills/cold-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 "cold-outreach" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cold-outreach into .gemini/skills/cold-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cold-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 ericrisco/rsc-harness cold-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 ericrisco/rsc-harness --skill cold-outreach -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cold-outreach .github/skills/cold-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 "cold-outreach" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cold-outreach into .github/skills/cold-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cold-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 ericrisco/rsc-harness --skill cold-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 ericrisco/rsc-harness cold-outreach --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cold-outreach .opencode/skills/cold-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 "cold-outreach" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/cold-outreach into .opencode/skills/cold-outreach/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cold-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.
cold-outreachA 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…
Cold Outreach is an agent skill from ericrisco/rsc-harness. Use 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, the compliant opt-out footer. NOT SPF/DKIM/DMARC setup (that is email-deliverability), NOT sourcing the list (that is lead-gen), NOT life after a reply (that is sales-pipeline).
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/compliance-footer.md`).
It sits in Sales & Support, covering Cold outreach, Lead generation and Email management. It works with LinkedIn. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e3d5b33. 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.
Ships 1 file in scripts/ (Shell), which the agent can run.
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.
Cold Outreach loads about 4.1k tokens when it runs, and up to ~7.2k if it reads all its reference files. Until then it costs about 92 tokens; SKILL.md has 2,302 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); the scripts in this folder are not scanned.
The full file from ericrisco/rsc-harness at commit e3d5b33, republished under its MIT licence (© ericrisco). 2,302 words, ~4,090 tokens.
.claude/skills/cold-outreach/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.You write the message a stranger actually replies to, and the sending rhythm that keeps the mailbox provider delivering it. You do not set up DNS, source the list, or run the CRM.
This skill owns two things and only two: the copy of an unsolicited 1:1 touch (cold email, LinkedIn note/DM) and the cadence around it (step count, spacing, per-inbox volume, warm-up ramp, the compliant footer). Everything upstream and downstream belongs to a sibling — route by naming the owner, do not improvise their job:
| The ask | Owner | Why it is not here |
|---|---|---|
| Find / scrape / qualify the prospect list or ICP | lead-gen | This skill assumes you already have a verified recipient. |
| Set up SPF, DKIM, DMARC, a tracking domain, or diagnose DNS-level spam landing | email-deliverability | This skill applies the provider rules to cadence; it does not configure auth. |
| Manage what happens after a reply — stages, tasks, CRM hygiene, close forecast | sales-pipeline | The moment a reply lands the relationship leaves this skill. |
| Write the proposal / SOW / pricing after a prospect engages | proposals | A cold touch earns a conversation, not a contract. |
| Inbound launch emails, nurture to an opted-in list, marketing-site copy | marketing (../marketing/SKILL.md) | Opted-in and broadcast copy is a different game from a 1:1 cold touch. |
| Actually wire the send through Gmail/an ESP API or a scheduler | email-connector / google-workspace | This skill produces text + a plan; it does not push the send. |
Cold email is a low-yield channel by nature, and most "improve my copy" requests are really "stop fighting the math." Set expectations against the 2026 band:
The two levers that actually move the number, in order:
Cleverness ranks a distant third. Do not sell wit; sell relevance, delivered.
Most rescue requests describe a symptom, not a cause, and the instinct (theirs and a naive agent's) is to rewrite the prose. Usually the prose is the wrong lever. Diagnose by the earliest broken metric in the funnel — fix that one, ignore everything downstream of it, because a downstream number can't be read until the upstream one is healthy.
| Symptom the user reports | The number that's actually broken | Almost never the cause | What to fix, in order |
|---|---|---|---|
| "Bounces / lands in spam / domain flagged" | Bounce > 2% or sudden deliverability drop | Copy | List hygiene → lead-gen; sending auth + warm-up → email-deliverability. Stop sending until fixed. |
| "Low open rate" (< ~30-40% on a verified list) | Delivery + subject line | Body copy (they never saw it) | First confirm it's not spam-foldering (a deliverability tell). If delivery is fine, the subject and from-name are the only things they saw — rewrite those, leave the body alone. |
| "Good opens, ~zero replies" | The hook + the CTA | Subject (it worked) / volume | The INFER line is generic or the CTA isn't binary. Re-derive the hook (four-line bridge); make the ask one yes/no question. This is the #1 misdiagnosed case. |
| "Replies but all negative / 'not interested'" | Targeting or timing, not wording | The email itself | You're reaching the wrong role or the wrong moment — a lead-gen ICP problem. Polishing the copy won't convert a person with no need. |
| "First email gets replies, sequence doesn't" | The follow-ups repeat instead of adding an angle | The cadence length | Each step must add ONE new angle (proof → new pain → breakup). Delete any step that restates step 1. Confirm the breakup exists. |
| "It all works at 20/day, dies when I scale" | Per-inbox volume / reputation | Copy | Don't raise per-inbox volume — add inboxes and hold 20-50/day each. See the cadence table. |
The governing rule: the prose is the lever only when opens are healthy and replies are absent. If opens are low, the prose is unread; if replies are negative, the prose found the wrong person. Name the broken metric back to the user before you touch a word — it's the single highest-value thing this skill does that an unaided agent skips.
Hard constraints for the opening email:
Bad → Good rewrite:
BAD (78 words, no real hook, vague + double CTA, spam-flavored):
Subject: Quick question + a free guide for you!!
Hi there, I hope this email finds you well! I came across your company
and was really impressed by what you're doing in the space. We help
companies like yours grow faster with our cutting-edge platform. I'd
love to hop on a call to walk you through it, or I can send over a free
guide — whatever works! Let me know your thoughts. Looking forward to
hearing from you!
GOOD (49 words, one signal, one binary CTA):
Subject: your March hiring for 3 SREs
Hi Dana — saw Acme is hiring three SREs this quarter. Usually that means
on-call pain is outrunning the team. We cut alert noise ~40% for two
infra teams your size in their first month.
Worth a 15-min look next week — yes or no?The Good version names a real signal ({{signal}}), states one concrete outcome ({{outcome}}), and asks one binary question. No greeting filler, no "free", no double ask.
"Use a real signal" is advice everyone gives and almost nobody executes. The reason a personalized email still reads generic is that the writer names the signal and then jumps straight to a generic pain ("...so you probably want to grow faster"). The skill of a cold open is the inference chain from an observable fact to a pain the reader silently agrees with. Build it in four lines, on paper, before you write a word of copy:
The first-touch body is literally lines 2→3→4 in order; line 1 becomes the subject. If the INFER line is generic, the email is generic no matter how many merge fields you add. Test the INFER line in isolation: would it be false for a competitor in the same situation? If it is true of everyone, it is a platitude — go back to the OBSERVE step and pick a sharper fact.
Two boundaries on the OBSERVE line, because both are unrecoverable once sent: keep it professional, public and business-relevant ("saw you're hiring 3 SREs" is relevant; "saw you were at the lake house last weekend" is surveillance), and never invent it — a fabricated "I loved your recent post on X" that does not exist destroys trust on contact.
When the user hands you only a company name and no signal, do not invent one. Ask for (or, if you have web access, look up) one of these signal classes, ranked by reply lift: a hiring/role-change signal > a funding/launch/news signal > a tech-stack or job-description detail > a public number from their own site/report > a shared context (mutual, group, event). A generic industry trend ("AI is changing your space") is not a signal and never clears the INFER test. If no true signal exists at all, that is a lead-gen targeting gap, not a copy task. Worked OBSERVE→INFER→BRIDGE→PROVE chains across six industries live in references/hook-derivation.md.
A first email captures ~58% of replies; steps 2-7 add the remaining ~42%, and reply rates fall off sharply after the 5th email. (Instantly Benchmark 2026.) So the sequence is non-optional, but it is short. 4-7 touches, 2-4 days apart, each adding ONE new angle — never "just bumping this up."
| Step | Day offset | Angle (one new thing) | CTA |
|---|---|---|---|
| 1 | 0 | The observed signal + outcome | Binary yes/no |
| 2 | +3 | A proof point / mini case study | Same binary ask, reframed |
| 3 | +7 | A different pain or angle on the value | Lower-friction ask (a resource, not a call) |
| 4 | +12 | Social proof or a relevant comparison | Binary ask |
| 5 (breakup) | +18 | Permission to stop — "should I close the file?" | One-question close |
| 6-7 (optional) | +25 / +35 | New trigger only if one genuinely appeared | Re-open, binary |
Rules that make the table work:
| Dimension | Cold email | |
|---|---|---|
| First-touch length | ≤ ~80 words | Connection note ≤ ~300 chars; DM ~3-4 sentences |
| Hook source | A site/news/hiring signal | One specific profile signal (a post, a role change, a shared group) |
| CTA | Binary yes/no question | Soft — a question or a relevant share, not a pitch in the note |
| Volume ceiling | 20-50/day per inbox (see below) | ~100 connection requests/week free, safer under 80, rolling weekly |
| Reply benchmark | ~3.43% avg, 10%+ elite | ~6-7% avg, 10%+ excellent |
(LinkedIn figures: Skylead / Kondo / Expandi 2025-2026 guides, accessed 2026-06-02.)
On LinkedIn the connection note must not pitch — earn the connection on a real signal, then make the ask in the first DM after they accept.
Reusable skeletons for both channels — first-touch + 4-step bump, with every variable slot ({{signal}}, {{outcome}}, {{proof}}) marked — live in references/templates.md. Start from a skeleton, then fill every slot with a real value before sending. An unfilled slot is a defect, not a placeholder to ship.
You own the cadence side of deliverability; the DNS/auth side is email-deliverability. Apply these limits to the plan you hand the user:
| Week | Sends/day per inbox |
|---|---|
| 1 | ~10-20 |
| 2 | ~20-35 |
| 3 | ~35-50 |
| 4+ | ~50-65 (hold cold sends at 20-50) |
lead-gen problem, not a copy problem.List-Unsubscribe + List-Unsubscribe-Post) is required for bulk senders to Gmail/Yahoo; Outlook applied the same from 2025-05-05, with Gmail/Yahoo enforcement ramping from Nov 2025. (Google Workspace "Email sender guidelines"; Security Boulevard 2025-11; Proofpoint 2025 — accessed 2026-06-02.)If the user asks you to configure the List-Unsubscribe header, SPF, or DKIM, stop and route to email-deliverability — you specify that the opt-out must exist and be one-click; that skill wires the header.
| Requirement | CAN-SPAM (US) | GDPR (EU B2B) |
|---|---|---|
| Sender identity | Accurate From/Reply-To, honest subject | Same |
| Postal address | A physical mailing address, required | Recommended; identify the controller |
| Opt-out | Clear opt-out, honored within 10 business days | Honored without undue delay (treat as 24-48h) |
| Legal basis | Not consent-based; truthful + opt-out suffices | Art. 6(1)(f) legitimate interest with a documented LIA |
| Penalty | Up to $53,088 per email (Jan 2025) | Up to €20M or 4% of global revenue |
(Instantly compliance guide / Puzzle Inbox; litemail.ai / complydog GDPR guides 2026 — accessed 2026-06-02.)
EU enforcement varies — UK ICO and France CNIL are permissive for B2B; Germany and Poland are stricter (Poland often requires prior consent). When the recipient is in the EU, write the footer for the strictest plausible jurisdiction. The full footer wording, the LIA checklist, and the CASL/Australia matrix → references/compliance-footer.md.
| Anti-pattern | Why it fails | Do instead |
|---|---|---|
| Blast 200/day from one new inbox | Trips spam filters; tanks domain reputation in days | Ramp per the table; hold 20-50/day; split across inboxes |
| Pitch in sentence one | No earned relevance; reads like a billboard | Lead with the observed signal, earn the ask |
| Two CTAs ("call OR I'll send a guide") | Splits the decision; lowers reply rate | One binary yes/no ask per email |
| "Just following up" / "circling back" with no new angle | Adds noise, not value; trains them to ignore you | Each step adds one new angle or it is deleted |
Name-only mail merge or spintax ({Hi|Hey}) as "personalization" | Recipients see the template underneath | One true {{signal}} per first touch or do not send |
| No opt-out / no postal address | CAN-SPAM/GDPR violation; complaint-rate spike | Always append the compliant footer |
| Subject like "Quick question!!" or "FREE" | Clickbait + spam-trigger words land you in spam | ≤6 plain words that read like a coworker wrote them |
| Padding to 7 steps for completeness | Replies past step 5 are thin; you just annoy | Stop at the breakup unless a real new trigger appears |
| "I hope this email finds you well" opener | The classic AI/template tell; wastes the first line | Open on the signal — your first 6 words are the hook |
To self-check a drafted email or sequence file, run scripts/verify.sh path/to/draft.md — it flags missing opt-out, multiple CTAs, over-ceiling word count, and spam/AI-tell phrases (read-only).
© ericrisco, 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 6 other files (scripts, references) in skills/cold-outreach of ericrisco/rsc-harness.
Open the folder on GitHubat commit e3d5b33
Cold 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 |
|---|---|---|---|---|---|---|
| Cold Outreach this skillericrisco/rsc-harness | 167 | — | ~4.1k | Automated safety check: Pass | MIT | |
| B2B Lead Generationminhnv0807/ai-business-skills | 608 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Cold Outreach Sequence BuilderBrianRWagner/ai-marketing-claude-code-skills | 440 | — | ~1.9k | Automated safety check: Pass | None | |
| Outreachyc-software/recruiting | 116 | — | ~3k | Automated safety check: Notes | None | |
| Outbound AnalystOthmane-Khadri/YALC-the-GTM-operating-system | 317 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Lead ResearchTheCraigHewitt/skills | 157 | — | ~5.9k | Automated safety check: Pass | MIT |
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.
yc-software/recruiting
Draft personalized cold outreach to a candidate the hiring manager hasn't contacted yet.
Othmane-Khadri/YALC-the-GTM-operating-system
Analyze and benchmark outbound campaign performance against real lemlist data from 244K+ campaigns and 249M+ emails.
TheCraigHewitt/skills
When the user wants to research accounts, contacts, or build target lists.
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.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
Works with
Categories
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…. Cold Outreach is an agent skill from ericrisco/rsc-harness. Use 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, the compliant opt-out footer.
Cold Outreach fits situations like: writing a cold email; 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.
Run `npx skills add ericrisco/rsc-harness --skill cold-outreach -a claude-code`. Or copy the skill folder (skills/cold-outreach in ericrisco/rsc-harness) into .claude/skills/cold-outreach in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill cold-outreach -a codex`. Or copy the skill folder (skills/cold-outreach in ericrisco/rsc-harness) into .agents/skills/cold-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 ericrisco/rsc-harness --skill cold-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/cold-outreach, .gemini/skills/cold-outreach, .github/skills/cold-outreach and .opencode/skills/cold-outreach in your project.
Going by SKILL.md and its folder, Cold Outreach needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Cold 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 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Cold Outreach: B2B Lead Generation (minhnv0807/ai-business-skills, 608 stars), Cold Outreach Sequence Builder (BrianRWagner/ai-marketing-claude-code-skills, 440 stars), Outreach (yc-software/recruiting, 116 stars) and Outbound Analyst (Othmane-Khadri/YALC-the-GTM-operating-system, 317 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 167 GitHub stars. The repository holds 227 skills in this directory. The repository was last updated on October 7, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.