log in sign up now
Search B2B Prospects back to library
~ / library / Prospecting / search-b2b-prospects

Search B2B Prospects

Find people by company and person filters - name, domain, industry, seniority, department, or country. Returns ranked profiles with LinkedIn and business email. Every email returned is graded A-F for deliverability risk, and you pick which grades to keep.
  • Find VPs of Sales at US SaaS companies with 100-500 employees
  • Search for marketing managers in fintech and return profiles with business emails
  • Find people by domain, seniority, and department that match my ICP

What this skill does

Searches for people using search_people. The server filters on both company attributes and people-level attributes - free-text query (person name or role keywords), company name (company), exact company_domain, location (country, state, city), role (seniority, department/functional_area), industry at three resolutions (industry, linkedin_industry, naics_code), and the employer's size and revenue (employee_range, revenue_range). Each record comes back with title, seniority, country, headline, LinkedIn URL, and business_email (when available). Because results often already include business_email, separate enrichment may be unnecessary - follow up with Enrich Contact or Batch Enrich LinkedIn List only for missing emails or phone numbers.

Search filters (request params)

Field Param Example
Free-text (name or role keywords) query "Jane Smith", "VP Sales"
Company name company "Stripe", "HubSpot"
Exact domain company_domain "stripe.com"
Country country "United States", "United Kingdom"
State / city state, city "Texas", "Portland"
Seniority seniority "Director", "VP", "C Suite"
Industry (broad) industry "Information Technology", "Finance and Banking"
Industry (niche) linkedin_industry "Staffing and Recruiting"
Industry (code) naics_code "54", "541120"
Department / functional area department or functional_area "Sales", "Marketing", "Engineering"
Employer size employee_range "21-50", "201-500", "5001+"
Employer revenue revenue_range "$10M - $20M", "Above $50M"

Enum values are fixed - seniority: Intern, Entry, Senior, Manager, Director, VP, Head, C Suite, Owner, Partner. department/functional_area: Operations, Sales, Information Technology, Education, Engineering, Finance, Medical & Health, Marketing, Human Resources, Design, Consulting, Legal (use one, not both). employee_range and revenue_range apply to the person's current employer, so size and revenue targeting happen in the same call - no search_companies pass first.

Filters are free precision. Execution cost comes from the free-text query, not the filters attached to it: query + any number of filters costs the same as query alone, and a filters-only search runs ~40x cheaper. So a bare query is never the right shape - at minimum the skill attaches country (~99% filled, the highest fill rate of any filter). When the whole ICP fits in filters, it drops query entirely.

Fill rates decide what to drop when results come back thin. country ~99%, title ~85%, headline ~65%, seniority/industry/department ~60%, naics_code/linkedin_industry ~50%. Every filter is exact-match and silently discards records with an empty field, so three sparse filters stacked can cut a viable audience to nothing - the skill widens by dropping the sparsest first, not country.

What each result includes

Title, seniority, country, headline, full_name, linkedin_url, and business_email come back on each record. Title is a free-text response field used for ranking; seniority, department, and country are also accepted as request filters.

When it activates

  • "find prospects at SaaS companies"
  • "find directors in sales at fintech companies in the US"
  • "show me VPs of marketing at [company]"
  • "find people at [company/industry]"

How it works

  1. Validates input - prompts if no company attribute is specified
  2. Probe search (1 result) to check quality before scaling
  3. Full search - default 10 results, up to 25 per page; paginates with offset for larger pulls
  4. Presents ranked results - title, seniority, LinkedIn URL, and business email on each row

Output

Name Title Company Location LinkedIn Business email Risk

Results already include business_email where available, each with its A-F risk score - offer to enrich only the rows missing an acceptable-grade email, or to add mobile numbers. Risk is the deliverability grade, not the _score match-quality field. Results close with the risk-score spread across the page.

Tips

  • Server filters include both company and people attributes - query, company, company_domain, country/state/city, seniority, department/functional_area, industry/linkedin_industry/naics_code, employee_range, revenue_range. Use company_domain (not domain) on search_people
  • Search a person by name or role via query; everything else belongs in a filter - they cost nothing on top of the call and sharply narrow the result set
  • Exact strings matter: "C Suite" has a space not a hyphen, "Marketing & Advertising" and "Medical & Health" use ampersands, "Texas" not "TX", "United Kingdom" not "UK"
  • city matches the exact stored city, not its suburbs - use state or country for metro-area coverage
  • Sizing a search is free: count_only: true returns a match count with no tokens charged, and results.total on every response tells you how deep the result set goes before you paginate
  • Many records already carry business_email, so enrichment is often unnecessary for business email
  • Max 25 per call - use offset pagination for larger lists
  • Every returned email carries an A-F deliverability risk score; you're asked up front which grades to keep, and out-of-range grades are shown and flagged rather than silently dropped
01 Download the .moltsets skill file below
02 Open Claude and go to Settings to Skills
03 Click Add skill and select the downloaded file
04 Open a new chat in Claude
05 Prompt Claude using one of the example prompts or use your own
// difficultyEasy
// connectionCSV, Google Sheets, Excel
// got a skill of your own? Submit it to the library