Pain Language Engagers
gooseworks-ai/goose-skills
Find warm leads by searching LinkedIn for pain-language posts — the frustrations, complaints, and operational struggles your ICP talks about publicly.
Agent skill
by growthenginenowoslawski in growthenginenowoslawski/coldoutboundskills
Autonomous cold email campaign launcher. An agent skill from growthenginenowoslawski/coldoutboundskills.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill auto-research-public -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills auto-research-public --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/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/auto-research-public .claude/skills/auto-research-public && 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 "auto-research-public" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/auto-research-public into .claude/skills/auto-research-public/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auto-research-public", 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/growthenginenowoslawski/coldoutboundskills/tree/main/skills/auto-research-publicType 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 growthenginenowoslawski/coldoutboundskills --skill auto-research-public -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills auto-research-public --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/auto-research-public .agents/skills/auto-research-public && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "auto-research-public" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/auto-research-public into .agents/skills/auto-research-public/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auto-research-public", 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 growthenginenowoslawski/coldoutboundskills --skill auto-research-public -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills auto-research-public --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/auto-research-public .cursor/skills/auto-research-public && 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 "auto-research-public" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/auto-research-public into .cursor/skills/auto-research-public/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auto-research-public", 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/growthenginenowoslawski/coldoutboundskills.git --path skills/auto-research-public--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 growthenginenowoslawski/coldoutboundskills --skill auto-research-public -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills auto-research-public --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/auto-research-public .gemini/skills/auto-research-public && 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 "auto-research-public" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/auto-research-public into .gemini/skills/auto-research-public/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auto-research-public", 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 growthenginenowoslawski/coldoutboundskills auto-research-publicInstalls 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 growthenginenowoslawski/coldoutboundskills --skill auto-research-public -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/auto-research-public .github/skills/auto-research-public && 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 "auto-research-public" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/auto-research-public into .github/skills/auto-research-public/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auto-research-public", 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 growthenginenowoslawski/coldoutboundskills --skill auto-research-public -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills auto-research-public --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/auto-research-public .opencode/skills/auto-research-public && 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 "auto-research-public" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/auto-research-public into .opencode/skills/auto-research-public/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auto-research-public", 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.
auto-research-publicAutonomous cold email campaign launcher. An agent skill from growthenginenowoslawski/coldoutboundskills.
Auto Research Public is an agent skill from growthenginenowoslawski/coldoutboundskills. Autonomous cold email campaign launcher. Takes one target company domain, scrapes their website, generates an ICP with Claude, pulls matching leads via Prospeo, enriches emails + company descriptions, personalizes each lead with parallel Claude Code Task sub-agents (A/B/C variants), and uploads as a live Smartlead campaign. Uses local JSON files for state (no database required). Use for automated daily campaign launches after you have an initial client-profile.yaml from /icp-onboarding. Triggers on…
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts (for example `scripts/phase-enrich.ts`, `scripts/phase-prospeo.ts` and `scripts/phase-scrape.ts`).
It sits in Sales & Support, covering Web scraping, Cold outreach and Subagents. The repository describes itself as: Open-source Claude Code skills for cold email and outbound sales. Grade campaigns, export Prospeo searches, scrape Google Maps — all from Claude Code. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 25c5d85. 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 4 files in scripts/ (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SMARTLEAD_API_KEYPROSPEO_API_KEYMILLIONVERIFIER_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Auto Research Public loads about 2.9k tokens when it runs. Until then it costs about 155 tokens; SKILL.md has 1,067 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 growthenginenowoslawski/coldoutboundskills at commit 25c5d85, republished under its MIT licence (© growthenginenowoslawski). 1,067 words, ~2,902 tokens.
.claude/skills/auto-research-public/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Automated end-to-end campaign launcher. Feed it one target company domain, get back a live Smartlead campaign with per-lead personalization — in about 20 minutes.
This is the beginner-friendly version of the GEX internal auto-research-v2. All state lives in local JSON files; no Supabase, no Trigger.dev.
client-profile.yamlBefore running:
client-profile.yaml exists (run /icp-onboarding if not)SMARTLEAD_API_KEY in envPROSPEO_API_KEY in envMILLIONVERIFIER_API_KEY in env (for email validation)/smartlead-inbox-manager first)Unlike the other skills, this skill orchestrates through the Claude Code conversation itself — Claude does the reasoning (ICP generation, copy writing, personalization), and phase scripts do the heavy API I/O. This is the pattern from the GEX v2 internal.
npx tsx scripts/phase-scrape.ts --domain=<target.com> --out=/tmp/auto/scrape.jsonOutput: JSON with domain + text content from homepage, /about, /product, /pricing, /customers.
Claude reads the output and writes a short analysis to /tmp/auto/company-analysis.md:
Reading /tmp/auto/scrape.json + ~/cold-email-ai-skills/profiles/<slug>/client-profile.yaml, Claude writes Prospeo filters to /tmp/auto/filters.json:
{
"job_titles": ["VP Marketing", "Head of Marketing", ...],
"seniorities": ["Vice President", "Head", "Director"],
"industries": ["Software Development", "Financial Services"],
"company_size_min": 50,
"company_size_max": 500,
"countries": ["US"],
"excluded_industries": ["Religious Institutions", "Government Administration"]
}Claude MUST use exact Prospeo industry names from ~/cold-email-ai-skills/skills/icp-onboarding/references/prospeo-industries.md.
npx tsx scripts/phase-prospeo.ts --filters-file=/tmp/auto/filters.json --max-leads=1000 --out=/tmp/auto/leads.jsonOutput: JSON with leads array. Each lead has: first_name, last_name, email (may be empty), linkedin_url, job_title, company_name, company_domain, company_industry, company_headcount, company_description.
npx tsx scripts/phase-enrich.ts --leads-file=/tmp/auto/leads.json --out=/tmp/auto/enriched.jsonThe script:
enrich-person endpointExpect hit rates:
Claude generates 3 copy variants (A, B, C) and writes to /tmp/auto/variants.json:
[
{
"variant": "A",
"subject": "<concrete, specific, <60 chars>",
"angle": "<pain observation>",
"body_template": "Hi {{first_name}},\n\n{{situation_line_a}}\n\n{{value_line_a}}\n\n{{cta_line_a}}\n\n%signature%\n\nP.S. If this isn't relevant, just let me know and I won't reach out again."
},
{
"variant": "B",
"subject": "<different angle>",
"angle": "<compliment + transition>",
"body_template": "..."
},
{
"variant": "C",
"subject": "<third angle>",
"angle": "<question>",
"body_template": "..."
}
]Rules Claude MUST follow (run /spam-word-checker on output):
%signature% on its own line.Claude fans out to parallel Task sub-agents (one per variant × batch of 20-30 leads). See /personalization-subagent-pattern for the full pattern.
Per lead, each sub-agent writes to /tmp/auto/personalization-<batch>-variant-<X>.json:
[
{
"lead_id": "...",
"situation_line": "One sentence about the company.",
"value_line": "One sentence connecting to our offer.",
"cta_soft": "One soft ask sentence."
}
]After all sub-agents finish, Claude merges by lead_id into /tmp/auto/personalized.json. Each lead now has 9 personalization fields.
npx tsx scripts/phase-upload.ts \
--leads-file=/tmp/auto/personalized.json \
--variants-file=/tmp/auto/variants.json \
--domain=<target.com> \
--inboxes-tag=active \
--inbox-count=10 \
--activateThis script:
[AUTO] <date> <target> Auto{{situation_line_a_{campaign_id}}})Outputs: { campaignId, inboxCount, leadsUploaded } to stdout.
Write to ~/cold-email-ai-skills/profiles/<slug>/experiments/<YYYY-MM-DD>-<target>.json:
{
"date": "2026-04-17",
"target_domain": "example.com",
"smartlead_campaign_id": 123456,
"inboxes_assigned": [...],
"icp_filters": {...},
"variants": [...],
"lead_count_uploaded": 347,
"launched_at": "2026-04-17T14:23:00Z",
"status": "launched"
}This is your experiment log. /experiment-design reads from here to compare runs. /positive-reply-scoring writes results back to this file after 21 days.
To run all 8 phases in one command (with Claude orchestrating):
/auto-research-public --domain=<target.com>Claude Code will execute each phase in order, pausing before phase 5 (copy) and phase 7 (upload) so you can review.
Once comfortable, wrap it in a cron or use Claude Code's /loop skill to run daily:
/loop 1d /auto-research-public --domain=$(cat /tmp/auto/next-target.txt)You need a way to pick the next target each day. Options:
targets.txt list and pop one per day/list-builder and /list-expander)Everything the skill needs lives under ~/cold-email-ai-skills/profiles/<slug>/:
profiles/
<business-slug>/
client-profile.yaml # from /icp-onboarding
lead-magnets.md # from /lead-magnet-brainstorm
experiments/
2026-04-16-targetco.json # per-campaign experiment log
2026-04-17-othertarget.json
scores/
123456-2026-05-07.json # from /positive-reply-scoringThe GEX v2 uses a Supabase table auto_research_inbox_assignments to track which inboxes are assigned to which campaigns (to spread load). This public version:
daily_sent_count as a proxy for "how recently used"Works for <1000 inboxes. If you scale beyond that, migrate to a real DB.
/icp-onboarding references/prospeo-industries.md for exact matches./personalization-subagent-pattern references/failure-modes.md./smartlead-inbox-manager list-health), and that leads actually uploaded.Typical run (1 target, 1000 leads pulled):
Total: ~$6-10 per campaign to reach 300-500 valid emails.
scripts/phase-scrape.ts — website scrapescripts/phase-prospeo.ts — Prospeo paginated searchscripts/phase-enrich.ts — email waterfall + description enrichment + MillionVerifierscripts/phase-upload.ts — Smartlead campaign creation + uploadreferences/orchestration-checklist.md — full step-by-step for running the loop manuallyreferences/icp-to-prospeo.md — how to translate client-profile.yaml into Prospeo filter JSONreferences/copy-variant-guide.md — how to write 3 distinct A/B/C variantsWait 21 days for the campaign to accumulate reply data, then run /positive-reply-scoring on the launched campaign.
Meanwhile: continue the weekly rhythm via /cold-email-weekly-rhythm. Every Monday, /email-deliverability-audit on the new campaign to catch infrastructure issues early.
Or wait: this skill IS the automation loop. Next action can be "run again tomorrow with a different target domain" or integrate with /schedule skill to run daily.
/icp-onboarding — produces client-profile.yaml (required input)/lead-magnet-brainstorm — produces the offer/CTA this campaign asks about/personalization-subagent-pattern — the fan-out pattern used in phase 6/smartlead-inbox-manager — must run BEFORE so inboxes are tagged/warmed/positive-reply-scoring — run AFTER 21 days to score the campaign/experiment-design — how to plan which target to try next© growthenginenowoslawski, 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 4 other files (scripts) in skills/auto-research-public of growthenginenowoslawski/coldoutboundskills.
Open the folder on GitHubat commit 25c5d85
Auto Research Public 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 |
|---|---|---|---|---|---|---|
| Auto Research Public this skillgrowthenginenowoslawski/coldoutboundskills | 753 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Pain Language Engagersgooseworks-ai/goose-skills | 1.2k | 1 repos | ~2.1k | Automated safety check: Notes | MIT | |
| Ops LeadgenLifecycle-Innovations-Limited/claude-ops | 542 | — | ~1.1k | Automated safety check: Notes | MIT | |
| Personalize MessageOthmane-Khadri/YALC-the-GTM-operating-system | 318 | — | ~1.3k | Automated safety check: Notes | MIT | |
| Tech Stack Teardowngooseworks-ai/goose-skills | 1.2k | 1 repos | ~3.1k | Automated safety check: Notes | MIT | |
| Apify Buying Signal Detectionapify/awesome-skills | 266 | — | ~5.1k | Automated safety check: Notes | Apache-2.0 |
gooseworks-ai/goose-skills
Find warm leads by searching LinkedIn for pain-language posts — the frustrations, complaints, and operational struggles your ICP talks about publicly.
Lifecycle-Innovations-Limited/claude-ops
OPS on-demand: This skill should be used when the user asks to "leadgen drafts", "cold email approve"…
Othmane-Khadri/YALC-the-GTM-operating-system
Generate a personalized outbound message (LinkedIn DM or cold email) for a single prospect by combining a template with the lead's profile, company, and recent signals.
gooseworks-ai/goose-skills
Reverse-engineer a company's sales and marketing tech stack from public signals.
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)…
browser-act/skills
This skill helps users automatically scrape business data from Google Maps using the BrowserAct Google Maps API.
growthenginenowoslawski/coldoutboundskills
Diagnostic audit for a running cold email program. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Conversational intake for cold email campaigns. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
META skill — build the largest possible qualified lead list for any request, end to end.
growthenginenowoslawski/coldoutboundskills
Use the Blitz API to find decision-makers at specific companies when you already have a list of company domains.
growthenginenowoslawski/coldoutboundskills
Compare reply rates, bounce rates, and positive reply rates broken down by inbox type (SMTP / Gmail / Outlook) for a Smartlead account.
growthenginenowoslawski/coldoutboundskills
Find lookalike companies via DiscoLike's 65M+ business domain database.
Categories
Autonomous cold email campaign launcher. An agent skill from growthenginenowoslawski/coldoutboundskills. Auto Research Public is an agent skill from growthenginenowoslawski/coldoutboundskills. Autonomous cold email campaign launcher.
Auto Research Public fits situations like: automated daily campaign launches after you have an initial client-profile.yaml from /icp-onboarding; launch an automated campaign; run the research loop.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill auto-research-public -a claude-code`. Or copy the skill folder (skills/auto-research-public in growthenginenowoslawski/coldoutboundskills) into .claude/skills/auto-research-public in your project. Claude Code loads it when a task matches its description.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill auto-research-public -a codex`. Or copy the skill folder (skills/auto-research-public in growthenginenowoslawski/coldoutboundskills) into .agents/skills/auto-research-public 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 growthenginenowoslawski/coldoutboundskills --skill auto-research-public -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/auto-research-public, .gemini/skills/auto-research-public, .github/skills/auto-research-public and .opencode/skills/auto-research-public in your project.
Going by SKILL.md and its folder, Auto Research Public needs TypeScript for the scripts in its folder, the command-line tools its instructions call (npx) and credentials named SMARTLEAD_API_KEY, PROSPEO_API_KEY and MILLIONVERIFIER_API_KEY. Our summary lists: Node.js; A credential in SMARTLEAD_API_KEY; A credential in PROSPEO_API_KEY.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. 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.
Auto Research Public is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k 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 Auto Research Public: Pain Language Engagers (gooseworks-ai/goose-skills, 1.2k stars), Ops Leadgen (Lifecycle-Innovations-Limited/claude-ops, 542 stars), Personalize Message (Othmane-Khadri/YALC-the-GTM-operating-system, 318 stars) and Tech Stack Teardown (gooseworks-ai/goose-skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
growthenginenowoslawski (a GitHub user) maintains it in growthenginenowoslawski/coldoutboundskills, which has 753 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 5, 2026.
Source: growthenginenowoslawski/coldoutboundskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.