jasoncolapietro/suede-prospecting
Suede-owned prospecting and qualification discipline. Use when defining an ICP, sourcing and enriching a bounded lead list, finding early adopters or design partners, scoring account fit, or documenting disqualification evidence. NOT FOR: sending outreach (use suede-cold-email), changing CRM routing (use suede-revops), or profiling competitors instead of prospects (use suede-competitor-profiling).
npx skills add https://github.com/JasonColapietro/suede-creator-skills --skill suede-prospecting
Suede Prospecting turns an approved ICP into a source-backed, scored lead sheet
across B2B SaaS, general B2B, local business, and early demand-signal motions.
Every candidate carries qualification evidence, disqualification logic, and a
compliance-aware handoff before outreach begins.
Check for product marketing context first:
If .agents/product-marketing.md exists (or .claude/product-marketing.md, or the legacy product-marketing-context.md filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Prospecting motions differ enough that the workflow forks at intake. Pick one branch based on who the user is selling to:
| Branch | Sell to | What "qualified" looks like | Possible sources after access and terms checks |
|--------|---------|----------------------------|-----------------------------------------------|
| SaaS | Other SaaS companies / digital businesses | ICP fit + tech stack match + growth signals (funding, hiring, product velocity) | Public company sites, directories, developer sources, or licensed data available to the user |
| B2B | Non-SaaS B2B (services, manufacturers, enterprises, mid-market) | Industry + size + geographic fit + buying signals (trigger events, vendor changes) | Public company records, industry directories, or licensed business data available to the user |
| Local SMB | Local small businesses (shops, gyms, restaurants, clinics, salons, services) | Active business + website status + proximity + decision-maker access | Public business sites and manually reviewed listings allowed by their terms |
| Demand-signal | Early-stage: first customers, design partners, or beta users | A cited public pain, demand, or timing signal, not just firmographic fit | Public forums, reviews, issues, posts, jobs, and launch records reachable with current authorized tools or manual review |
Before using any named platform or vendor, discover what is currently callable,
authenticated, authorized, and permitted by its terms. If no research connector
or browser is available, give the user a manual source checklist and work from
URLs, exports, screenshots, or source text they provide.
If the user describes a hybrid motion (e.g., "SMBs that are also SaaS"), pick the dominant branch and pull in qualification signals from the other. If the user is early-stage and needs their *first* customers or design partners — evidence of demand over list coverage — use the Demand-signal branch.
For the branch-specific deep dives:
Every prospecting engagement follows the same five phases. Tools and qualification signals change per branch; the phases don't.
Pull from product-marketing.md if available. Otherwise, gather:
Output the ICP as a one-paragraph statement plus a checklist of pass/fail criteria. Don't move to discovery without this.
Start with a bounded candidate sample sized to the requested output, source
access, and review capacity. Expand only when observed disqualification rates
show that another batch is needed.
public, or licensed sources. Named vendors are candidates only after access,
freshness, terms, and cost checks.
review, then cross-check listing claims against the business's own site or
another current source.
A smaller evidence-complete list is preferable to padding the output with
unverified candidates.
Score every candidate against the ICP checklist. Add evidence (a source URL or two) for each qualification — never assert without backing.
Confidence levels (used across all branches):
For email contacts, discover whether an authorized validator is callable and
read its current result semantics before use. If none is available, label the
address unverified, keep it out of send-ready exports, and provide a
user-operated validation checklist. Never claim that validation guarantees
delivery.
Apply this rubric for the SaaS, B2B, and Local SMB branches. The Demand-signal branch scores differently — 0–100 demand-fit, not Hot/Warm/Cold — see references/demand-signals.md.
| Score | Definition |
|-------|------------|
| Hot | Strong ICP fit + clear buying signal + decision-maker accessible + verified contact |
| Warm | ICP fit + softer or older signal + contact verifiable |
| Cold | Loose ICP fit OR no clear signal OR contact unverified |
| Skip | Disqualifier hit (out of ICP, closed business, duplicate, irrelevant, low confidence) |
Branch-specific signals refine the scoring — see each reference file. Let the
evidence determine the number in each label; never force a Hot/Warm/Cold quota.
(SaaS / B2B / Local SMB. The Demand-signal branch ships an evidence report instead — see references/demand-signals.md.)
Default to a markdown table in chat. Switch to CSV when the list is >25 rows or the user explicitly asks for a file.
After the table, add "Priority review candidates" when the evidence supports
one or more: a bounded set ranked by current signal strength, with one sentence
on what was verified and what still needs review.
Columns vary by branch (see reference files), but every lead sheet includes:
These apply to every branch. Read first, every engagement.
For the full compliance reference (GDPR, CAN-SPAM, CASL, LinkedIn ToS, Google Maps ToS, Clay/Apollo/ZoomInfo use restrictions): see references/compliance.md.
If missing, ask once, then infer reasonable defaults and continue:
product-marketing.md if presentby source coverage and review capacity
authenticated accounts; never assume a vendor connector or browser exists
Full breakdown in references/data-sources.md. Quick picks:
Treat every named product below as a candidate, not an available capability.
Discover currently callable tools and verify the user's authenticated access,
license, source terms, and cost first.
| If the user has access to... | Use it for |
|------------------------------|------------|
| Apollo | B2B / SaaS firmographic + contact discovery |
| Clay | Multi-source enrichment, waterfall lookups, custom scoring |
| Clearbit | Email-to-company and company enrichment |
| ZoomInfo | Enterprise B2B contact + intent data |
| Hunter or Snov | Email pattern guessing and verification |
| Truelist | Email deliverability validation (before adding to outreach list) |
| LinkedIn Sales Navigator | Decision-maker mapping (manual, no scraping) |
| BuiltWith / Wappalyzer | Tech stack qualification (SaaS branch) |
| Crunchbase | Funding signals (SaaS branch) |
| GitHub | Stargazers / forks of competitor or adjacent repos (dev-tool SaaS branch) |
| Google Maps + browser | Local SMB discovery |
| Firecrawl / Browserbase | Programmatic extraction from individual prospect websites — never from platforms |
If the user has no enrichment or browser tools: provide exact public-source
queries and a qualification worksheet, then work from URLs, exports, or
screenshots the user supplies.
For SaaS / B2B (≤25 rows):
| Score | Company | Industry | Size | Signal | Contact | Email status | Source | Confidence |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
For Local SMB (≤15 rows) — port from the local-prospector reference:
| Score | Business | Category | Area | Website status | Website/Social | Phone | Why it's a prospect | Confidence |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
SaaS / B2B columns:
score,company,domain,industry,size_band,country,signal,contact_name,contact_title,contact_email,email_status,linkedin,source_urls,why_prospect,confidence,verified_date,notes
Local SMB columns:
score,business,category,area,distance_km,website_status,website_url,social_urls,phone,email,source_urls,why_prospect,confidence,verified_date,notes
one-sentence rationale each
result semantics, or is explicitly unverified; failed results stay in a
separate invalid bucket
validator or keep the address labeled unverified with a manual validation
handoff.
(handoff to suede-cold-email).
If none, can you provide URLs, exports, or screenshots for manual review?
These are selection examples, not guaranteed integrations. Before using one,
verify current vendor documentation, account access, pricing, data freshness,
export rights, platform terms, and whether a callable connector is actually
available in the current session.
| Tool | Best For | Verify Before Use |
|------|----------|-------------------|
| Apollo | B2B / SaaS firmographic + contact discovery | Freshness, export terms, email validation |
| Clay | Multi-source enrichment + waterfall | Credit cost, providers, field provenance |
| Clearbit | Email-to-company enrichment | Current product access and coverage |
| ZoomInfo | Enterprise B2B contact + intent | License, export rights, signal freshness |
| Hunter / Snov | Email pattern discovery | Verification status and lawful basis |
| Truelist | Email deliverability validation | Result meanings and current API limits |
| Outreach | Sales engagement after approval | Sequence permissions and suppression rules |
| RB2B | Visitor identification | Privacy basis and company-vs-person grain |
| GitHub | Public developer-intent signals | API terms, rate limits, company mapping |
| Firecrawl / Browserbase | Single-target public-site research | Target terms, scope, and session access |
person in a sequence.
collect unnecessary personal data, or label a lead verified without a cited
current source.
consent, privacy, and suppression rules before any downstream contact.
suede-product-marketing to define the ICP and positioning context.suede-cold-email after a qualified list is approved for outreach copy.suede-revops for approved CRM routing and lifecycle handoff.suede-sales-enablement for collateral used in active sales work.Take jasoncolapietro/suede-prospecting from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.