Skip to content

Find and preview leads

VibeSell searches a B2B lead provider — people at companies — with the filters of your target. Counting and previewing are free: nobody is imported and no lead credit is spent until you approve an import.

  1. Describe the target — save_target keeps the segment, the company profile, the champion who answers, the trigger that makes them answer now, and who to exclude.

  2. Turn it into filters — save_target_filters keeps the lead filters every search starts from: countries, places, job titles, seniority, headcount, industries, keywords…

  3. Count — estimate_lead_pool returns how many people match. The number is measured, not estimated.

  4. Look at real people — preview_lead_sample shows up to 10 of them: name, job title, company, location and LinkedIn. Never their email address.

  5. Confirm, in your words — once you’ve seen them and said they fit, confirm_target records your sentence. It opens the plan step.

The filters are described on each tool’s page and their values listed in the lead filter vocabulary. What matters most:

  • Countries or places, not both for the same area. countries takes whole countries as ISO codes (FR, DE, US). A city or region goes in places — { "city": "Lyon", "country": "FR" } — and its country stays out of countries. excludedPlaces cuts a place out of a wider one: France except Paris is countries: ["FR"] with excludedPlaces: [{ "city": "Paris", "country": "FR" }].
  • Whose address? locationScope is CONTACT (where the person is — what “prospects in Lyon” means) or COMPANY (where the company is registered).
  • Job titles match by substring. jobTitles: ["Head of Sales"] matches every title that contains it, and several titles read as OR. Write them the way people of that market write them — Chirurgien-dentiste for French dentists.
  • Headcount: numbers or brackets, never both. Use headcountMin / headcountMax, or headcountBands. Given together, the brackets are refused and the numbers kept.
  • Sub-industries instead of industries. subIndustries (for example Medical Practice) is for a niche; sending it with includedIndustries widens the search instead of narrowing it.
  • Keywords describe the company, never the person: ["orthodontie"] finds orthodontic practices. Give each word its own item, in every language those companies use.
  • Silent zeros. A technology, a website or a look-alike the provider doesn’t know comes back as zero leads without an error. That zero is not an empty market.
  • Funding filters drop bootstrapped companies: a company that never raised matches no stage.

A filter left out of a count or preview is taken from the target saved in the workspace; the result lists the filters actually searched (filters), the saved ones left out (notSearched) and any value it did not recognise (ignored).

estimate_lead_pool · structuredContent (shape)
{
"kind": "lead_count",
"status": "counted",
"total": 4812,
"atLeast": false,
"filters": [{ "label": "Job title", "values": ["Chirurgien-dentiste"] }],
"notSearched": [],
"ignored": [],
"excludedCompanies": 0,
"measuredAt": "2026-10-23T09:12:44.000Z",
"message": null
}
  • status is counted, needs_filters (no filter at all), unsearchable or failed; message says why when nothing was counted.
  • When atLeast is true, the counter hit its ceiling: total is a floor.

import_leads takes the same filters plus a batch name (cohortName), a maximum (maxLeads) and a one-sentence summary. It does not import: it opens an approval card.

  • It costs one lead credit per lead asked for in maxLeads, whatever comes back, and it cannot be undone.
  • It needs an active plan — lead credits come with it.
  • The imported people come with their email addresses, in a named batch you find again in VibeSell.

See Approval cards for what happens on your click.