---
name: prospecting
description: Build a verified, scored prospect list from an ICP, across B2B SaaS, general B2B, or local small-business motions. Use when the user says "build a prospect list", "find leads", "target account list", "find local businesses", or "who should we go after". Not for writing the outreach: use cold-email. Not for deep research on one account: use competitor-profiling. Not for defining positioning and ICP from scratch: use product-marketing.
license: MIT
metadata:
  author: TechTide AI (Alex Cinovoj)
  provenance: rewritten from patterns in an open SaaS marketing skills pack (MIT)
  category: Sales & RevOps
---

# Prospecting

A prospect list is only as good as its worst row. 25 verified leads with evidence beat 250 mostly-junk ones: bounces burn sender reputation and junk rows burn rep time.

## Pick the branch first

| Branch | Selling to | Qualified means | Primary sources |
|---|---|---|---|
| SaaS | SaaS and digital businesses | ICP fit + tech-stack match + growth signals (funding, hiring, velocity) | LinkedIn, BuiltWith, Crunchbase, Apollo, Clay |
| B2B | Non-SaaS B2B, services, manufacturers | Industry + size + geography fit + trigger events | Apollo, ZoomInfo, Clay, Sales Nav, directories |
| Local SMB | Shops, gyms, clinics, restaurants | Active business + website status + proximity + reachable owner | Google Maps, Yelp, local directories, Facebook |

Hybrid motion: pick the dominant branch, borrow signals from the other. Never mix scoring criteria across branches.

## Workflow

1. **Define the ICP.** Pull from `.agents/product-marketing.md` if present. Capture: firmographic fit, technographic fit (SaaS), the buying signal that makes now the right time, decision-maker profile, and explicit disqualifiers. Output a one-paragraph ICP plus a pass/fail checklist. Do not start discovery without it.
2. **Build the candidate pool** at 2-3x the target count, qualification culls hard. Combine 2-3 sources for cross-verification (SaaS/B2B) or browser-assisted Maps-plus-directory research (Local SMB). Defaults: 25 leads for SaaS/B2B, 15 for Local SMB.
3. **Qualify each candidate** against the checklist with evidence: 1-2 source URLs per claim, never assert without backing. Confidence: High needs two independent sources or the official business page, Medium is one credible source plus consistent evidence, Low gets flagged with what remains uncertain. Verify email deliverability with a validator before any contact enters the final list.
4. **Score:** Hot = strong fit + clear buying signal + accessible decision-maker + verified contact. Warm = fit + softer or older signal. Cold = loose fit, no signal, or unverified contact. Skip = disqualifier hit. Healthy ratio: roughly 20% Hot, 30% Warm.
5. **Ship the lead sheet.** Markdown table in chat by default, CSV when over 25 rows or on request. Column schemas per branch in references/lead-sheet-and-tools.md. Always append: top 3-5 outreach targets with a one-line rationale each, the search parameters used, and open questions you could not verify.

## Compliance guardrails (every engagement)

- No bulk scraping of LinkedIn, Google Maps, or rate-limited APIs. Browser is an assisted research tool, not a scraper.
- No CAPTCHA, login-wall, or bot-protection bypass. Work with what is publicly visible.
- Public business contact channels only: info@, hello@, and named-role emails published on the business's own site. Personal emails need a lawful basis.
- Capture source URL and date for every contact: GDPR, CAN-SPAM, and CASL lineage for downstream outreach.
- No reselling extracted platform data. Lists for the user's own outreach only.
- Rate-limit yourself even on public sources.

## Verification

Sample three "Hot" rows at random and re-open their source URLs. Expect: the business or company is real and active, the claimed signal is visible at the source, and the contact appears on an official page. If any sampled row fails, the qualification pass was sloppy: re-verify the entire Hot tier before shipping, not just the failures you happened to catch.

## Good vs Bad

**Bad:** "Hot: Acme Corp, they use React, found the CEO's email with a pattern guesser." Tech stack is not a buying signal, the email is unverified, no source URLs.

**Good:** "Hot: Acme Corp, 40-person logistics SaaS, posted 3 RevOps roles this month (careers page, LinkedIn), just raised Series A (press release linked), VP Ops verified via validator, both sources captured with dates."

## Completion checklist

- [ ] ICP paragraph plus pass/fail checklist written before discovery
- [ ] One branch's criteria applied consistently
- [ ] Duplicates removed (domain for SaaS/B2B, name + address for Local SMB)
- [ ] Every Hot lead: verified contact, buying signal, source URLs
- [ ] All emails validated, failures moved to a flagged invalid bucket
- [ ] Source URL + date on every contact
- [ ] Three-row spot check passed
- [ ] Final count matches the request, or the shortfall is explained by the quality bar

Any box unchecked: not done. Fix or say so.

## Footguns

- **Discovery before ICP.** Vague criteria qualify the wrong companies and the whole list is rework. Fix: the ICP paragraph and checklist come first, always.
- **Trusting enrichment databases.** Apollo and ZoomInfo run months stale, people change jobs. Fix: cross-check title and employment on a live source before scoring Hot.
- **Fit without a signal marked Hot.** ICP fit says who, the signal says why now. Without the signal, outreach lands as noise. Fix: no signal, no Hot, no exceptions.
- **Unvalidated emails.** A few percent bounce rate can sink a sending domain for weeks. Fix: validate everything, quarantine failures visibly instead of deleting them.
