Skip to main content
POST
Parallel requests limit: 50 requests Recommended timeout: 180 seconds

Use Case:

Build a targeted list of prospects for outreach campaigns

Additional Information:

  • 50 Parallel processing available (multiple threads)
  • Supported locations:
    • List of Supported Locations.
    • In case of inputting a location which is not listed you will receive a ValidationError (free request), with Hint what location you need to edit.
  • Personas rules: (see example request first)
    • Top-level personas is a list of persona tuples. Each persona is: [name, functions, seniorities, prohibits, priority?]
    • name (string, required) — identifier for the persona group. Returned on every matched lead as linkedin_lead_persona.
    • functions (list of strings, required) — job-function keywords, OR-combined.
      • Example: ["marketing", "sales"] matches a lead whose title contains either “marketing” or “sales”.
      • Important: only functions are pushed to the LinkedIn pre-filter. seniorities and prohibits are applied server-side after leads are fetched. A single narrow function (e.g. ["ceo"]) may miss leads whose actual title is a language-equivalent ("Geschäftsführer", "Managing Director", "Founder", etc.). For best recall pass all equivalents explicitly, e.g. ["ceo", "managing director", "geschäftsführer", "founder", "inhaber", "owner"].
      • Pre-processing before matching: lowercased, diacritics stripped (unidecode), stop-words removed (or, and, of, in, at), IT → information technology, DIR → director, common abbreviations auto-expanded (ceo ↔ chief executive officer, etc.).
      • Pass [] to skip function matching (any title passes the function check).
    • seniorities (list of strings, optional, default []) — seniority keywords, OR-combined. Applied post-fetch.
      • Matching is per-entry token containment: every token of a seniority phrase must appear in the lead’s job title (tokens split on whitespace). So "Managing Director" requires both "managing" and "director" to be present in the title.
      • Final persona match is logical AND between functions and seniorities: a lead passes iff at least one function and at least one seniority match.
      • Example: functions=["marketing", "sales"] and seniorities=["Head", "Manager"] match “Head of Marketing”, “Head of Sales”, “Manager of Marketing”, “Manager of Sales”.
      • Auto-expansions (case-insensitive):
        • "vp" → also matches SVP, EVP, GVP, AVP
        • "chief", "c-lvl", "cxo" → also match Chief Officer
        • "manager+" → expands to Manager, Director, Head, VP, SVP, EVP, AVP, Chief Officer
      • Pass [] to skip seniority matching.
    • prohibits (list of strings, optional, default []) — exclusion keywords, OR-combined. If at least one of its tokens appears in the lead’s job title, the lead is dropped.
    • priority (integer, optional, default 0) — ranking used when limit_by is smaller than the number of matches. Lower value = higher priority; leads from higher-priority personas are returned first.
    • In case of bad input you will receive a ValidationError (free request), with a hint on what you need to edit.
    • More Persona Bad Examples and Good Practise you can see here
  • limit_by rules:
    • Will return only N-strip of first leads that match input criteria
  • company_link supported formats:
  • company_types:
    • "Public Company", "Educational", "Self Employed", "Government Agency"
    • "Non Profit", "Self Owned", "Privately Held", "Partnership"
  • By default Generect is able to search up to linkedin limits (2500 results)
  • Parameter "company_locations" - companies headquarters locations
  • Parameter "company_headcounts" - headcounts of companies, vars - ["1-10", "11-50", "51-200", "201-500", "501-1000", "1001-5000", "5001-10000", "10 000+"]
  • Parameter "exclude_names" - skip leads by unformatted full name
  • Parameter "exclude_ids" - skip leads by sales_id (list of LinkedIn Sales Navigator IDs)
  • Parameter "filter_empty_vars" - skip leads if variables is empty/None/False
    • available - job_started_on, profile_photo, started_at_position, company_website
  • Parameter "group" - list of groups id
  • Parameter "schools" - list of schools id
  • Parameter "past_company_names" - list of past company names
  • Parameter "years_in_company" - list of ids by time in current company
  • Parameter "years_in_position" - list of ids by time in current position
  • Parameter "linkedin_filter_link" - allows you to use pre-built LinkedIn search URLs instead of specifying individual search criteria
Time ranges for "years_in_company" & "years_in_position":
  1. “Less than 1 year”
  2. “1 to 2 years”
  3. “3 to 5 years”
  4. “6 to 10 years”
  5. “More than 10 years”
The linkedin_filter_link parameter allows you to use a pre-built LinkedIn search URL instead of manually specifying individual search criteria. This is particularly useful when you have complex search filters already configured in LinkedIn.

Supported LinkedIn URLs:

  • Sales Navigator People Search: https://www.linkedin.com/sales/search/people?query=...
  • Regular LinkedIn People Search: https://www.linkedin.com/search/results/people/?keywords=...
#How it works :
  1. Create your desired search in LinkedIn (Sales Navigator or regular search)
  2. Copy the URL from the browser address bar
  3. Use this URL as the linkedin_filter_link parameter
  4. The API will extract and apply the search filters from your URL

Usage Example:

Important Notes:

  • When using linkedin_filter_link, you don’t need to specify other filter parameters (locations, company_name, personas, etc.)
  • Maximum limit when using linkedin_filter_link is 2400 results
  • The URL must contain valid query parameters that can be parsed
  • Both Sales Navigator and regular LinkedIn search URLs are supported

Search by Company Name

You can search for leads by specifying the company name directly:
  • You must specify exactly one of: company_id, company_link, or company_name
  • The API will automatically find the LinkedIn company profile based on the provided information
  • If no exact company match is found, the search may return an error or empty results

Search by Lead Criteria Only

For lead searches based purely on lead parameters without targeting a specific company, use the without_company parameter:

How Lead Criteria Search Works:

  1. Searches for leads based only on their individual characteristics (job titles, locations, experience, etc.)
  2. Does not require specifying any company information (company_id, company_link, or company_name)
  3. Useful for finding leads across all companies that match specific criteria
  4. Higher limit of 2400 results available
  5. May have usage restrictions based on your account plan
  • without_company: true removes the requirement to specify company information
  • Search is performed based entirely on lead parameters: personas, locations, seniority levels, etc.
  • Maximum limit of 2400 results when using this mode
  • May have daily usage limits depending on your subscription
  • Cannot be used together with company_id, company_link, or company_name
  • Ideal for broad prospecting across multiple companies based on lead profiles

Authorizations

Authorization
string
header
required

Use the required Token prefix. Example: Authorization: Token xxxxxxxxx

Body

application/json

Use 'company_link' or 'company_id'. One of them is required

company_id
integer

Optional.

locations
string[]
personas
((string | string[])[])[]
Minimum array length: 4
limit_by
integer
exclude_names
string[]
exclude_ids
string[]

Optional, list of sales_id values to exclude from results.

filter_empty_vars
string[]
changed_jobs
boolean

Optional, flag to specify if jobs have changed.

posted_on_linkedin
boolean

Optional, flag to specify if posted on LinkedIn.

mentioned_in_news
boolean

Optional, flag to specify if mentioned in news.

lead_industries
string[]

Optional, list of industries.

company_locations
string[]

Optional, company locations.

company_headcounts
string[]

Optional, company headcounts.

company_types
string[]

Optional, company types.

past_company_names
string[]

Optional, list of past company names.

years_in_company
integer[]

Optional, number of years in a company.

years_in_position
integer[]

Optional, number of years in the position.

groups
integer[]

Optional, list of group IDs.

schools
integer[]

Optional, list of school IDs.

Optional, pre-built LinkedIn search URL (Sales Navigator or regular search) containing search filters.

without_company
boolean

Optional, set to true to search leads across all companies without company restriction.

Response

200 - application/json

200 / 200 (Leads not found)

amount
number
Example:

-1

leads
object[]
Example:
results_count
string
Example:

"within limit"

status
string
Example:

"No leads match with input criteria"