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),
Install
npx skills add https://github.com/JasonColapietro/suede-creator-skills/tree/main/skills/suede-prospecting
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install jasoncolapietro-suede-creator-skills@llmmart
git clone https://github.com/JasonColapietro/suede-creator-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole jasoncolapietro/suede-creator-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
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.
IRON LAW: every row carries a source URL and the date it was captured,
or it does not ship. No exceptions, no "verify later," no placeholder rows.
That single rule is what makes the downstream GDPR / CAN-SPAM lineage real. A row without it is not a low-confidence lead — it is not a lead.
Before Starting
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.
Pick the Branch
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:
- SaaS → see references/saas-prospecting.md
- B2B → see references/b2b-prospecting.md
- Local SMB → see references/local-prospecting.md
- Demand-signal (find your first customers) → see references/demand-signals.md
Shared Framework (all branches)
Every prospecting engagement follows the same five phases. Tools and qualification signals change per branch; the phases don't.
Phase 1 — Define the ICP
Pull from product-marketing.md if available. Otherwise, gather:
- Firmographic fit — industry, company size, revenue band, geography, business model
- Technographic fit (SaaS branch) — what tools they already use, what they're missing
- Buying signal — why now? (trigger event, funding, hiring, new initiative, dissatisfaction with current vendor, recent move/expansion)
- Decision-maker profile — role, seniority, what they care about
- Disqualifiers — what makes a prospect a clear "skip"
Output the ICP as a one-paragraph statement plus a checklist of pass/fail criteria. Don't move to discovery without this.
Phase 2 — Build the candidate list (discovery)
Start at 2-3x the requested output count, adjusted down for thin source access or review capacity. Expand only when the observed disqualification rate shows another batch is needed, and cap expansion at 3 rounds. At the cap, stop sourcing: report the disqualification rate you observed and hand back a narrower ICP proposal rather than grinding through more sources.
- SaaS / B2B: cross-check material claims across available first-party, public, or licensed sources. Named vendors are candidates only after access, freshness, terms, and cost checks.
- Local SMB: use an authorized research connector or manual public-source 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. Don't start qualification until every candidate has its source URL captured.
Phase 3 — Qualify each candidate
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):
- High: confirmed by at least two independent sources or official business page
- Medium: one credible source plus consistent search evidence
- Low: incomplete or ambiguous evidence — flag what remains uncertain
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. Don't move to scoring until every candidate carries a confidence level.
Phase 4 — Score and prioritize
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 | ICP fit (passes the full Phase 1 ICP checklist) + 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. No row leaves this phase labeled Hot without both a buying signal and a verified contact — downgrade it to Warm instead.
Phase 5 — Output the lead sheet
(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:
- score, business/company name, contact (where applicable), why-it's-a-prospect, source(s), confidence, last verified date
The sheet is not deliverable until it also carries the search parameters used and the open questions left unresolved.
Compliance Guardrails
These apply to every branch. Read first, every engagement.
- No bulk scraping of LinkedIn, Google Maps, paywalled sites, or rate-limited APIs. Browser is an assisted research tool, not a scraper.
- No CAPTCHA, login wall, or bot protection bypass. If a site requires it, work with what's publicly visible.
- Public business contact channels only. Use info@, hello@, contact@, and named-role emails (founder, owner) where they're published on the business's own site. Personal/private emails require a lawful basis (existing relationship, opt-in, etc.).
- GDPR / CAN-SPAM / CASL aware. Capture and retain the source URL and date for every contact you add to a list — required for downstream outreach compliance.
- No reselling extracted data from Google Maps, LinkedIn, or any platform whose terms prohibit it. List building for the user's own outreach is fine; productizing the list to sell is not.
- Rate limit yourself. Even on public sources, space requests. Don't fingerprint as a bot.
- No breached, leaked, or unprovenanced data. Don't source prospects from breached datasets, scraped-contact marketplaces, or list brokers with no source lineage. Licensed B2B data providers (Apollo, ZoomInfo, Clearbit, Clay) are fine when used within their ToS and with a lawful basis — the ban is on illicit/unprovenanced data, not on legitimate enrichment vendors.
- Never target or infer sensitive traits. Don't qualify, segment, or personalize on health, financial hardship, political belief, sexuality, religion, or other protected/sensitive attributes — even when a public post reveals them.
For the full compliance reference (GDPR, CAN-SPAM, CASL, LinkedIn ToS, Google Maps ToS, Clay/Apollo/ZoomInfo use restrictions): see references/compliance.md.
Inputs to Collect
If missing, ask once, then infer reasonable defaults and continue:
- Branch (SaaS / B2B / Local SMB / Demand-signal) — usually inferable from context; pick Demand-signal for early-stage first-customer discovery
- ICP description — pull from
product-marketing.mdif present - Target count — use the requested count or propose a bounded pilot justified by source coverage and review capacity
- Geography (essential for Local SMB; useful for B2B; less critical for SaaS)
- Tools the user has access to — discover current callable tools and authenticated accounts; never assume a vendor connector or browser exists
- Output format — chat table (default) or CSV
- Buying signal preference — what triggers should they prioritize? (funding rounds, hiring, recent move, etc.)
Tool Selection
Treat every named product below as a candidate, not an available capability. These are selection examples, not guaranteed integrations — discover what is currently callable and verify the user's authenticated access, license, source terms, data freshness, export rights, and cost before using one. Full breakdown in references/data-sources.md.
| If the user has access to... | Use it for | Verify Before Use |
|---|---|---|
| Apollo | B2B / SaaS firmographic + contact discovery | Freshness, export terms, email validation |
| Clay | Multi-source enrichment, waterfall lookups, custom scoring | Credit cost, providers, field provenance |
| Clearbit | Email-to-company and company enrichment | Current product access and coverage |
| ZoomInfo | Enterprise B2B contact + intent data | License, export rights, signal freshness |
| Hunter or Snov | Email pattern discovery and verification | Verification status and lawful basis |
| Truelist | Email deliverability validation before outreach | Result meanings and current API limits |
| LinkedIn Sales Navigator | Decision-maker mapping (manual, no scraping) | Platform terms; no bulk extraction |
| BuiltWith / Wappalyzer | Tech stack qualification (SaaS branch) | Detection accuracy and staleness |
| Crunchbase | Funding signals (SaaS branch) | Record recency and license tier |
| GitHub | Stargazers / forks, public developer-intent signals | API terms, rate limits, company mapping |
| Google Maps + browser | Local SMB discovery | Terms; assisted review only, no bulk extract |
| Outreach | Sales engagement after approval | Sequence permissions and suppression rules |
| RB2B | Visitor identification | Privacy basis and company-vs-person grain |
| Firecrawl / Browserbase | Single prospect websites — never platforms | Target terms, scope, and session access |
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.
Output Formats
Default — chat table
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 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
CSV — when >25 rows or user requests a file
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
Include after the table
- Priority review candidates: a bounded evidence-ranked set with one-sentence rationale each
- Search parameters: branch, ICP, location/radius, target count, date generated
- Open questions: anything you couldn't verify and the user should look at
Quality Checks (before finalizing)
- Remove duplicates (by domain for SaaS/B2B, by business + address for Local SMB)
- Every "Hot" lead has a verified contact + at least one source URL
- Email status comes from a currently authorized validator with documented
result semantics, or is explicitly
unverified; failed results stay in a separate invalid bucket - No lead labeled "Hot" lacks a clear buying signal
- Confidence levels honest — "High" requires 2 independent sources, not just two of your own searches
- No leads sourced from prohibited scraping (LinkedIn at scale, Google Maps bulk extract, etc.)
- Source URL + date captured for every contact (GDPR / CAN-SPAM lineage)
- Final count matches user's request, or you've explained why it's smaller (quality bar)
Any unchecked box means the sheet is not deliverable. Name the failing box and what is missing, rather than shipping the sheet with a caveat attached.
Common Mistakes
- Treating data sources as authoritative without cross-checks. Apollo and ZoomInfo are out of date often; verify before scoring as "Hot."
- Mixing branches. Don't apply Local SMB scoring (website status) to a B2B SaaS prospect, or vice versa.
- Ignoring quiet hours / time zone when scheduling the downstream outreach
(handoff to
suede-cold-email). - Forgetting to retain consent / lineage records. Required for GDPR DSARs and CAN-SPAM audits.
Boundaries
- Do not send outreach, import contacts, buy data, mutate a CRM, or enroll a person in a sequence.
- Do not invent contact details or qualification evidence, evade source terms, collect unnecessary personal data, or label a lead verified without a cited current source.
- Do not decide legal compliance or claim deliverability. Apply the applicable consent, privacy, and suppression rules before any downstream contact.
Routing
- Use
suede-product-marketingto define the ICP and positioning context. - Use
suede-cold-emailafter a qualified list is approved for outreach copy. - Use
suede-revopsfor approved CRM routing and lifecycle handoff. - Use
suede-sales-enablementfor collateral used in active sales work.
Files (suede-creator-skills)
-
agents
-
openai.yaml 537 B
interface: display_name: "Suede Prospecting" short_description: "Suede source-backed prospect lists and qualification" default_prompt: "Use $suede-prospecting on [target]. The user needs a prospect or lead list, or is deciding which accounts to go after. Work through ICP fit, sourcing, enrichment, disqualification, and where the first customers actually are, ground every recommendation in evidence the user can check, and return the decisions, the reasoning, and what to measure next." policy: allow_implicit_invocation: true
-
-
evals
-
evals.json 10.8 KB
{ "skill_name": "suede-prospecting", "evals": [ { "id": 1, "prompt": "We're a B2B SaaS selling RevOps tooling at $30K ACV. Build me a list of 25 prospects.", "expected_output": "Should check for product-marketing.md first and identify the SaaS branch. It should define the ICP, then discover which research sources are currently callable, authenticated, authorized, and permitted before selecting vendors or a manual public-source workflow. Candidate-pool size should be justified by requested output, observed disqualification, source access, and review capacity rather than a hard multiplier. It should discover an authorized email validator and read its current result semantics, or label addresses unverified and provide a user-operated validation handoff. It should output the SaaS evidence table followed by a bounded priority-review set only where current signals support it. Should reference references/saas-prospecting.md.", "assertions": [ "Checks for product-marketing.md", "Identifies SaaS branch", "Runs Phase 1 ICP definition", "Recommends multi-source discovery (Apollo, Clay, Crunchbase, BuiltWith)", "Asks about user's tool access", "Justifies a bounded candidate sample from evidence and review capacity", "Requires email validation before final list", "Outputs SaaS-branch chat table columns", "Includes an evidence-ranked priority-review set when warranted", "References saas-prospecting.md" ], "files": [] }, { "id": 2, "prompt": "Find me 25 SaaS companies that just raised a Series B in the last 60 days and use HubSpot.", "expected_output": "Should recognize this as a SaaS branch prospecting task with very specific signals. Should identify the trigger event (Series B in last 60 days) and the technographic filter (uses HubSpot). Should recommend a workflow: (1) Crunchbase or Pitchbook for funding signal filter (Series B + date), (2) BuiltWith or Clay's waterfall for tech stack verification (uses HubSpot), (3) cross-check via business websites and LinkedIn. Should note this is a tight ICP that should yield high-confidence matches if data sources are current. Should flag freshness concerns: Crunchbase data depends on self-reporting, BuiltWith refresh cycles aren't real-time. Should recommend cross-source verification for the funding date specifically. Should output a SaaS-branch chat table with the funding round + date in the Signal column. Should include verified email validation before delivering.", "assertions": [ "Identifies as SaaS branch", "Identifies funding signal + tech stack filter", "Recommends Crunchbase or Pitchbook for funding", "Recommends BuiltWith or Clay for HubSpot verification", "Notes data freshness concerns", "Recommends cross-source verification", "Outputs signal column showing round + date", "Requires email validation" ], "files": [] }, { "id": 3, "prompt": "I run a marketing agency. Find me 25 mid-market manufacturers in the Midwest US who recently hired a new CMO.", "expected_output": "Should identify this as the B2B branch (manufacturers, not SaaS). Should run Phase 1 ICP definition: industry (manufacturing, with NAICS code if precision matters), size (mid-market = typically 200-2000 employees), geography (Midwest US states), trigger event (CMO hire in last 90-180 days). Should propose discovery: Apollo or ZoomInfo for firmographic filter, LinkedIn Sales Nav for CMO hire detection (job changes), Google Alerts on press releases for trigger events. Should warn that CMO hires aren't always in public databases — LinkedIn Sales Nav alerts on job changes is the most reliable source. Should output B2B-branch chat table with the CMO trigger as the signal. Should reference references/b2b-prospecting.md. Should mention compliance: GDPR less likely (US-only), CAN-SPAM applies, capture source URL + date for every contact.", "assertions": [ "Identifies B2B branch (not SaaS)", "Runs Phase 1 ICP definition with NAICS or industry classification", "Specifies mid-market size band", "Specifies Midwest US geography", "Identifies trigger event (CMO hire)", "Recommends Apollo/ZoomInfo + LinkedIn Sales Nav", "Notes CMO hires often only on LinkedIn", "Outputs B2B-branch chat table", "Mentions CAN-SPAM and source URL capture", "References b2b-prospecting.md" ], "files": [] }, { "id": 4, "prompt": "We sell to industrial distributors. Build a list of 25 prospects.", "expected_output": "Should identify this as the B2B branch. Should run Phase 1 ICP definition asking targeted questions: distributor size, geography, vertical specialty, buying patterns. Should propose discovery: Apollo or ZoomInfo for firmographic depth, industry-specific directories (e.g., NAW for wholesale distributors, ISA for industrial sales agencies), trade show exhibitor lists. Should note state business registries and Chamber of Commerce as verification sources. Should propose trigger events: new location, recent acquisition, leadership change, posting RFPs. Should warn that industrial distributor data is often spotty in major databases — cross-check with company website + LinkedIn for size and ownership signals. Should output B2B-branch chat table. Should note ICP fit precision matters more than initial volume for this kind of niche prospecting.", "assertions": [ "Identifies B2B branch", "Runs Phase 1 ICP definition asking targeted questions", "Recommends industry-specific directories beyond Apollo/ZoomInfo", "Mentions trade show exhibitor lists", "Identifies relevant trigger events", "Warns about data spottiness for industrial", "Recommends cross-verification with business websites + LinkedIn", "Notes ICP fit precision over volume" ], "files": [] }, { "id": 5, "prompt": "I build websites for local businesses. Find me 15 prospects near Austin, TX who don't have a website.", "expected_output": "Should identify the Local SMB branch and define the business category, geography, requested count, and service-gap criteria. It should discover whether an authorized research connector or browser is currently callable and permitted; otherwise it should provide exact public-source queries and work from user-supplied URLs, exports, screenshots, or copied text. It should cross-check listing claims against the business's own site or another current source and treat website status as one signal, not an automatic Hot/Warm quota. It should output the Local SMB evidence table and a bounded priority-review set only when cited evidence supports it. It should reference references/local-prospecting.md and prohibit bulk extraction.", "assertions": [ "Identifies Local SMB branch", "Asks about business category if not specified", "Uses a user-approved geography or a justified pilot radius", "Discovers authorized research tooling or uses a manual fallback", "Applies 4-tier website status classification", "Uses Hot/Warm/Cold/Skip scoring", "Outputs Local SMB chat table columns", "Adds an evidence-ranked priority-review set when warranted", "References local-prospecting.md", "Warns against bulk-scraping Google Maps" ], "files": [] }, { "id": 6, "prompt": "I have a list of 200 prospect emails from Apollo. How do I know which ones are deliverable before I start outreach?", "expected_output": "Should explain the deliverability validation step in Phase 3. Should first verify which validator is available in the current session and read its current official result semantics, account limits, and terms. Should map deliverable, invalid, risky, unknown, and catch-all results without inventing vendor-specific fields; exclude invalid results, treat risky and catch-all cautiously, and re-verify unknown results. Should calculate risk from current list data and sender-platform guidance instead of asserting universal source-accuracy or bounce thresholds. Should hand the approved list to `suede-cold-email` only after validation and suppression checks.", "assertions": [ "Uses an authorized validator or explicit unverified/manual fallback", "Explains email_state values (ok, email_invalid, risky, unknown, accept_all)", "Treats provider accuracy as unverified until checked on a current sample", "Uses current sender-platform evidence instead of a universal bounce threshold", "Recommends a result-aware validation and suppression workflow", "Discovers an available authorized validator or gives a manual fallback", "Mentions that sender reputation is difficult to recover", "References data-sources.md" ], "files": [] }, { "id": 7, "prompt": "I just built a tool that automates failed-payment follow-up for gym owners. I have no customers yet. Help me find my first ten — the people who are actually dealing with this problem right now.", "expected_output": "Should select the Demand-signal branch and load references/demand-signals.md, not the SMB, B2B, or SaaS list-building branches. Should start with a product brief, then mine the five signal buckets across public professional discourse. Before research, it should discover currently callable search, browser, and source-reading tools; verify authorization and source terms; and use a manual query plus user-supplied URL or export fallback when those tools are unavailable. It must read original public sources rather than qualify from snippets. Should score prospects on the demand-fit rubric rather than ICP-fit Hot/Warm/Cold and require a cited public signal for every primary-shortlist prospect. Should draft source-based openers but never auto-send. Should produce the evidence report and label prospects as potential customers based on public signals, not confirmed buyers. Should honor the compliance guardrails including no data brokers, leaked data, or sensitive-trait targeting.", "assertions": [ "Selects the Demand-signal branch, not the SMB/B2B/SaaS list-building branches", "Mines the five signal buckets from public discourse rather than contact databases", "Discovers authorized current tools, includes a manual fallback, and reads original sources rather than snippets", "Scores on the demand-fit rubric (0-100 weighted), not ICP-fit Hot/Warm/Cold", "Requires a cited public signal for every primary-shortlist prospect", "Drafts openers but never auto-sends; labels prospects as potential-based-on-public-signals", "Produces the evidence report structure with a 7-day manual outreach plan and limits" ], "files": [] } ] }
-
-
references
-
b2b-prospecting.md 5.1 KB
# B2B Prospecting Reference For when the user sells to non-SaaS B2B — services, agencies, manufacturers, mid-market and enterprise companies, professional services firms. --- ## ICP Signals That Matter (B2B branch) ### Firmographic signals - **Industry / vertical** — NAICS or SIC codes if precision matters - **Company size** — headcount band, revenue band, location count - **Geography** — relevant for time zones, regulations, on-site requirements - **Business model** — service vs product vs distribution; B2B vs B2B2C - **Ownership** — independent, PE-backed, public, family-owned — affects buying motion ### Buying signals - **Trigger events**: new C-level hire, recent acquisition or divestiture, IPO/funding, opening a new location, recent rebrand, expansion announcement - **Vendor signals**: posting RFPs publicly, switching costs in last quarterly report, contract renewal windows - **Operational signals**: recent layoffs (cost pressure) or rapid hiring (capacity pressure) - **News mentions**: launching new initiative, entering new market, regulatory change forcing action - **PR / press**: anything that signals "this company is changing right now" ### Decay signals - Multiple bankruptcies or PE-stripped operations - Negative growth + cost-cutting headlines - Ownership stagnation (small family-owned, no growth incentive) - Buyer turnover (3+ Marketing Directors in 2 years) --- ## Discovery Sources (B2B branch) ### Tier 1 — primary discovery - **Apollo**: candidate for general B2B firmographic and contact discovery; verify current coverage on the target segment - **ZoomInfo**: enterprise B2B + intent signals (mid-market+) - **LinkedIn Sales Navigator**: candidate for manual industry, role, and signal research; verify current coverage and terms - **Clay**: when you need custom waterfall lookups (e.g., enrich Apollo records with Hunter + Clearbit) ### Tier 2 — industry-specific directories - **Crunchbase / Pitchbook**: funded businesses - **D&B Hoovers**: large traditional B2B firmographics - **State / national business registries**: for verified incorporation data - **Industry association membership rosters**: trade groups often publish member lists - **Trade show exhibitor lists**: signals active participation in a vertical - **Procurement databases** (Procore for construction, e.g.): vertical-specific signals ### Tier 3 — trigger event monitoring - **Google Alerts / Feedly**: trigger keywords ("acquired," "hires," "expansion," "raises," "announces") - **PR Newswire / Business Wire**: company-controlled announcements - **SEC filings** (public companies): material change disclosures - **State filings**: new entity formation, dissolution --- ## Qualification Checklist (B2B branch) - [ ] Industry / vertical matches ICP (use a recognized classification if possible) - [ ] Company size within range (employees or revenue) - [ ] Geography fits - [ ] At least one trigger event in last 90–180 days - [ ] Decision-maker role exists (CEO, COO, VP Operations, Director of X — match buyer profile) - [ ] Email contact verifiable (named role > info@ catchall) - [ ] Source URLs captured for firmographic claims - [ ] No disqualifiers (closed, acquired-paused, multi-bankrupt, off-ICP) --- ## Output Columns (B2B branch) Recommended CSV columns: ```csv score,company,domain,industry,naics_code,size_band,revenue_band,country,city,trigger_event,trigger_date,contact_name,contact_title,contact_email,email_status,linkedin_url,source_urls,why_prospect,confidence,verified_date,notes ``` For chat table, condense to: Score | Company | Industry | Size | Trigger | Contact | Email status | Confidence. --- ## Top Outreach Targets Selection (B2B) Prioritize a bounded review set when the evidence supports it: 1. **Trigger event recency** — compare current and older events without imposing a universal expiry window 2. **Trigger specificity** — prefer a cited event tied to the buyer's problem over general company news 3. **Decision-maker evidence** — distinguish a confirmed professional contact from a role-only inference 4. **Vertical fit precision** — use the taxonomy the current ICP and source data can support Each top target rationale names the trigger and decision-maker: "Hired new VP of Marketing 14 days ago; verified email; mid-market manufacturer matching ICP." --- ## Common Mistakes (B2B) 1. **Treating B2B like SaaS** — funding rounds matter less; PE ownership and acquisition activity matter more. 2. **Trying to verify private company revenue precisely** — most public databases approximate. Use size bands, not point estimates. 3. **Ignoring procurement complexity** at enterprise scale — your prospect contact list may not include the actual approver. 4. **Cold-emailing executive assistants** — they're not the buyer and they will flag your outreach as spam. 5. **Source URL hygiene** — without source lineage, you can't defend a contact under GDPR DSAR or CAN-SPAM challenge. 6. **Stopping at one source** — provider accuracy varies by segment and date. Cross-verify important claims with a current first-party or independent source. -
compliance.md 6.3 KB
# Prospecting Compliance Reference The legal and platform-ToS constraints that apply to prospect list building. Read first, every engagement. > Operational guidance, not legal advice. For high-volume programs or programs touching EU/UK residents, run your setup past a privacy attorney. --- ## United States — CAN-SPAM (downstream) CAN-SPAM regulates the cold email **send**, not the list build. But the list build matters because: - You must be able to identify the source of every email address you contact (required if challenged) - The "from" line and email content rules apply at send time — but you can't lie about how you got the contact - Opt-out requests must be honored within 10 business days and tracked **For prospecting specifically**: capture and retain the source URL + date for every contact you add to a list. CAN-SPAM doesn't require it explicitly, but defending your sender practices does. --- ## EU / UK — GDPR The strictest applicable framework. Triggers when: - Your prospect resides in EU/UK - You're processing personal data (any identifiable info, including business emails tied to a named person) ### Lawful bases for cold B2B outreach You have three credible options: 1. **Legitimate interest** (most common for B2B). Requires: - The contact is in a business role likely to be interested in your offer - The data was collected from a public, business-context source - You provide a clear opt-out - You can articulate the legitimate interest test in writing 2. **Consent** — typically not feasible for cold outreach (you don't have consent before first contact) 3. **Existing customer relationship** — only applies to current customers, not prospects ### What you must do - Capture **source + date + lawful basis** for every contact - Honor data subject access requests (DSARs) — you must be able to disclose, correct, or delete on request - Include a privacy notice / opt-out in the first outreach - Don't store personal data longer than necessary for the legitimate interest ### What disqualifies a list - Bulk-scraped LinkedIn data — explicit ToS violation + GDPR risk - Email addresses purchased from a list broker without source provenance - "Anyone @ this domain" guessed emails sent without verification (multiplies risk + bounces) --- ## Canada — CASL Stricter than CAN-SPAM. Cold B2B outreach requires: - **Express consent** (explicit opt-in) — typically not present for cold prospecting - **OR implied consent** — existing business relationship within 24 months, OR business address publicly published on the company's own site for the purpose of receiving such communications **Practical implication for Canadian prospects**: relying on the publicly-published-address exception is the most defensible cold prospecting basis in Canada. You must include sender identification, mailing address, and an unsubscribe mechanism in every message. --- ## Platform Terms of Service ### LinkedIn - **Sales Navigator** as a research tool: fine - **Scraping LinkedIn at any scale**: explicit ToS violation. Banned accounts are permanent. Don't. - **Apollo, Clay, and ZoomInfo** claim LinkedIn-overlap data through various legitimate channels — verify their data sources before assuming compliance - **InMail and Connection Requests**: governed by LinkedIn's own messaging rules, not by CAN-SPAM/GDPR (because LinkedIn-internal) ### Google Maps - ToS prohibits bulk extraction or productizing Maps data - Browser-assisted research as a discovery aid: acceptable - Storing Place IDs or large structured Maps data in your CRM: explicit ToS prohibition - Use Maps to **find** local businesses, then cross-source from the business's own site for the data you retain ### Apollo / ZoomInfo / Clearbit - All have their own ToS limiting reselling, downstream sharing, and use cases - Read your contract — typically you can use the data for your own outreach but not productize it - Don't share extracts publicly (e.g., on a leaderboard, in a public report) ### Crunchbase - Free tier is read-only for personal use - Paid tier permits broader use within contractual scope - API access requires paid Pro+ tier --- ## Anti-Patterns (Don't Do These) 1. **Bulk extraction from restricted platforms.** Verify each platform's current terms and the user's authorization before collection. Browser-assisted research does not itself make retention or automation permitted. Tools for an individual prospect's public website are candidates only after current access, site terms, robots guidance, privacy rules, and collection purpose are checked. 2. **Buying lists from random vendors** without source provenance. You inherit their legal exposure. 3. **Guessing emails and sending unverified.** Define the sending provider's current bounce threshold, validate addresses, and document the applicable lawful basis with qualified counsel where required. Do not fabricate legal justification. 4. **Harvesting personal email addresses** (Gmail, personal Outlook, etc.) from public profiles. Personal addresses raise GDPR risk significantly. 5. **Storing data you don't need**. Minimize retention. Don't keep prospect lists forever — GDPR right to deletion applies. 6. **Skipping the lawful basis documentation**. If challenged, you need to show your work. Capture source URL + collection date for every contact. 7. **Reselling prospect lists**. You may not have the right to share them downstream. Read your data provider contracts. 8. **CAPTCHA bypass / login wall bypass**. Even if technically possible, this signals bot behavior and violates virtually every ToS. --- ## Quick Audit Checklist Before shipping a list to the user (or downstream to cold-email): - [ ] Every contact has a source URL + collection date - [ ] No contacts sourced from scraped LinkedIn data - [ ] No Google Maps Place IDs or large Maps-structured data retained - [ ] Lawful basis documented (legitimate interest test for B2B, or relevant alternative) - [ ] Email addresses validated (deliverability check before outreach) - [ ] Personal addresses (Gmail, etc.) flagged or excluded - [ ] Source provider contracts permit the intended use case - [ ] Retention plan documented (when to delete) - [ ] First outreach will include unsubscribe + privacy notice (downstream concern for `suede-cold-email`, but mention it now) -
data-sources.md 13 KB
# Prospecting Data Sources Tool selection guide for prospecting across all three branches. Named products are candidates, not assumed integrations or endorsements. Before use, discover what is currently callable, authenticated, authorized, and permitted; read current official documentation and account terms. Treat vendor coverage, accuracy, limits, pricing, and feature claims as unverified until a dated source or current sample supports them. If no tool is available, use a manual, source-linked research worksheet or a user-supplied export. --- ## Tool selection by goal | Goal | Primary tools | Notes | |------|--------------|-------| | **Build initial firmographic list (B2B / SaaS)** | Apollo, ZoomInfo, Clay | Apollo for breadth, ZoomInfo for enterprise + intent, Clay for custom workflows | | **Decision-maker mapping** | LinkedIn Sales Navigator (manual), Apollo, ZoomInfo | Compare current coverage on a representative sample. Never bulk scrape restricted sources. | | **Tech stack qualification (SaaS)** | BuiltWith, Wappalyzer | BuiltWith has wider coverage + paid plans for bulk; Wappalyzer is lighter + free for small use | | **Funding signals (SaaS)** | Crunchbase, Pitchbook | Crunchbase free tier sufficient for early signals; Pitchbook for deeper investor data | | **Email pattern discovery** | Hunter, Snov, Apollo | Pattern guessing — followed by verification | | **Email deliverability verification** | Any currently authorized validator | Read current result semantics; otherwise label addresses unverified and use a manual handoff | | **Visitor identification (warm intent)** | RB2B, Clearbit Reveal | Anonymous traffic → company identification | | **Intent data** | ZoomInfo Intent, 6sense, Bombora | Pre-warmed signals; mid-market+ pricing | | **Trigger event monitoring** | Google Alerts, Feedly, LinkedIn Sales Nav alerts | Free options are sufficient for most | | **Local business discovery** | Google Maps (manual), Yelp, Facebook Pages | Browser-assisted, not bulk-extracted | --- ## Apollo **Candidate use**: General B2B / SaaS firmographic and contact discovery when a current sample supports coverage for the target market. **Strengths**: - Coverage breadth to verify on the target geography and segment - Firmographic and signal filters to verify on the current account - Contact-discovery fields with explicit provenance - Current export, quota, and pricing terms **Watch out for**: - Data freshness varies — re-verify before scoring as "Hot" - Email accuracy varies by segment and date — validate on a current sample - Bulk export limits apply **Verification**: confirm Apollo's current documentation, account access, freshness, export limits, and terms before use. --- ## Clay **Use for**: Multi-source enrichment, waterfall lookups, custom scoring logic. When list quality matters more than list size. **Strengths**: - Waterfall logic: try Apollo first → fallback to ZoomInfo → fallback to Clearbit - Current provider set and field-level provenance - Any automated extraction behavior, source traceability, and review controls - Custom columns + scoring formulas - Connector availability varies; discover the current session and verify authorization before use **Watch out for**: - Per-credit pricing can spike on large lists - Complexity overhead — easy to over-engineer workflows **Verification**: confirm Clay's current providers, credit model, field provenance, account access, and terms before use. --- ## ZoomInfo **Use for**: Enterprise B2B + intent data. Mid-market+ buyer profiles. **Strengths**: - Enterprise-grade firmographic depth - Intent signals (companies searching topics relevant to your offer) - Fit for the target segment and deal size must be tested - Connector availability varies; discover the current session and verify authorization before use **Watch out for**: - Pricing and contract structure require current written verification - Overkill for SMB prospecting - Locked into multi-year contracts typically **Verification**: confirm ZoomInfo licensing, export rights, signal freshness, account access, and terms before use. --- ## Clearbit **Use for**: Email → company enrichment, anonymous visitor identification (Clearbit Reveal). **Strengths**: - Strong company enrichment (industry, size, funding, tech stack) - Email lookup by domain - Reveal: identify anonymous site visitors at company level - API-first **Watch out for**: - Product ownership, packaging, API availability, and tier access can change; verify them in current official documentation **Verification**: confirm the current Clearbit product surface, account access, coverage, and terms before use. --- ## Hunter / Snov **Use for**: Email pattern discovery + lightweight verification on small lists. **Hunter strengths**: - Domain-based email discovery - Built-in deliverability verification - Current free or paid quota may support occasional use; verify first **Snov strengths**: - Email finder + drip campaigns (overlap with outreach tooling) - Bulk verification - Compare current total cost at the intended volume **Watch out for**: - Both are pattern-guessing tools — accuracy depends on the target company's email pattern being inferable - Use a currently callable, authorized validator when available and read its result semantics. Otherwise label results `unverified` and keep them out of send-ready exports. **Verification**: confirm Hunter or Snov access, current result semantics, verification quality, quotas, and terms before use. --- ## Truelist **Use for**: Email deliverability validation before adding contacts to outreach lists. Critical safety step. **Strengths**: - Single-email sync verification (`/api/v1/verify_inline`) + bulk async (`/api/v1/verify`) - Returns `email_state` (ok / email_invalid / risky / unknown / accept_all) + `email_sub_state` (email_ok / is_disposable / is_role / unknown_error / failed_smtp_check) + did-you-mean typo suggestions - Catches catch-all domains, role accounts, spam traps, disposable providers - API or connector availability must be confirmed from current vendor documentation and the current session - SDKs, integrations, and pricing must be verified from current documentation **Why this matters**: Unverified addresses can damage sender reputation and create compliance risk. Define an approved bounce threshold with the sending provider, validate current samples, and quarantine unknown or risky results. Do not assume one verifier catches every invalid address. **Verification**: confirm Truelist's current result semantics, account access, API limits, and vendor documentation before use. --- ## LinkedIn Sales Navigator **Candidate use**: Manual decision-maker discovery when current account access, terms, and a representative sample support it. **Strengths**: - Decision-maker coverage and freshness to test on the target segment - Job-change, post, and signal fields to verify before use - Lead lists, alerts, saved searches - Inmail credits (separate channel from cold email) **Hard rules**: - **Never bulk scrape**. LinkedIn aggressively bans scrapers. Account ban risk is real and permanent. - Use Sales Nav as a research interface — open profiles, read, take notes, capture key data manually. - Apollo and other tools claim LinkedIn data via partnerships / public mirroring — verify the source legitimacy before assuming compliance. **Access rule**: default to manual research unless a currently callable, authorized connector is discovered and its terms permit this use. --- ## BuiltWith / Wappalyzer **Use for**: Tech stack qualification (SaaS branch). **BuiltWith**: - ~50K+ technologies tracked - API + bulk lookups (paid) - Historical data (when stack changed) **Wappalyzer**: - Free browser extension; paid API - Lighter coverage than BuiltWith - Faster for one-off lookups Cross-reference both for high-confidence tech stack signals. --- ## Crunchbase **Use for**: Funding signals (SaaS branch). **Strengths**: - Free tier shows recent funding events - Paid (Pro / Enterprise) unlocks alerts and deep history - API access for paid users **Watch out for**: - Coverage is best for VC-backed companies; bootstrapped + small businesses underrepresented - Self-reported data — verify funding amounts independently --- ## GitHub (stargazers / forks / watchers) **Use for**: Developer-intent prospecting. Especially powerful for dev-tool SaaS — stargazers of competitor or category-defining repos are in-market signal. **Strengths**: - Public API may be available; confirm current authentication, rate limits, fields, privacy constraints, and terms - High signal quality (a starred repo = explicit interest) - Forks are an even stronger signal (intent to modify, not just bookmark) - No GitHub extraction CLI ships with this skill. Use a currently callable, authorized connector/API or a user-supplied export; otherwise provide a manual collection worksheet. **Watch out for**: - Public contact coverage varies by cohort and must be measured rather than assumed; never infer or fabricate private addresses - Define repository relevance from product fit and a sampled signal-quality review, not a universal star-count band - Most prospects are individuals, not company contacts directly — need to figure out their company from `company` field or LinkedIn **Verification**: confirm GitHub's current API documentation, authentication, rate limits, and applicable terms before use. --- ## Firecrawl / Browserbase (single-target site research) **Use for**: Programmatically extracting content from a **prospect's own website** that you already found via discovery on platforms like Google Maps, Yelp, or LinkedIn. Not for scraping those platforms themselves. ### Firecrawl - **Best for**: "Just give me the page as markdown" — Local SMB website status checks, B2B company about/team page extraction, structured field extraction - **Strengths to verify**: source extraction and structured output for individual public sites - **Access**: discover whether an authorized API, connector, or manual browser is currently available ### Browserbase - **Best for**: When you need real Chromium — JS-heavy pages, cookie consent dialogs, form submission to reach a contact page, session state - **Strengths**: Full browser control via Playwright/Puppeteer; Stagehand provides AI-friendly natural-language extraction; session recordings for debugging - **Access**: discover whether an authorized browser, API, or connector is currently available ### Critical compliance line Both tools can technically point at any URL. The hard rule: - ✓ **OK**: extracting content from a single business's own website (`joescoffeeshop.com`) that you found through manual discovery - ✗ **NOT OK**: pointing them at `google.com/maps`, LinkedIn search results, Yelp listings, or any platform whose ToS prohibits bulk extraction Discovery happens on platforms (manual browser-assisted research). Extraction happens on individual public business sites. **Verification**: confirm current Firecrawl or Browserbase documentation, session access, pricing, and target-site terms before use. --- ## RB2B / Clearbit Reveal **Use for**: Identifying anonymous site visitors as warm intent signals. **Strengths**: - Pixel-based visitor → company identification - High-intent: they came to your site, they're already in research mode - Slack / email alerts on key visits **Watch out for**: - Privacy/GDPR considerations — verify your privacy policy disclosures - Person-level identification raises higher concerns than company-level **Verification**: confirm RB2B's current identification grain, account access, privacy requirements, and terms before use. --- ## Free / browser-only fallbacks When the user has no callable or paid tools, give them a manual checklist using: - **Google Search** — exact business name + city + role searches - **LinkedIn** (manual, no scraping) — company pages, employee lookups - **Crunchbase or another current source** — funding events, when access and terms are verified - **Wappalyzer browser extension** — tech stack at a glance - **Authorized contact-data source** — verify current allowance, terms, and permitted use before each run - **Google Maps** — for Local SMB discovery - **Business websites + About pages** — primary source for any claim - **News sites + press releases** — trigger event monitoring via Google Alerts Slower than tooled-up workflows, but produces high-quality smaller lists if the user is willing to do the work. --- ## Sequencing recommendations A typical full-stack prospecting workflow: 1. **Define ICP** from product-marketing context (no tools needed) 2. **Initial list** from Apollo or ZoomInfo (firmographic filter) 3. **Enrich** with Clay (waterfall: tech stack, funding, trigger events) 4. **Decision-maker mapping** in LinkedIn Sales Nav (manual) 5. **Email pattern discovery** with Hunter or Apollo's built-in 6. **Email status** from an authorized validator, or an explicit `unverified` label plus a user-operated validation handoff 7. **Hand off** to `suede-cold-email` for outreach copy Adapt this sequence based on which tools the user actually has. -
demand-signals.md 9.5 KB
# Suede Demand-Signal Discovery Suede Demand-Signal Discovery starts from current public evidence of a work problem rather than a database fit score. It builds an early-customer shortlist for real conversations, with each candidate linked to the source and date that justify inclusion. Use this branch when the user is pre-product-market-fit, launching something new, or looking for **design partners, beta users, or first customers** rather than a scaled outbound list. It reuses the shared five phases and every compliance guardrail in SKILL.md; what changes is where you look, how you score, and what you ship. ## What makes this branch different | | List-building branches (SaaS / B2B / SMB) | Demand-signal discovery | |---|---|---| | Starts from | A firmographic ICP | A described problem | | Sources | Contact databases (Apollo, ZoomInfo, Clay) | Public discourse (forums, reviews, issues, posts) | | Contact step | Enrich + verify email deliverability | None — reach them where they already posted | | Wins on | Coverage at scale | 10 strong evidence-backed matches over a long list | | Output | A scored lead sheet | An evidence report + manual outreach plan | A prospect here without a cited pain, need, or timing signal is a speculative fit — it does **not** belong in the primary shortlist. Evidence is the entry ticket. ## Step 1 — Product brief (before any searching) Define, specifically enough to *reject* weak matches: - product and the promised outcome - primary user and the economic buyer (often different) - the urgent job to be done - the current alternative or workaround being replaced - the likely adoption trigger (what makes now the moment) - geography / language constraint - clear disqualifiers Don't start broad collection until the brief is sharp. Pull from `.agents/product-marketing.md` if it exists. ## Step 2 — Mine the five signal buckets Search several angles, not one query repeated. Adapt wording to how the audience actually talks; use the organic-language method in `suede-ad-creative` and [hook-system.md](../../suede-ad-creative/references/hook-system.md). 1. **Explicit demand** — "looking for," "recommend a tool for," "alternative to [X]," "does anything exist that," "how do you all handle." 2. **Pain** — "takes hours," "so manual," "hate that," "keeps breaking," "biggest frustration with," "why is there no." 3. **Workaround** — spreadsheets, copy-paste, a VA, a Zapier chain, a script, a template, any repeated manual step that your product would replace. 4. **Switching** — cancellation, migration, "moving off [competitor]," a missing feature, a pricing complaint, competitor frustration. 5. **Timing** — a public launch, a new hire for the relevant function, expansion, a new workflow or regulation, an integration announcement — a *current* event that makes the product relevant now. **Discover the current research surface before searching.** 1. List the research, browser, search, and source-reading tools that are currently callable. 2. Confirm the required account, visible identity, authorization, source terms, and recency controls before using any of them. 3. Use an available search or recency tool to discover candidate URLs, then an authorized browser or source reader to inspect the original public page. 4. If those tools are unavailable, run a browser-neutral manual workflow: give the user exact queries and source categories, accept URLs or exports back, and qualify only from the supplied original material. 5. Route competitor switching evidence to `suede-competitor-profiling` and review-mining or interview design to `suede-customer-research`. Never qualify from a search snippet alone, and never describe an unavailable tool as installed, connected, or authoritative. ## Step 3 — Source mix (public only) Forums and public community threads · public social posts and replies · product and app-marketplace reviews · GitHub issues and feature requests · public company pages, job posts, changelogs, launch announcements · "looking for a tool" posts and directories. Avoid private groups, gated communities, data brokers, leaked datasets, and any source whose terms prohibit access — the same compliance guardrails as every other branch (see SKILL.md), including the no-sensitive-traits rule. **Business/professional context only.** Qualify and reach out only where someone is posting in a professional or business capacity about a work problem (a founder in an indie-hackers thread, a developer in a GitHub issue, an ops lead in a subreddit for their role). Exclude personal-distress contexts entirely — health, financial hardship, addiction, grief, or any consumer support forum where people are venting personal problems, even if your product is tangentially relevant. When the motion is genuinely consumer (B2C), a public pain post is not on its own a lawful basis for cold outreach — reach people through the channel's own norms (reply publicly where replying is expected) and never DM a stranger off a personal post. Quote minimally, paraphrase by default, and link every material pain or timing signal. ## Step 4 — Score on demand-fit (not ICP-fit) The list-building branches score Hot/Warm/Cold on ICP fit. This branch scores 0–100 on **demand fit** — how strongly the evidence says this specific prospect wants this specific thing now. Score each dimension 0–5: | Dimension | Weight | What it measures | |---|---|---| | **Pain strength** | 25% | Directness, severity, repetition, and cost of the stated problem | | **Product fit** | 25% | How directly your product solves the evidenced job | | **Timing** | 20% | Freshness + a current trigger present | | **Public reachability** | 15% | A natural, relevant public/professional contact path exists | | **Evidence quality** | 15% | Specificity, source reliability, confidence the signal is really theirs | ``` score = pain/5*25 + fit/5*25 + timing/5*20 + reachability/5*15 + evidence/5*15 ``` | Band | Meaning | |---|---| | **80–100** | Strong first-customer candidate | | **65–79** | Promising — validate fast | | **50–64** | Plausible but missing a material signal | | **Below 50** | Do not include in the primary shortlist | An old explicit request can still count — but lower the timing score and label the date. A company that merely matches the industry with no evidenced trigger is *not* a qualified prospect here. ### Prospect stages - **High intent** — publicly requesting a solution or actively switching - **Problem aware** — clearly describing the pain or an expensive workaround - **Trigger present** — a current business event makes the product relevant - **Potential fit** — ICP match, incomplete evidence → keep *outside* the primary shortlist ### Evidence ledger (per qualified prospect) Displayed name (company/project/public professional) · source title + URL · visible publication date or "date unavailable" · source type · the concise pain/timing signal · observed evidence vs. inference (label which) · score breakdown · freshness warning when the signal is stale. ## Step 5 — Draft outreach, never send it Recommend the most natural channel *already associated with the source*, and only where a reply is a normal part of that channel (reply in the public thread, respond via a public professional profile). Don't turn a public post into a private DM the poster didn't invite, and never contact someone off a personal-distress post. Draft one opener, under ~90 words, in this shape: 1. mention the public context naturally 2. connect it to the exact problem 3. explain the product in one sentence 4. ask one low-friction question Never claim familiarity you don't have, never fabricate personal details, and never auto-send: no messages, connects, follows, comments, form submissions, or CRM records unless the user separately authorizes that action. This is the manual/gated posture from the marketing-loops guardrails. ## Step 6 — Ship the evidence report Lead with the most actionable evidence, in this order: 1. **Verdict** — does the product have reachable early-customer signal, or not yet? (An honest "not yet, here's why" is a valid answer.) 2. **ICP** — buyer, job, trigger, disqualifiers. 3. **Top prospect** — the single strongest evidence-backed candidate and why now. 4. **Prospect shortlist** — per prospect: source, pain signal, demand-fit score, stage, why-now, channel, opener. 5. **Repeated patterns** — pains and triggers recurring across prospects (these are your positioning and messaging gold). 6. **Seven-day manual outreach plan** — a low-volume validation sequence (e.g., contact the top 3 with one source-based question; share a mockup only after they confirm the pain; target three conversations and one design-partner commitment). 7. **Limits** — what evidence is missing and what must be confirmed through real conversations. For a shareable standalone HTML version of this report, use the JSON-to-HTML generator pattern in `suede-ad-creative`: [creative-review-page.md](../../suede-ad-creative/references/creative-review-page.md). Escape every value and keep the output self-contained. ## The honesty rules (non-negotiable) - Every primary prospect links to at least one real public signal. No signal, no shortlist. - Label the output **"potential customer based on public signals"** — never "interested," "will buy," or "has consented." - Prefer ten strong matches over a long generic list. Make uncertainty and stale evidence visible. - Personalize from the cited source, not from invented assumptions. - Treat the shortlist as a research hypothesis to validate through conversations, not a customer database. -
local-prospecting.md 8.2 KB
# Local SMB Prospecting Reference For when the user sells to local small businesses — shops, gyms, restaurants, salons, clinics, professional services, contractors, real estate, fitness studios, dental practices. Adapted from and generalized beyond the local-client-prospector pattern (browser-assisted discovery + website status classification + proximity scoring). --- ## ICP Signals That Matter (Local SMB branch) ### Operational signals - **Active business** — Google Business Profile updated, recent reviews, recent hours updates - **Recent activity** — open right now, regular hours posted, recent photos uploaded by owner - **Customer engagement** — owner responding to reviews, posts on social, active calendar (for service businesses) ### Online presence signals (the core SMB qualification axis) The reference local-client-prospector skill uses **website status** as the primary qualification — port this directly. Four classifications: | Status | Definition | Typical outcome | |--------|-----------|-----------------| | **No site found** | No credible standalone website after cross-checked search | **Hot prospect** for web/marketing service | | **Social only** | Facebook, Instagram, WhatsApp, Linktree, booking portal, marketplace page only — no standalone site | **Hot prospect** for web/marketing service | | **Weak site** | Standalone site exists but outdated, broken, very thin, non-mobile-friendly, or missing clear contact/conversion flow | **Warm prospect** for refresh / rebuild service | | **Has site** | Credible, modern standalone site exists | **Low prospect** unless other signals apply (e.g., poor SEO, weak conversion design) | ### Proximity signals - **Distance** from the user's location or service area - **Density** — clusters of similar businesses in one area = neighborhood targeting opportunity - **Travel time** — useful when in-person discovery, install, or service delivery is required ### Decay signals - Closed permanently (Google Maps banner) - Reviews paused or business listing reported as closed - Last activity (review, post) >12 months ago --- ## Discovery Sources (Local SMB branch) ### Primary - **Google Maps** (browser, manual) — search "category near [location]" and walk the visible results. Cross-check details. Don't bulk-extract. - **Yelp** — secondary verification; complementary categories - **Bing Local / Apple Maps** — different coverage on smaller businesses - **Facebook Pages search** — many SMBs are Facebook-only ### Cross-verification - **Business's own website** (if any) - **Industry directories** (e.g., Healthgrades for medical, OpenTable for restaurants, Avvo for legal) - **Local Chamber of Commerce listings** - **State business registries** for incorporation status - **Search results for "[business name] [city]"** to discover non-Maps presence --- ## Authorized or Manual Research Workflow 1. Discover whether a research connector or browser is currently callable, authenticated where needed, authorized, and permitted by source terms. 2. If available, review a bounded visible result set without bulk extraction. 3. If unavailable, give the user exact public-source queries and work from the URLs, exports, screenshots, or copied source text they provide. 4. Cross-check the exact business name plus city/town against the business's own site or another current source. 5. Classify website status per the table above and state what remains uncertain. 6. Mark confidence from cited evidence, not from repeated searches of the same source. When the user explicitly asks for subagents AND subagents are available, split candidates into non-overlapping batches and ask each subagent to verify only website/social/contact status. Don't use subagents for the primary search if it slows progress. ### Optional: authorized site verification After manual discovery, first check whether an authorized browser or single-site reader is currently callable and permitted for the candidate's own public website. Possible tools, only when discovered and authorized: - **Firecrawl** for a bounded text or structured read. - **Browserbase** or another authorized browser for JavaScript rendering, consent dialogs, or session state. If neither is available, open the public site manually or ask the user for the URL, screenshots, and visible business contact details. **Strict line**: use these on the individual business's URL. **Don't** point them at Google Maps, Yelp, or any platform whose ToS prohibits bulk extraction — discovery stays manual. See [data-sources.md](data-sources.md) for selection and verification details. --- ## Qualification Checklist (Local SMB branch) - [ ] Business is active (recent reviews or activity in last 6 months) - [ ] Category matches user's service offering - [ ] Distance / proximity within target radius - [ ] Website status classified - [ ] Phone or contact channel verified - [ ] At least one cross-source confirms business operates at the listed address - [ ] Not a duplicate / chain location / out-of-scope category - [ ] Not closed permanently --- ## Lead Scoring (Local SMB) Use this simple rubric (matches local-client-prospector pattern): | Score | Criteria | |-------|----------| | **Hot** | Verified service gap + active business + approved contact path + location fit | | **Warm** | Plausible service gap or timing signal, with a material item still to verify | | **Cold** | ICP fit but no current service-gap or timing evidence | | **Skip** | Closed, duplicate, outside radius, irrelevant category, or not a business prospect | --- ## Output Columns (Local SMB branch) Chat table (≤15 rows): ``` | Score | Business | Category | Area | Distance | Website status | Website/Social | Phone | Why it's a prospect | Confidence | ``` CSV: ```csv score,business,category,area,distance_km,website_status,website_url,social_urls,phone,email,source_urls,why_prospect,confidence,verified_date,notes ``` Rules: - Keep "Why it's a prospect" short and actionable - Use `Not found` instead of leaving blank fields - Include source links sparingly, not all of them - After the table, add a bounded **Priority review candidates** section only when current evidence supports it - If confidence is low, state exactly what remains uncertain --- ## Priority Review Selection (Local SMB) Prioritize a bounded review set when the evidence supports it: 1. **No site / social only + phone present** = clearest service opportunity 2. **High review count** = active, established business with real customers 3. **Owner-responded reviews** = engaged owner = more likely to evaluate a vendor 4. **Industry alignment with your service specialty** is stronger evidence than a generic category match when both are current and cited Each top target rationale should be one sentence naming the gap and the signal: "No standalone website (cross-checked); 80+ Google reviews with owner replies; 2 km from target area." --- ## Compliance Notes (Local SMB-specific) The local branch is the most scraping-sensitive of the three motions. Specifically: - **Google Maps Terms of Service** prohibit bulk extraction. Treat browser visits as research, not as data acquisition. - **Don't store full Google Maps Place IDs in your CRM** — the ToS limits storage of Maps data. - **Public business contact channels only**: published phone, contact form, info@ email. Don't reach individual employees through their personal channels. - **Owner/operator name when published on the business's own site** is OK to use. If you only got it from LinkedIn, mark the source. --- ## Common Mistakes (Local SMB) 1. **Bulk-scraping Google Maps** — fastest way to violate ToS and lose the research channel. 2. **Treating Google Maps data as truth** — listings go stale. Cross-check hours, status, and reviews. 3. **Skipping the website status cross-check** — finding "no site" on Maps doesn't mean no site exists; do an exact-name web search before classifying. 4. **Assuming size predicts need** — verify the current service gap and buying context instead of treating any employee band as universally underserved. 5. **Generic outreach drafts** — cite the verified gap and keep every send as a separate approved action. 6. **Ignoring chains and franchises** as Skip — sometimes the franchisee is the buyer and they have local marketing authority. Verify before skipping. -
saas-prospecting.md 6.2 KB
# SaaS Prospecting Reference For when the user sells SaaS or digital services to other SaaS companies / digital businesses. --- ## ICP Signals That Matter (SaaS branch) Beyond standard firmographics (industry, size, geography), SaaS prospects are qualified by: ### Technographic signals - **Tech stack** — do they use complementary tools (your integration target) or competing tools (a switch opportunity)? - **Recent stack changes** — adding/removing tools signals active vendor evaluation - **Custom-built vs off-the-shelf** — DIY tooling often means a buyer who'd benefit from your product - **Free/freemium plan signals** — using a free competitor means they may be ready to upgrade ### Growth signals - **Funding round** — Series A / B / C in last 6 months = budget + new hires + tool needs - **Headcount growth** — a material, recently verified change can indicate scaling pressure; compare it with the company's baseline - **Hiring signals** — specific role openings (e.g., "Head of RevOps" → ICP for revops tooling) - **Product velocity** — frequent shipping, new features, blog posts = healthy growth motion - **Open positions for your buyer's role** — if you sell to Marketing Ops and they're hiring one, that's a signal ### Decay signals (downgrade scoring) - Layoffs in target department - Funding round >2 years ago with no follow-up - Product hasn't shipped in 6+ months - Team page shows founders only (very early — may not have budget) --- ## Discovery Sources (SaaS branch) Combine 2+ sources for cross-verification. ### Tier 1 — primary discovery - **Apollo**: firmographic + technographic + contact data. Good for building large initial lists. - **Clay**: candidate for waterfall enrichment, custom scoring, and multi-source merges; test quality and cost on the intended list - **ZoomInfo**: enterprise-grade firmographic + intent signals. Expensive; mid-market+. - **LinkedIn Sales Navigator**: decision-maker mapping. Use manually, never bulk scrape. ### Tier 2 — technographic / growth signals - **BuiltWith**: tech stack lookups, find sites using specific tools - **Wappalyzer**: free browser extension + API; lighter tech stack signal - **Crunchbase**: funding rounds, headcount, founders - **Pitchbook**: deeper investor data (enterprise/paid) - **ProductHunt**: recent launches, builder audience - **Hacker News / Show HN**: technical builders launching products ### Tier 3 — buying signals - **Job boards** (LinkedIn Jobs, Indeed, AngelList): role openings as signals - **RB2B / Clearbit Reveal**: visitor identification (warm anonymous traffic) - **GitHub stars/forks of competitor or adjacent repos**: a possible developer-level intent signal when the current GitHub API and account access lawfully expose it. Confirm rate limits, source date, company mapping, and terms; a star alone indicates attention, not purchase intent. - **Recent blog posts / changelog**: product direction signals - **G2 reviews mentioning competitor switches**: explicit dissatisfaction signal #### GitHub prospecting pattern (when audience is developers) For dev-tool SaaS, GitHub can supply an attention signal when current API or manual access is authorized: 1. Identify 3–5 anchor repositories: direct competitors, category leaders, and complementary tools. 2. Discover whether an authenticated GitHub API, approved export, or manual repository view is currently available; confirm rate limits and terms. 3. Review only the public fields needed for the stated business purpose. 4. Map company affiliation only when a current public source supports it. 5. Treat a star or fork as attention, not purchase intent; require another recent work-context signal before qualification. 6. Validate any approved contact channel with a currently available validator, or provide a manual validation checklist. If no authorized API or browser is available, ask for repository URLs or an export and use a manual review worksheet. --- ## Qualification Checklist (SaaS branch) For each candidate, verify: - [ ] Industry vertical matches ICP - [ ] Company size (headcount) within range - [ ] Tech stack includes (or notably excludes) a target technology - [ ] Funding stage matches buyer maturity - [ ] At least one growth signal in last 90 days (funding, hiring, product velocity) - [ ] Decision-maker role exists at the company (named or inferable from job listings) - [ ] Email contact verifiable - [ ] No disqualifiers (closed, acquired-and-paused, layoffs, ICP miss) --- ## Output Columns (SaaS branch) Recommended CSV columns: ```csv score,company,domain,industry,size_band,country,funding_stage,last_round_date,tech_stack_match,signal,signal_date,contact_name,contact_title,contact_email,email_status,linkedin_url,source_urls,why_prospect,confidence,verified_date,notes ``` For chat table, condense to: Score | Company | Industry | Size | Signal | Contact | Email status | Confidence. --- ## Top Outreach Targets Selection (SaaS) Prioritize a bounded review set when the evidence supports it: 1. **Signal recency** — compare current and older signals without assuming a universal expiry window 2. **Tech stack match strength** — prefer cited current compatibility over inferred fit 3. **Decision-maker evidence** — distinguish confirmed professional contacts from role-pattern guesses 4. **Source confidence** — prefer independent current corroboration over a single vendor record Each top target gets a one-sentence outreach rationale that names the specific signal: "Raised Series B 30 days ago; hiring Head of RevOps; verified VP of Ops email." --- ## Common Mistakes (SaaS) 1. **Buying lists from Apollo wholesale** without re-verifying email and re-checking firmographics. Stale data is the norm. 2. **Treating tech stack data as 100% accurate**. BuiltWith and Wappalyzer miss things; Clay's waterfalls miss things. Cross-check. 3. **Targeting Series C+ for early-stage SaaS sellers**. The buyer profile is wrong — too many procurement hoops, too much red tape. 4. **Targeting Series Pre-Seed seed** for products requiring meaningful budget. They have neither budget nor evaluator bandwidth. 5. **Treating intent data as proof** — verify freshness, provenance, grain, and predictive value on the target segment before changing priority.
-
-
CARD.md 4.3 KB
# Skill Card — Suede Prospecting <!-- Generated by scripts/build-skill-cards.mjs — do not hand-edit. --> <!-- Regenerate with: npm run build:cards --> Release record for the `suede-prospecting` skill, following the NVIDIA skill-card template (<https://docs.nvidia.com/skills/skill-cards>). It tells a reviewer what the skill does, who owns it, what it needs, what could go wrong, and what evidence backs the release — without requiring them to open the source first. ## Description Suede-owned prospecting and qualification discipline. Status: production. Ships in the `suede-skills` plugin (the full pack) at release 0.19.0; loads as a Claude Code / Codex agent skill from this directory's [SKILL.md](./SKILL.md). ## Owner Jason Colapietro, Suede Labs AI (<https://github.com/JasonColapietro>). Security contact: `info@suedeai.ai` per [SECURITY.md](../../SECURITY.md). ## License / Terms of Use MIT ([LICENSE](../../LICENSE)). The pack's combined license expression is `MIT AND BSD-3-Clause`; this skill bundles no third-party licensed material of its own. ## Use Case Target users: developers and creators running the skill inside a Claude Code or Codex CLI session. 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. Out of scope — sending outreach (use suede-cold-email), changing CRM routing (use suede-revops), or profiling competitors instead of prospects (use suede-competitor-profiling). ## Deployment Geography Global. The skill is a prompt-and-script package that runs locally inside the invoking agent session; it pins no region-specific service of its own. ## Requirements / Dependencies - A Claude Code or Codex CLI session with the `suede-skills` plugin installed (install options: <https://skills.suedeai.ai/>). - Bundled files loaded relative to this directory: `agents/` (1 file), `references/` (6 files). - Credentials: none are bundled or required by the skill files. Any tool or API credentials come from the host session; never paste credentials into skill files, prompts, or outputs. ## Known Risks and Mitigations - Risk: an agent treats a quality gate as autonomous authority. Mitigation: every gate in the pack is advisory — it changes what is reported, never what the user decided; only extreme-risk findings (data loss, credential exposure, legal/rights violations, payment mistakes, irreversible public damage) pause for the user's explicit choice. - Risk: a skill instruction is used to act outside its mandate. Mitigation: the hard limits in the skill body's "Boundaries" section, quoted below. From "Boundaries": - Do not send outreach, import contacts, buy data, mutate a CRM, or enroll a person in a sequence. - Do not invent contact details or qualification evidence, evade source terms, collect unnecessary personal data, or label a lead verified without a cited current source. - Do not decide legal compliance or claim deliverability. Apply the applicable consent, privacy, and suppression rules before any downstream contact. ## References - Skill source: [`skills/suede-prospecting/SKILL.md`](./SKILL.md) - Rendered reference page: <https://skills.suedeai.ai/skills/suede-prospecting.html> - Security policy and reviewed scanner exceptions: [SECURITY.md](../../SECURITY.md) and [`.plugin-scanner.toml`](../../.plugin-scanner.toml) at the repo root ## Skill Output Structured Markdown returned in the agent's response, shaped by the output contracts defined in the skill body: "Phase 5 — Output the lead sheet", "Output Formats". The skill publishes, posts, and sends nothing without the user's explicit authorization; delivery decisions stay with the user. ## Skill Version 0.19.0 — the pack is single-versioned, so every skill releases together; see [VERSION](../../VERSION) and [CITATION.cff](../../CITATION.cff) for the release identifier this card describes. ## Ethical Considerations - The skill produces recommendations for a human decision-maker. Publishing, sending, payment, and rights decisions stay with the user. - Its gates require verifiable claims and honest reporting; do not use the skill to fabricate claims, evidence, metrics, or attribution. - Report suspected misuse or a security concern privately per [SECURITY.md](../../SECURITY.md); do not open a public issue for it. -
SKILL.md 16.2 KB
--- name: suede-prospecting description: "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)." metadata: version: 1.1.0 --- # 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. ``` IRON LAW: every row carries a source URL and the date it was captured, or it does not ship. No exceptions, no "verify later," no placeholder rows. ``` That single rule is what makes the downstream GDPR / CAN-SPAM lineage real. A row without it is not a low-confidence lead — it is not a lead. ## Before Starting **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. ## Pick the Branch 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: - **SaaS** → see [references/saas-prospecting.md](references/saas-prospecting.md) - **B2B** → see [references/b2b-prospecting.md](references/b2b-prospecting.md) - **Local SMB** → see [references/local-prospecting.md](references/local-prospecting.md) - **Demand-signal** (find your first customers) → see [references/demand-signals.md](references/demand-signals.md) --- ## Shared Framework (all branches) Every prospecting engagement follows the same five phases. Tools and qualification signals change per branch; the phases don't. ### Phase 1 — Define the ICP Pull from `product-marketing.md` if available. Otherwise, gather: 1. **Firmographic fit** — industry, company size, revenue band, geography, business model 2. **Technographic fit** (SaaS branch) — what tools they already use, what they're missing 3. **Buying signal** — why now? (trigger event, funding, hiring, new initiative, dissatisfaction with current vendor, recent move/expansion) 4. **Decision-maker profile** — role, seniority, what they care about 5. **Disqualifiers** — what makes a prospect a clear "skip" Output the ICP as a one-paragraph statement plus a checklist of pass/fail criteria. Don't move to discovery without this. ### Phase 2 — Build the candidate list (discovery) Start at 2-3x the requested output count, adjusted down for thin source access or review capacity. Expand only when the observed disqualification rate shows another batch is needed, and cap expansion at 3 rounds. At the cap, stop sourcing: report the disqualification rate you observed and hand back a narrower ICP proposal rather than grinding through more sources. - **SaaS / B2B**: cross-check material claims across available first-party, public, or licensed sources. Named vendors are candidates only after access, freshness, terms, and cost checks. - **Local SMB**: use an authorized research connector or manual public-source 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. Don't start qualification until every candidate has its source URL captured. ### Phase 3 — Qualify each candidate 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): - **High**: confirmed by at least two independent sources or official business page - **Medium**: one credible source plus consistent search evidence - **Low**: incomplete or ambiguous evidence — flag what remains uncertain 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. Don't move to scoring until every candidate carries a confidence level. ### Phase 4 — Score and prioritize 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](references/demand-signals.md). | Score | Definition | |-------|------------| | **Hot** | ICP fit (passes the full Phase 1 ICP checklist) + 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. No row leaves this phase labeled Hot without both a buying signal and a verified contact — downgrade it to Warm instead. ### Phase 5 — Output the lead sheet (SaaS / B2B / Local SMB. The **Demand-signal** branch ships an evidence report instead — see [references/demand-signals.md](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: - score, business/company name, contact (where applicable), why-it's-a-prospect, source(s), confidence, last verified date The sheet is not deliverable until it also carries the search parameters used and the open questions left unresolved. --- ## Compliance Guardrails These apply to every branch. **Read first, every engagement.** 1. **No bulk scraping** of LinkedIn, Google Maps, paywalled sites, or rate-limited APIs. Browser is an assisted research tool, not a scraper. 2. **No CAPTCHA, login wall, or bot protection bypass.** If a site requires it, work with what's publicly visible. 3. **Public business contact channels only.** Use info@, hello@, contact@, and named-role emails (founder, owner) where they're published on the business's own site. Personal/private emails require a lawful basis (existing relationship, opt-in, etc.). 4. **GDPR / CAN-SPAM / CASL aware.** Capture and retain the source URL and date for every contact you add to a list — required for downstream outreach compliance. 5. **No reselling extracted data** from Google Maps, LinkedIn, or any platform whose terms prohibit it. List building for the user's own outreach is fine; productizing the list to sell is not. 6. **Rate limit yourself.** Even on public sources, space requests. Don't fingerprint as a bot. 7. **No breached, leaked, or unprovenanced data.** Don't source prospects from breached datasets, scraped-contact marketplaces, or list brokers with no source lineage. Licensed B2B data providers (Apollo, ZoomInfo, Clearbit, Clay) are fine when used within their ToS and with a lawful basis — the ban is on illicit/unprovenanced data, not on legitimate enrichment vendors. 8. **Never target or infer sensitive traits.** Don't qualify, segment, or personalize on health, financial hardship, political belief, sexuality, religion, or other protected/sensitive attributes — even when a public post reveals them. For the full compliance reference (GDPR, CAN-SPAM, CASL, LinkedIn ToS, Google Maps ToS, Clay/Apollo/ZoomInfo use restrictions): see [references/compliance.md](references/compliance.md). --- ## Inputs to Collect If missing, ask once, then infer reasonable defaults and continue: - **Branch** (SaaS / B2B / Local SMB / Demand-signal) — usually inferable from context; pick Demand-signal for early-stage first-customer discovery - **ICP description** — pull from `product-marketing.md` if present - **Target count** — use the requested count or propose a bounded pilot justified by source coverage and review capacity - **Geography** (essential for Local SMB; useful for B2B; less critical for SaaS) - **Tools the user has access to** — discover current callable tools and authenticated accounts; never assume a vendor connector or browser exists - **Output format** — chat table (default) or CSV - **Buying signal preference** — what triggers should they prioritize? (funding rounds, hiring, recent move, etc.) --- ## Tool Selection Treat every named product below as a candidate, not an available capability. These are selection examples, not guaranteed integrations — discover what is currently callable and verify the user's authenticated access, license, source terms, data freshness, export rights, and cost before using one. Full breakdown in [references/data-sources.md](references/data-sources.md). | If the user has access to... | Use it for | Verify Before Use | |------------------------------|------------|-------------------| | **Apollo** | B2B / SaaS firmographic + contact discovery | Freshness, export terms, email validation | | **Clay** | Multi-source enrichment, waterfall lookups, custom scoring | Credit cost, providers, field provenance | | **Clearbit** | Email-to-company and company enrichment | Current product access and coverage | | **ZoomInfo** | Enterprise B2B contact + intent data | License, export rights, signal freshness | | **Hunter or Snov** | Email pattern discovery and verification | Verification status and lawful basis | | **Truelist** | Email deliverability validation before outreach | Result meanings and current API limits | | **LinkedIn Sales Navigator** | Decision-maker mapping (manual, no scraping) | Platform terms; no bulk extraction | | **BuiltWith / Wappalyzer** | Tech stack qualification (SaaS branch) | Detection accuracy and staleness | | **Crunchbase** | Funding signals (SaaS branch) | Record recency and license tier | | **GitHub** | Stargazers / forks, public developer-intent signals | API terms, rate limits, company mapping | | **Google Maps + browser** | Local SMB discovery | Terms; assisted review only, no bulk extract | | **Outreach** | Sales engagement after approval | Sequence permissions and suppression rules | | **RB2B** | Visitor identification | Privacy basis and company-vs-person grain | | **Firecrawl / Browserbase** | Single prospect websites — never platforms | Target terms, scope, and session access | **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. --- ## Output Formats ### Default — chat table 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 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | ``` ### CSV — when >25 rows or user requests a file SaaS / B2B columns: ```csv 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: ```csv score,business,category,area,distance_km,website_status,website_url,social_urls,phone,email,source_urls,why_prospect,confidence,verified_date,notes ``` ### Include after the table - **Priority review candidates**: a bounded evidence-ranked set with one-sentence rationale each - **Search parameters**: branch, ICP, location/radius, target count, date generated - **Open questions**: anything you couldn't verify and the user should look at --- ## Quality Checks (before finalizing) - [ ] Remove duplicates (by domain for SaaS/B2B, by business + address for Local SMB) - [ ] Every "Hot" lead has a verified contact + at least one source URL - [ ] Email status comes from a currently authorized validator with documented result semantics, or is explicitly `unverified`; failed results stay in a separate invalid bucket - [ ] No lead labeled "Hot" lacks a clear buying signal - [ ] Confidence levels honest — "High" requires 2 independent sources, not just two of your own searches - [ ] No leads sourced from prohibited scraping (LinkedIn at scale, Google Maps bulk extract, etc.) - [ ] Source URL + date captured for every contact (GDPR / CAN-SPAM lineage) - [ ] Final count matches user's request, or you've explained why it's smaller (quality bar) Any unchecked box means the sheet is not deliverable. Name the failing box and what is missing, rather than shipping the sheet with a caveat attached. --- ## Common Mistakes 1. **Treating data sources as authoritative without cross-checks**. Apollo and ZoomInfo are out of date often; verify before scoring as "Hot." 2. **Mixing branches**. Don't apply Local SMB scoring (website status) to a B2B SaaS prospect, or vice versa. 3. **Ignoring quiet hours / time zone** when scheduling the downstream outreach (handoff to `suede-cold-email`). 4. **Forgetting to retain consent / lineage records**. Required for GDPR DSARs and CAN-SPAM audits. --- ## Boundaries - Do not send outreach, import contacts, buy data, mutate a CRM, or enroll a person in a sequence. - Do not invent contact details or qualification evidence, evade source terms, collect unnecessary personal data, or label a lead verified without a cited current source. - Do not decide legal compliance or claim deliverability. Apply the applicable consent, privacy, and suppression rules before any downstream contact. ## Routing - Use `suede-product-marketing` to define the ICP and positioning context. - Use `suede-cold-email` after a qualified list is approved for outreach copy. - Use `suede-revops` for approved CRM routing and lifecycle handoff. - Use `suede-sales-enablement` for collateral used in active sales work.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.