Find Leads
eracle/OpenOutreach
Find qualified B2B leads with OpenOutreach — run openoutreach find N [emails], read the CSV it prints on stdout, and hand the rows to whatever sends.
Handles disqualified and near-miss inbound leads gracefully.
$ npx skills add gooseworks-ai/goose-skills --skill disqualification-handling -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gooseworks-ai/goose-skills disqualification-handling --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/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/sales/composites/disqualification-handling .claude/skills/disqualification-handling && 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 "disqualification-handling" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/sales/composites/disqualification-handling into .claude/skills/disqualification-handling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "disqualification-handling", 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/gooseworks-ai/goose-skills/tree/main/skills/sales/composites/disqualification-handlingType 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 gooseworks-ai/goose-skills --skill disqualification-handling -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gooseworks-ai/goose-skills disqualification-handling --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/sales/composites/disqualification-handling .agents/skills/disqualification-handling && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "disqualification-handling" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/sales/composites/disqualification-handling into .agents/skills/disqualification-handling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "disqualification-handling", 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 gooseworks-ai/goose-skills --skill disqualification-handling -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gooseworks-ai/goose-skills disqualification-handling --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/sales/composites/disqualification-handling .cursor/skills/disqualification-handling && 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 "disqualification-handling" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/sales/composites/disqualification-handling into .cursor/skills/disqualification-handling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "disqualification-handling", 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/gooseworks-ai/goose-skills.git --path skills/sales/composites/disqualification-handling--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 gooseworks-ai/goose-skills --skill disqualification-handling -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gooseworks-ai/goose-skills disqualification-handling --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/sales/composites/disqualification-handling .gemini/skills/disqualification-handling && 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 "disqualification-handling" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/sales/composites/disqualification-handling into .gemini/skills/disqualification-handling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "disqualification-handling", 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 gooseworks-ai/goose-skills disqualification-handlingInstalls 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 gooseworks-ai/goose-skills --skill disqualification-handling -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/sales/composites/disqualification-handling .github/skills/disqualification-handling && 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 "disqualification-handling" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/sales/composites/disqualification-handling into .github/skills/disqualification-handling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "disqualification-handling", 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 gooseworks-ai/goose-skills --skill disqualification-handling -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gooseworks-ai/goose-skills disqualification-handling --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/sales/composites/disqualification-handling .opencode/skills/disqualification-handling && 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 "disqualification-handling" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/sales/composites/disqualification-handling into .opencode/skills/disqualification-handling/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "disqualification-handling", 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.
disqualification-handlingHandles disqualified and near-miss inbound leads gracefully.
Disqualification Handling is an agent skill from gooseworks-ai/goose-skills. Handles disqualified and near-miss inbound leads gracefully. Drafts polite rejection emails, referral requests (right company wrong person), and nurture routing (future fit). Ensures no inbound lead gets ignored and every disqualification preserves the relationship. Tool-agnostic.
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.meta.json`).
It sits in Marketing & SEO, covering Lead generation. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c650c6d. 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 (its code samples are json and markdown).
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.
Disqualification Handling loads about 3.9k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 1,504 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 gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 1,504 words, ~3,866 tokens.
.claude/skills/disqualification-handling/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Processes leads that didn't pass ICP qualification. Instead of ignoring them, this composite handles each category appropriately: polite rejection, referral request, or nurture routing. No inbound lead should feel ghosted.
Load this composite when:
inbound-lead-qualification has completed and disqualified/near-miss leads need handling[Disqualified Leads] → Step 1: Categorize → Step 2: Draft Responses → Step 3: Route to Destination
↓ ↓ ↓
4 handling categories Tailored email per type Nurture/CRM/archiveOn first run, establish response preferences.
{
"sender_name": "",
"sender_title": "",
"company_name": "",
"tone": "warm-professional | casual-friendly | formal",
"nurture_sequence_tool": "Smartlead | HubSpot | Mailchimp | CSV export | none",
"referral_incentive": "none | mention mutual value | offer resource",
"include_resource_link": true,
"resource_url": "",
"resource_description": "",
"feedback_survey_url": "",
"do_not_contact_list": "Supabase | CSV | none"
}On subsequent runs: Load config silently.
Leads from inbound-lead-qualification with sub-verdicts. Categorize each into one of four handling paths:
Trigger: mismatch_type = right_company_wrong_person
Identify the referral target:
Trigger: sub_verdict = near_miss_nurture OR score 30-49 without a referral opportunity
Trigger: sub_verdict = disqualified_polite OR score < 30
Trigger: sub_verdict = disqualified_competitor OR pipeline_status = existing_customer
Each lead tagged with: handling_category, handling_action, referral_target_persona (for Category 1)
Objective: Thank them, subtly indicate they may not be the right person, and ask for an introduction — without making them feel dismissed.
Structure:
Template framework:
Subject: Thanks for checking us out, [First Name]
Hi [First Name],
Thanks for [downloading our guide on X / requesting a demo / signing up for the trial].
[One sentence connecting their action to a genuine insight — "it's a great resource for
understanding Y."]
I took a look at [Company] — [one sentence showing you understand the company].
Given what [Product] does, I think [target persona title, e.g., "your VP of Engineering"
or "whoever leads infrastructure decisions"] would get the most out of a conversation
with us.
Would you be open to making an introduction? Happy to send you a quick blurb you
can forward, so it's zero effort on your end.
[If resource_link configured: "In the meantime, here's [resource] that might be
useful for [something relevant to THEIR role]."]
Thanks,
[Sender Name]Rules:
Objective: Keep the relationship warm without false promises. Position yourself as a future resource.
Structure:
Template framework:
Subject: [First Name] — thanks for your interest in [Product]
Hi [First Name],
Thanks for [action they took]. I looked into [Company] and really like
[genuine compliment — what they're building, their growth, their approach].
Based on where [Company] is right now, I think [honest reason the timing
isn't right, framed positively — e.g., "you'd get the most value from us
once your team scales past X" or "this tends to be most impactful after Y
milestone"].
In the meantime, [here's a resource / I'd recommend / you might find this useful] —
[brief description of why it's relevant to them NOW, not just to your product].
I'll keep an eye on [Company] — would love to reconnect when the timing
is better. Feel free to reach out anytime.
Best,
[Sender Name]Rules:
Objective: Decline gracefully while leaving a positive impression of your brand.
Structure:
Template framework:
Subject: Thanks for reaching out, [First Name]
Hi [First Name],
Thanks for your interest in [Product]. I appreciate you taking the time to
[action they took].
We're focused specifically on [your niche/ICP in plain language], and it
sounds like [their situation — framed neutrally, not critically] might be
a different use case from what we're built for.
[If you know an alternative: "You might want to check out [Alternative] —
they're strong for [their actual need]."]
[If no alternative: "I don't want to waste your time, but if your needs
evolve, we'd be happy to chat."]
Best of luck with [something specific to their situation],
[Sender Name]Rules:
| Category | Email Action | CRM Action | Sequence Action |
|---|---|---|---|
| Referral Request | Draft ready for human review & send | Tag as referral_pending | None — single touch |
| Nurture | Draft ready for human review & send | Tag as nurture_future_fit, set reminder for re-evaluation in 3-6 months | Add to nurture drip if configured |
| Polite Decline | Draft ready for human review & send | Tag as disqualified_responded, note reason | None — single touch |
| Competitor | No email | Tag as competitor_employee, log in competitive intel | None |
| Existing Customer | No sales email | Flag for CS/AM team, note the inbound action | None |
If a nurture sequence tool is configured:
For Category 2 (nurture) leads, define when to re-evaluate:
If signal composites are active (funding-signal-outreach, hiring-signal-outreach, champion-move-outreach), these triggers happen automatically.
## Disqualification Handling: [Date]
### Summary
- **Total disqualified/near-miss leads:** X
- **Referral requests (right co, wrong person):** X
- **Nurture (future fit):** X
- **Polite decline:** X
- **Competitor (no response):** X
- **Existing customer (route to CS):** X
---
### Referral Requests — Review & Send
#### [Name] — [Title] at [Company]
- **Why not them:** [one sentence — e.g., "Marketing coordinator, we need VP Engineering"]
- **Referral target:** [Title/persona we want to reach]
- **Known contacts at company:** [from enrichment/CRM, if any]
- **Draft email:**
> [email draft]
---
### Nurture — Review & Send
#### [Name] — [Title] at [Company]
- **Why not yet:** [one sentence — e.g., "20 employees, ICP starts at 50"]
- **Re-evaluate when:** [trigger — e.g., "headcount crosses 50" or "6 months"]
- **Draft email:**
> [email draft]
---
### Polite Decline — Review & Send
#### [Name] — [Title] at [Company]
- **Why not a fit:** [one sentence]
- **Suggested alternative:** [if known]
- **Draft email:**
> [email draft]
---
### Flagged (No Outreach)
**Competitors:**
- [Name] from [Company] — [what they did] on [date]
**Existing Customers:**
- [Name] from [Company] — [what they did] — Current account owner: [name]Append to the qualification CSV or produce a separate handling CSV:
handling_category, handling_action, email_draft, referral_target, nurture_trigger, re_evaluate_dateSave to the current working directory or wherever the user prefers.
Lead who's clearly a bot or spam:
Skip all categories. Tag as spam and archive. Don't waste an email draft. Signs: gibberish name, test@test.com, form filled in < 2 seconds, obvious fake company.
Lead who requested a demo but is clearly disqualified: Still draft a polite decline. A demo request deserves a human response even if the answer is no. Consider: if they're a strong referral opportunity (right company), prioritize the referral path over the decline path.
Lead at a competitor's customer: This is NOT a competitor employee — this is someone at a company that uses a competitor. They came inbound, which means they might be looking to switch. Do NOT disqualify. Route back to qualification as a high-priority signal.
Multiple people from the same company, some qualified, some not: For disqualified people at a company where someone else qualified: Draft a softer version that acknowledges "we're already in touch with your team at [Company]" — don't send a rejection to someone whose colleague is in active talks.
Lead who's a journalist, analyst, or investor: Not a customer, but not a "decline" either. Flag separately: "Non-customer interest from [Name], [Role] at [Publication/Fund]. May be PR/AR opportunity." Route to marketing or founder.
Very high-volume batches (50+ disqualified):
All draft emails must follow these rules regardless of category:
email-drafting capability for tone and structure© gooseworks-ai, 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 1 other file in skills/sales/composites/disqualification-handling of gooseworks-ai/goose-skills.
Open the folder on GitHubat commit c650c6d
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.
Disqualification Handling 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 |
|---|---|---|---|---|---|---|
| Disqualification Handling this skillgooseworks-ai/goose-skills | 1.2k | 1 repos | ~3.9k | Automated safety check: Pass | MIT | |
| Find Leadseracle/OpenOutreach | 3.2k | — | ~4.6k | Automated safety check: Pass | GPL-3.0 | |
| 100m Leadsgetagentseal/founder-playbook | 729 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Business Contact and Social Links Finderbrowser-act/skills | 6.1k | 1 repos | ~1.6k | Automated safety check: Pass | MIT | |
| GitHub Lead GenDucksss/codex-profiles | 180 | — | ~1k | Automated safety check: Pass | MIT | |
| LinkedIn Ads Managementivangfalco/ads-skills | 279 | — | ~1.7k | Automated safety check: Pass | Custom licence |
eracle/OpenOutreach
Find qualified B2B leads with OpenOutreach — run openoutreach find N [emails], read the CSV it prints on stdout, and hand the rows to whatever sends.
getagentseal/founder-playbook
Builds lead generation systems using Alex Hormozi's Core Four framework (warm outreach, content, cold outreach, paid ads), lead magnets, and Rule of 100.
browser-act/skills
Finds a company's official website and social profiles from its name, or collects social links from a website URL, using BrowserAct templates run by a Python script.
Ducksss/codex-profiles
A skill your agent uses when running GitHub lead generation for codex-profiles.
ivangfalco/ads-skills
Routes LinkedIn Ads work for B2B SaaS to the right playbook: campaign planning, performance analysis, account audits, creative, scaling and account-based campaigns.
freekmurze/dotfiles
When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness.
gooseworks-ai/goose-skills
Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.
gooseworks-ai/goose-skills
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.
gooseworks-ai/goose-skills
Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.
gooseworks-ai/goose-skills
Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.
gooseworks-ai/goose-skills
Find leads by scraping engagers from a competitor's top LinkedIn posts.
gooseworks-ai/goose-skills
Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…
Categories
Handles disqualified and near-miss inbound leads gracefully. Disqualification Handling is an agent skill from gooseworks-ai/goose-skills. Handles disqualified and near-miss inbound leads gracefully.
Disqualification Handling fits situations like: tasks that involve Lead generation.
Run `npx skills add gooseworks-ai/goose-skills --skill disqualification-handling -a claude-code`. Or copy the skill folder (skills/sales/composites/disqualification-handling in gooseworks-ai/goose-skills) into .claude/skills/disqualification-handling in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gooseworks-ai/goose-skills --skill disqualification-handling -a codex`. Or copy the skill folder (skills/sales/composites/disqualification-handling in gooseworks-ai/goose-skills) into .agents/skills/disqualification-handling 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 gooseworks-ai/goose-skills --skill disqualification-handling -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/disqualification-handling, .gemini/skills/disqualification-handling, .github/skills/disqualification-handling and .opencode/skills/disqualification-handling in your project.
SKILL.md names no scripts, command-line tools or credentials: Disqualification Handling 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.
Disqualification Handling is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 15k 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 Disqualification Handling: Find Leads (eracle/OpenOutreach, 3.2k stars), 100m Leads (getagentseal/founder-playbook, 729 stars), Business Contact and Social Links Finder (browser-act/skills, 6.1k stars) and GitHub Lead Gen (Ducksss/codex-profiles, 180 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.
Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.