Skip to main content
POST
/
leads
/
search
Search leads by job title for a specific company
curl --request POST \
  --url https://app.prontohq.com/api/v2/leads/search \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "company_linkedin_id": "1234567890",
  "job_titles": [
    "Software Engineer",
    "Product Manager"
  ],
  "name": "Software Engineer Search",
  "webhook_url": "https://example.com/webhook",
  "company_linkedin_url": "https://www.linkedin.com/company/pronto",
  "excluded_job_titles": [
    "Intern",
    "Contractor"
  ],
  "persona_id": "1f6b0f5a-2d8e-4c3a-9b8f-1a2b3c4d5e6f",
  "included_locations": [
    "105015875",
    "102221843"
  ],
  "excluded_locations": [
    "103644278"
  ],
  "functions": [
    "13",
    "15"
  ],
  "seniority_levels": [
    "220",
    "300"
  ],
  "streaming": true,
  "custom": {
    "hubspot_id": "134567"
  },
  "limit": 100,
  "scale": true
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "search_name": "<string>",
  "search_url": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "custom": {}
}

Documentation Index

Fetch the complete documentation index at: https://docs.prontohq.com/llms.txt

Use this file to discover all available pages before exploring further.

Find 2x people than with Clay

  • Input : Job titles + Company
  • Output : Live matching people data

Prerequisites

In Pronto

In Clay

A Companies table with at least:
  • Company Name
  • Domain
  • Company LinkedIn URL (or LinkedIn Org ID)
These fields tell Pronto which company to search on LinkedIn.

Step 1 — Create a Webhook Table in Clay

Pronto needs an endpoint to “deliver” the people it finds. We’ll use a Monitor Webhook table.
  1. In Clay, click AddMonitor Webhook
  2. Clay creates a new table with a Webhook column
  3. Click the Webhook columnSourcesPull data from webhook
  4. Copy the Webhook URL
You will paste this URL into Pronto’s API request later.

Step 2 — Add an HTTP API Column to Your Companies Table

  1. Go back to your Companies table
  2. Click Add Column
  3. Choose Add Enrichment
  4. Select HTTP API
This is the column that will call Pronto’s Find People API for each company.

Step 3 — Configure the API Call

Method

POST

Endpoint

https://app.prontohq.com/api/v2/leads/search

Body (JSON)

Paste this JSON and customize it as needed:
{
  "name": "Find people at {{Company Name}}",
  "webhook_url": "PASTE_YOUR_WEBHOOK_URL_HERE",
  "company_linkedin_url": "{{Company Linkedin URL}}",
  "job_titles": [
    "Head of Talent",
    "HR Director",
    "Talent Acquisition Manager"
  ],
  "excluded_job_titles": [
    "Intern"
  ],
  "functions": ["12", "15"],
  "seniority_levels": ["220", "300"],
  "streaming": true,
  "limit": 50
}

Using a saved Persona instead of inlining job titles

If you’ve already defined a Persona in Pronto, you can reference it by persona_id. Pronto will use that persona’s included and excluded job titles automatically — do not pass job_titles or excluded_job_titles alongside persona_id.
{
  "name": "Find people at {{Company Name}}",
  "webhook_url": "PASTE_YOUR_WEBHOOK_URL_HERE",
  "company_linkedin_url": "{{Company Linkedin URL}}",
  "persona_id": "1f6b0f5a-2d8e-4c3a-9b8f-1a2b3c4d5e6f",
  "streaming": true,
  "limit": 50
}
At least one people filter is required. The request must include at least one of job_titles, excluded_job_titles, functions, seniority_levels, included_locations, excluded_locations, or persona_id. Requests with none of these return 400.

Field explanations

  • name: Label used inside Pronto
  • webhook_url: Clay webhook URL (Step 1)
  • company_linkedin_url: Clay variable for the company’s LinkedIn profile
  • job_titles: The personas you want to target. If you pass [*] we will return every person in the company, regardless of their job title.
  • excluded_job_titles: Optional list
  • persona_id (optional): UUID of a Pronto Persona. When provided, job_titles and excluded_job_titles are taken from the persona definition and must not be passed in the request — doing so returns 422. Use this when you want a saved persona to drive the search instead of inlining job titles.
  • included_locations (optional): If used, we will return only leads with matching location. Location ids can be retrieved via this endpoint.
  • excluded_locations (optional): Location IDs to exclude (same ID source as above).
  • functions (optional): Array of LinkedIn function IDs (department / job function). Only the IDs listed in Authorized function IDs are accepted. Multiple values use OR logic.
  • seniority_levels (optional): Array of LinkedIn seniority level IDs. Only the IDs listed in Authorized seniority level IDs are accepted. Multiple values use OR logic.
  • streaming: Sends results to Clay row by row
  • limit: Max number of people to return per company
If functions or seniority_levels is present, it must be a JSON array. Invalid IDs return 422 with a message listing the invalid values and the full set of valid IDs.

Authorized function IDs

IDLabel
1Accounting
2Administrative
3Arts and Design
4Business Development
5Community and Social Services
6Consulting
7Education
8Engineering
9Entrepreneurship
10Finance
11Healthcare Services
12Human Resources
13Information Technology
14Legal
15Marketing
16Media and Communication
17Military and Protective Services
18Operations
19Product Management
20Program and Project Management
21Purchasing
22Quality Assurance
23Real Estate
24Research
25Sales
26Customer Success and Support

Authorized seniority level IDs

IDLabel
100In Training
110Entry Level
120Senior
130Strategic
200Entry Level Manager
210Experienced Manager
220Director
300Vice President
310CXO
320Owner / Partner
Click Save & Don’t Run.
Clay JSON formatting errors? Double-check commas, spacing, or copy our template to fix issues.

Headers

KeyValue
X-API-KEYYour Pronto API key

Step 4 — Run Your First Find People Request

  1. In your Companies table
  2. Go to your new HTTP API column
  3. Click the ▶️ Play button on any company row
Pronto will immediately:
  • query LinkedIn for your persona
  • extract matching profiles
  • stream the results into your Webhook table

Step 5 — View and Use the Results

Go to your Webhook table. You’ll see people appear row by row as Pronto finds them. Click Add Column → search and add:
  • full_name
  • title
  • linkedin_url
  • linkedin_id
  • company_name
  • status
  • rejection_reasons
You now have a live Find People pipeline inside Clay.

FAQ

Does this use my Clay credits?

No, Pronto handles the search, so you don’t use any Clay Find People credits.

Is the data live?

Yes, Pronto searches in real-time using your synced session.

Can I run this at scale?

Yes, You can run it on thousands of companies. Pronto streams results progressively to avoid rate limits.

What if my sync breaks?

Just re-sync your account in Pronto Settings.

Need help?

If you need help customizing your Find people, please book a 15min set up with me : https://zcal.co/mathieu-pronto/enterprise

Want to scale further ?

The scale parameter (boolean, optional) allows you to increase your volume of requests by omitting the following fields:
  • connections_count
  • headline
  • Vanity LinkedIn profile URL (like https://www.linkedin.com/in/mathieu-brun-picard/)
When scale is set to true, you will still receive a LinkedIn profile URL, but it will use the user ID instead of the vanity URL format (like https://linkedin.com/in/ACwAACaX8uYBfAh-5YxmfObz4mVOKYih3zxa-TM).

Authorizations

X-API-KEY
string
header
required

Your API key

Body

application/json

Parameters for lead search by job title

company_linkedin_id
string
required

The LinkedIn ID of the company (required if company_linkedin_url is not provided)

Example:

"1234567890"

job_titles
string[]
required

List of job titles to search for. Cannot be combined with persona_id — pass one or the other.

Example:
["Software Engineer", "Product Manager"]
name
string

Name of the lead search

Example:

"Software Engineer Search"

webhook_url
string

Optional webhook URL to receive results when the search is complete

Example:

"https://example.com/webhook"

company_linkedin_url
string<uri>

The LinkedIn URL of the company (regular or Sales Navigator). Required if company_linkedin_id is not provided)

Example:

"https://www.linkedin.com/company/pronto"

excluded_job_titles
string[]

List of job titles to exclude from the search. Cannot be combined with persona_id — pass one or the other.

Example:
["Intern", "Contractor"]
persona_id
string<uuid>

Optional. UUID of a saved Pronto Persona. When provided, job_titles and excluded_job_titles are derived from the persona and must not be passed in the request — doing so returns 422. The persona must belong to the authenticated user.

Example:

"1f6b0f5a-2d8e-4c3a-9b8f-1a2b3c4d5e6f"

included_locations
string[]

List of Location IDs that were included in the search

Example:
["105015875", "102221843"]
excluded_locations
string[]

List of Location IDs that were excluded from the search

Example:
["103644278"]
functions
enum<string>[]

Optional. Filter by LinkedIn function (job function / department). Each value must be one of the authorized function IDs below. Omit or pass an empty array to not filter by function. Multiple IDs are combined with OR logic.

ID → value: 1 Accounting; 2 Administrative; 3 Arts and Design; 4 Business Development; 5 Community and Social Services; 6 Consulting; 7 Education; 8 Engineering; 9 Entrepreneurship; 10 Finance; 11 Healthcare Services; 12 Human Resources; 13 Information Technology; 14 Legal; 15 Marketing; 16 Media and Communication; 17 Military and Protective Services; 18 Operations; 19 Product Management; 20 Program and Project Management; 21 Purchasing; 22 Quality Assurance; 23 Real Estate; 24 Research; 25 Sales; 26 Customer Success and Support.

Available options:
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26
Example:
["13", "15"]
seniority_levels
enum<string>[]

Optional. Filter by LinkedIn seniority level. Each value must be one of the authorized seniority IDs below. Omit or pass an empty array to not filter by seniority. Multiple IDs are combined with OR logic.

ID → value: 100 In Training; 110 Entry Level; 120 Senior; 130 Strategic; 200 Entry Level Manager; 210 Experienced Manager; 220 Director; 300 Vice President; 310 CXO; 320 Owner / Partner.

Available options:
100,
110,
120,
130,
200,
210,
220,
300,
310,
320
Example:
["220", "300"]
streaming
boolean
default:false

When set to true, leads will be sent individually to the webhook_url as they are found. This is ideal for integration with platforms like Clay that process leads in real-time.

Example:

true

custom
object

Custom fields to include with the lead search that will be returned in the webhook (like crm id, etc.)

Example:
{ "hubspot_id": "134567" }
limit
integer

Optional parameter to limit the number of results returned. If not specified, all matching leads will be returned.

Required range: x >= 1
Example:

100

scale
boolean
default:false

When set to true, increases request volume by omitting the following fields: connections_count, headline, and vanity LinkedIn profile URL. You will still receive a LinkedIn profile URL, but it will use the user ID instead of the vanity URL (e.g., https://www.linkedin.com/in/mathieu-brun-picard/).

Example:

true

Response

Search initiated successfully

id
string<uuid>

The ID of the created lead search

search_name
string

Name of the lead search

search_url
string<uri>

The LinkedIn search URL used for extraction

created_at
string<date-time>

When the search was created

custom
object

Custom attributes included with the search