Skip to main content

Find People

Search decision-makers across your entire ICP. Combine company-level filters with person-level filters in a single call.
API Reference: Find People endpoint — full request/response schema and try-it console.
The Find People endpoint (POST /v2/search/people) is the most powerful entry point in the People Search family. Instead of being scoped to a single company (like Employee Finder) or returning a single best contact (like Waterfall ICP Search), Find People runs a two-stage match: it first qualifies companies that fit your ICP, then surfaces the people inside them that match your persona criteria. It is the right tool to build large, multi-account prospecting lists in one call — without first having to resolve every company URL. Paid plans: Unlimited — included in your flat monthly subscription.

When to Use Find People vs. Other Endpoints

Use CaseBest Endpoint
Build a prospecting list across many companies matching an ICPFind People
Map all employees inside one specific companyEmployee Finder
Find the single best decision-maker at a known companyWaterfall ICP
Combine company filters (industry, size, HQ) with persona filtersFind People
Iterate through a long result set with stable paginationFind People (cursor-based)

How It Works

Find People accepts three top-level objects:
  1. company — qualifies the accounts (industry, employee range, HQ, type, keywords, founded year, follower count, or explicit linkedin_url list).
  2. people — qualifies the contacts inside those accounts (job title keywords, job function, job level, location, minimum connections).
  3. max_results + cursor — control how many results come back per call and how you paginate.
The engine evaluates the company filter first, then walks the matching companies and returns people that satisfy the person filter — up to max_results per call.

Request Parameters

Top-Level Parameters

ParameterTypeRequiredDefaultDescription
companyobjectNo*Company-level filters. See below.
peopleobjectNo*Person-level filters. See below.
max_resultsnumberNo10Results per page. Min: 1, Max: 50.
cursorstringNonullCursor returned by a previous call. Omit (or pass null) for the first call.
* You should provide at least one of company or people — otherwise the search is unbounded and will be rejected.

company Filters

FieldTypeDescription
linkedin_urlarrayExact LinkedIn company URLs to target. Bypasses other company filters.
name.includearrayKeywords that must appear in the company name.
name.excludearrayKeywords to exclude from the company name.
industry.includearrayNormalized industry names. Case-sensitive — see Field Normalization.
industry.excludearrayIndustries to exclude.
type.includearrayLinkedIn company type (Privately Held, Public Company, Nonprofit, Government Agency, …).
type.excludearrayCompany types to exclude.
employee_rangearrayLinkedIn employee buckets: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+.
employee_count.minnumberMinimum employee count (numeric).
employee_count.maxnumberMaximum employee count (numeric).
min_linkedin_followersnumberMinimum number of LinkedIn followers on the company page.
keywords.includearrayKeywords that must appear in the company description.
keywords.excludearrayKeywords to exclude from the company description.
founded_year.minnumberEarliest founded year.
founded_year.maxnumberLatest founded year.
hq.city.includearrayKeywords matched against the HQ city.
hq.city.excludearrayKeywords to exclude from the HQ city.
hq.country_codearrayHQ country (2-letter ISO codes, e.g., US, FR).
hq.continentarrayHQ continent. See accepted values.
hq.sales_regionarrayHQ sales region: NORAM, LATAM, EMEA, APAC.

people Filters

FieldTypeDescription
job_title.includearrayKeywords that must match the job title.
job_title.excludearrayKeywords to exclude from the job title.
include_linkedin_headlinebooleanIf true, job_title keywords also match the LinkedIn headline (not just the formal job title). Default: false.
job_functionarrayDepartment / function. Case-sensitive enum — see Field Normalization.
job_levelarraySeniority: C-Team, VP, Director, Manager, Staff, Other.
min_connectionsnumberMinimum LinkedIn connections (0–500). Useful to filter out inactive profiles.
location.cityarrayCities the person is based in.
location.country_codearrayPerson country (2-letter ISO codes).
location.continentarrayPerson continent.
location.sales_regionarrayPerson sales region: NORAM, LATAM, EMEA, APAC.
All enum values (industry, type, employee_range, job_level, job_function, continent, sales_region) are case-sensitive. Passing "vp" instead of "VP" or "sales" instead of "Sales & Business Development" will silently return 0 results. Copy-paste from the Field Normalization reference.

Example Request

Find VPs and Directors of Sales at IT Services companies between 51 and 500 employees, headquartered in EMEA:
curl -X POST "https://api.blitz-api.ai/v2/search/people" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "company": {
      "industry": { "include": ["IT Services and IT Consulting"] },
      "employee_range": ["51-200", "201-500"],
      "hq": { "sales_region": ["EMEA"] }
    },
    "people": {
      "job_level": ["VP", "Director"],
      "job_function": ["Sales & Business Development"],
      "min_connections": 200
    },
    "max_results": 25
  }'

Response Schema

{
  "total_results": 100,
  "results_length": 25,
  "max_results": 25,
  "cursor": "eyJvZmZzZXQiOjI1fQ==",
  "results": [
    {
      "first_name": "Jane",
      "last_name": "Doe",
      "full_name": "Jane Doe",
      "nickname": null,
      "civility_title": null,
      "headline": "VP of Sales at Acme",
      "about_me": "Experienced sales leader...",
      "location": {
        "city": "Paris",
        "state_code": null,
        "country_code": "FR",
        "continent": "Europe"
      },
      "linkedin_url": "https://www.linkedin.com/in/janedoe",
      "connections_count": 2500,
      "profile_picture_url": "https://media.licdn.com/...",
      "experiences": [
        {
          "job_title": "VP of Sales",
          "company_linkedin_url": "https://www.linkedin.com/company/acme",
          "company_linkedin_id": "c51425c5-1b38-578d-a700-c5ca850261ae",
          "job_description": "Leading the EMEA sales team...",
          "job_start_date": "2024-01-15",
          "job_end_date": null,
          "job_is_current": true,
          "job_location": {
            "city": "Paris",
            "state_code": null,
            "country_code": "FR"
          }
        }
      ],
      "education": [],
      "skills": ["Sales Strategy", "B2B", "SaaS"],
      "certifications": []
    }
  ]
}

Top-Level Response Fields

FieldTypeDescription
total_resultsnumberTotal number of people matching the filters across all pages.
results_lengthnumberNumber of results on this page.
max_resultsnumberThe max_results value you sent.
cursorstring | nullPass this back as cursor to fetch the next page. null means there are no more results.
resultsarrayArray of person profiles (same shape as Employee Finder).
The person object (results[]) is identical to Employee Finder — same experiences, education, skills, and certifications structures. Person fields are returned directly in results[], not nested in .person.
Cursor vs. page: Find People uses cursor-based pagination, while Employee Finder uses page-based pagination. Cursors are stable even if new profiles are added between calls — you will not see duplicates.

Pagination

Find People uses cursor-based pagination. Loop until the API returns cursor: null.
let cursor = null;

do {
  const result = await blitzRequest("POST", "/v2/search/people", {
    company: {
      industry: { include: ["IT Services and IT Consulting"] },
      hq: { sales_region: ["EMEA"] },
    },
    people: {
      job_level: ["VP", "Director"],
      job_function: ["Sales & Business Development"],
    },
    max_results: 50,
    cursor: cursor,
  });

  for (const person of result.results) {
    console.log(`${person.full_name}${person.headline}`);
  }

  cursor = result.cursor;
} while (cursor !== null);

Combining with Enrichment

Find People returns LinkedIn profile URLs but not emails or phone numbers. Chain with enrichment endpoints to complete the data:
1

Search people

Use Find People to get linkedin_url for each matching person across the ICP.
2

Enrich emails

Pass each linkedin_url to POST /v2/enrichment/email to get verified work emails.
3

Enrich phones (US only)

Pass each linkedin_url to POST /v2/enrichment/phone for direct mobile numbers.
4

Sync to CRM

Map the enriched payload to your CRM fields and sync.

Employee Finder

Need every employee at one company? Use Employee Finder.

Waterfall ICP Search

Need the single best contact at a known account? Use Waterfall.

Company Search

Want only the company list (no people)? Use Company Search.

Field Normalization

Accepted values for industry, job_level, job_function, sales_region…