Docs / Jobs
list_job_applicants
List who applied to one of your job postings.
This action only reads. It changes nothing, so it is safe to try.
What you give it
| Input | What it is | Where to get it |
|---|---|---|
jobIdneeded | A job id. The job posting id (from list_job_postings). | Run list_job_postings and use jobPostings[].id from its answer.7 more places to get it
|
serviceoptional | One of: CLASSIC, RECRUITER. Which LinkedIn product the job posting belongs to (default CLASSIC). | You write it. |
keywordsoptional | Text, up to 200 characters. Only applicants matching these words. | You write it. |
ratingsoptional | A list (one of: UNRATED, GOOD_FIT, MAYBE, NOT_A_FIT), up to 4. CLASSIC only: only these ratings. | You write it. |
sortByoptional | One of: relevance, alphabetical, newest_first, screening_requirements. RECRUITER only. | You write it. |
includeArchivedoptional | True or false. RECRUITER only: include archived applicants. | You write it. |
yearsOfExperienceoptional | A group of fields. RECRUITER only.What goes inside
| You write it. |
yearsInCompanyoptional | A group of fields. RECRUITER only: years in current company.What goes inside
| You write it. |
yearsInPositionoptional | A group of fields. RECRUITER only: years in current position.What goes inside
| You write it. |
includeDegreeoptional | A search filter id. RECRUITER only: degree ids to include (lookup_search_ids type DEGREE). | run lookup_search_ids with type DEGREE, and use matches[].id from its answer. |
excludeDegreeoptional | A search filter id. RECRUITER only: degree ids to exclude. | run lookup_search_ids with type DEGREE, and use matches[].id from its answer. |
limitoptional | A number, 1 to 100. How many to return (1–100, default 25). | You write it. |
cursoroptional | A cursor. nextCursor from the previous call, to get the next page. Keep the other arguments the same. | The nextCursor from the last answer of list_job_applicants. |
connectionIdoptional | A connection id. Which of your LinkedIn accounts to act from (its id from list_linkedin_accounts). Omit to use your first live one. | Run list_linkedin_accounts and use accounts[].id from its answer.15 more places to get it
|
Call it
curl -X POST https://api.heyreagent.com/v1/actions/list_job_applicants \
-H "Authorization: Bearer YOUR_KEY" \
-H "content-type: application/json" \
-d '{"jobId":"PASTE_JOB_ID_HERE"}'The same call in JavaScript
const response = await fetch("https://api.heyreagent.com/v1/actions/list_job_applicants", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_KEY",
"content-type": "application/json",
},
body: JSON.stringify({
"jobId": "PASTE_JOB_ID_HERE"
}),
});
const answer = await response.json();
console.log(answer);The same call in Python
import requests
response = requests.post(
"https://api.heyreagent.com/v1/actions/list_job_applicants",
headers={"Authorization": "Bearer YOUR_KEY"},
json={
"jobId": "PASTE_JOB_ID_HERE",
},
)
print(response.json())The same call in n8n
Add an HTTP Request node and fill it in like this:
| Method | POST |
| URL | https://api.heyreagent.com/v1/actions/list_job_applicants |
| Send Headers | On. Name Authorization, Value Bearer YOUR_KEY |
| Send Body | On. Body Content Type JSON, Specify Body Using JSON, then paste the body below |
{
"jobId": "PASTE_JOB_ID_HERE"
}Put your own key where it says YOUR_KEY. Put your own value where it says PASTE_…_HERE: the table above says where each one comes from. New here? Start with your first call.
What you get back
When it worked, the answer is { "ok": true, "result": { … } }. Inside result:
returned | number |
nextCursor | A cursor. Other actions take it. |
applicants[].id | A applicant id. Other actions take it. |
applicants[].profileId | string |
applicants[].publicIdentifier | A public identifier. Other actions take it. |
applicants[].publicProfileUrl | A profile link. Other actions take it. |
applicants[].name | string |
applicants[].location | string |
applicants[].headline | string |
applicants[].profilePictureUrl | string |
applicants[].appliedAt | number |
applicants[].rating | UNRATED | GOOD_FIT | MAYBE | NOT_A_FIT |
applicants[].hiringState | string |
applicants[].emailAddress | string |
applicants[].phoneNumber | string |
A field that does not apply to an answer is left out, or is null. There are 25 more fields nested inside these.
When it did not work, the answer is { "ok": false, "error": "…", "message": "…" }. What each error means.
Good to know
- The degree filters work on Recruiter postings only. That their ids come from lookup_search_ids type DEGREE is this tool's own wording; the published definition does not name the source.
- An applicant's profileId is not documented as any kind of id; use publicProfileUrl to reach the person.
In Claude or ChatGPT
Once connected, ask in your own words. The assistant sees this action as a tool with the same name, list_job_applicants, and the same inputs.