agentsclimarketplace

Cold outreach

Skill adamjali/claude-skills/plugins/cold-outreach

Research a prospect, evaluate fit, draft a personalized cold email, preview it to yourself, send it via Resend, and track it in a bounded ledger. Use when the user asks to "research a company/prospect", "check out this lead", "draft a cold email", "send cold outreach", "outreach to this business", "deep dive on this prospect", "add to my prospect list", or "follow up". Config-driven: you set your sender identity, product, and ideal customer in references/config.md — the skill stays generic across industries.From its SKILL.md

Install
npx -y skills add adamjali/claude-skills --skill cold-outreach

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • reads credentialsReads from 2 credential sources: `RESEND_API_KEY` and 1 more.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 1 command, including `scripts/send-email.sh`.

SKILL.md

7.4 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

Cold Outreach

<objective> Run personalized 1:1 cold-email outreach for whatever you're selling. Covers the full workflow: deep prospect research (parallel agents — web search + page scraping + public profiles), a 1-10 fit rating, a personalized draft, a **mandatory preview to your own inbox before any real send**, sending via the Resend API, and tracking in a bounded ledger. You define who you are and what you sell in `references/config.md`; the skill reads it each run. NEVER send without a preview confirmation. </objective> <context> @references/config.md @ledger/prospects.md </context>

<execution_context>

  • 🟢 Auto: research, evaluation, draft generation, preview-to-self send
  • 🟡 ASK on: which recipient to target if there are multiple candidates, custom personalization, follow-up timing
  • 🔴 NEVER: send to a generic inbox without a specific Attn line; send to the real recipient without a preview + explicit "yes send it"; modify the ledger without an explicit request
  • Mandatory self-preview: ALWAYS send the draft to your own address (from config) with a "(test)" subject prefix BEFORE the real send
  • History: append-only ledger/prospects.md (one row per prospect; status tracked via cell updates) </execution_context>

Setup (one time)

Fill in references/config.md with your sender identity, product one-liner, target profile, and subject line. Set two environment variables:

export RESEND_API_KEY="your-key"   # free key at https://resend.com
export JINA_API_KEY="your-key"     # optional; free key at https://jina.ai (Reader also works keyless)

Core Workflow

  1. Research — deep-dive a prospect using parallel agents (page scraping + web search).
  2. Evaluate — rate the prospect 1-10 on fit signal, size, and contact accessibility.
  3. Draft — personalize the template with a prospect-specific hook.
  4. Preview — send the draft to your own inbox (from config) for a visual review.
  5. Send — after explicit confirmation, send to the target via Resend.
  6. Log — update ledger/prospects.md with send date, recipient, and follow-up notes.

Research Protocol

Launch 2-3 parallel research agents:

Agent 1 — Site scrape: scrape the prospect's website for team members, roles, emails, bios, and the pages most relevant to what you sell. Use the jina-image-search skill or raw jina endpoints — Reader (r.jina.ai) works keyless; Search (s.jina.ai) needs JINA_API_KEY (or use the built-in WebSearch tool instead).

Agent 2 — External research: search each decision-maker by name on public profiles (LinkedIn, industry directories, review sites). Find reviews, ratings, awards, talks, publications, and the company's external reputation.

Agent 3 (optional) — Depth on the buying signal: scrape the pages that indicate whether they have the problem you solve, and identify the specific gap your product fills.

Fit Evaluation

Rate prospects 1-10:

FactorWeightWhat to look for
Buying signalHighEvidence they have the exact problem you solve
SizeMediumThe size band where your offer lands best (define it in config)
Contact accessibilityHighA direct decision-maker email >> a generic inbox >> a contact form only
ReadinessMediumNo incumbent solution = easier; an entrenched competitor = harder
ReputationLowPublic ratings as a tiebreaker

8-10: strong target. 5-7: moderate. 1-4: low priority.

Who to Send To

  1. The person who owns the problem you solve day-to-day.
  2. A direct, named email over a generic inbox ([email protected] > [email protected]).
  3. Skip admin@/noreply@. For a generic inbox at a larger org, add a bold Attn: [team] line using their actual internal team name.

Email Template

Read references/email-template.html and references/email-template.txt. Fill the placeholders from references/config.md and the prospect research.

Personalization rules

  • Replace [prospect specific thing] with something concrete from their site (a 30-second skim).
  • Reference their actual content, work, or details — show you looked.
  • Do NOT personalize the subject line. For B2B cold email, a generic, low-key subject generally out-performs a personalized one; keep it short and non-salesy (set it in config).

Template style rules

  • Inline styles only (email clients strip <style> tags); plain-text version always included.
  • System font stack, ~15px, line-height 1.6, near-black text; one clear link, not a loud button.
  • Keep it short and text-first for deliverability — avoid heavy images on a first send.

Sending Protocol

Send via the Resend API — see scripts/send-email.sh (reads RESEND_API_KEY; takes the from-address, subject, recipient, and bodies so nothing is hardcoded).

  • From / subject: from references/config.md.
  • Always send both HTML and plain-text versions.
  • Always confirm the recipient with the user before the real send.
  • For previews, send to your own address (config) with a "(test)" subject prefix.

Tracking

After each send, update ledger/prospects.md: add/refresh the prospect's row (name, contact, size, signal), mark SENT [date] with recipient + role, and note the next follow-up.

Follow-Up Sequence

3-4 days after the initial send, up to two follow-ups, each hitting a different angle (a different pain point, a proof point, or a short nudge). Stop after two; never spam.

<saved_rules_format> Accumulate learnings in references/lessons.md (durable). Format: - {topic}: {rule} — set {YYYY-MM-DD} e.g. "channel: direct email beats generic inbox", "subject: never personalized", "timing: Tuesday morning best open rate", "skip: prospects with an entrenched incumbent". Surface relevant rules at the start of a run. </saved_rules_format>

<recovery_protocol>

  • Interrupted mid-research → check which agents completed; resume only the missing ones.
  • Interrupted mid-draft → reload the prospect research; regenerate the draft.
  • Interrupted mid-send → check Resend for the last send id; verify it actually sent before retrying (avoid duplicate sends). </recovery_protocol>

<error_handling>

  • Scrape returns blocked/empty → fall back to web search; never block on one source.
  • Resend rate limit → sleep and retry once.
  • No direct email → require explicit user go before sending to a generic inbox.
  • Bounce / hard fail → mark the row BOUNCED [date]; do not retry without confirmation. </error_handling>

<success_criteria>

  • Prospect research completed (multi-agent output)
  • Fit rating assigned (1-10) with rationale
  • Draft personalized with a prospect-specific hook
  • Preview sent to your own inbox with a "(test)" prefix
  • User confirmed before the real send
  • Ledger row appended/updated with SENT [date]
  • Follow-up notes added </success_criteria>

What ships with it: 7 files

4.1 KB alongside SKILL.md, 1 of them executable

.claude-plugin/

ledger/

scripts/

Gives 0 of the 12 instructions most sales audience skills give in ~1.6k tokens

Counted across 401 of the 401 authors here whose files we hold, read 2026-08-07

  • Read product marketing context before asking questionsin 21 of 401, across 11 files
  • Acknowledge competitor strengths honestlyin 18 of 401, across 7 files
  • Start every page with a summaryin 15 of 401, across 4 files
  • Use a single, low-friction call to actionin 15 of 401, across 7 files
  • Create a single source of truth for each competitorin 14 of 401, across 3 files
  • Make each follow-up email add new valuein 11 of 401, across 5 files
  • Cut any sentence that does not drive a replyin 10 of 401, across 4 files
  • Tie personalization directly to the problemin 10 of 401, across 4 files
  • Write paragraph comparisons for each dimensionin 9 of 401, across 3 files
  • Link between related competitor pagesin 9 of 401, across 3 files
  • Keep subject lines short and lowercasein 9 of 401, across 3 files
  • Define ideal customer profile from top customersin 9 of 401, across 3 files

Said here and by no other author read

  • read the config file each run
  • launch parallel research agents per prospect
  • rate the prospect on fit, size, and accessibility
  • personalize the email with a specific hook
  • send a preview to your own inbox first
  • use inline styles only in the HTML email

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.