
Hiring Manager API
Pricing
$25.00 / 1,000 leads

Hiring Manager API
High-quality leads from global job postings! Every month: Over 900k jobs per month with hiring managers' LinkedIn profiles & Over 100k jobs with hiring manager email addresses, directly from the job description.
5.0 (1)
Pricing
$25.00 / 1,000 leads
0
Total users
5
Monthly users
5
Runs succeeded
>99%
Last modified
4 days ago
The perfect actor for applications requiring high quality job leads, every week, day, or hour!
High Quality Leads from Global Job Postings
Every month:
- Over 900,000 jobs per month with hiring manager LinkedIn profiles
- Over 100,000 jobs with hiring manager email addresses, extracted directly from the job description
That's not all:
- New leads are added every hour!
- No guess work with external databases or applications like Apollo, our leads come directly from the job
- We use an LLM to filter out generic email addresses, our API returns personal email addresses 99.9% of the time
- No duplicates, this actor will only return the same address/profile once per week
- Optionally remove recruitment agencies from the results
The maximum number of jobs per run is 1,000. If you wish to go over this number, please reach out to us!
Technical Details
-
This API calls a database that includes ATS (company career sites) and job board jobs posted during the last 7 days.
-
Each lead contains an email address + name, or a LinkedIn profile + URL and Title.
-
Jobs are ordered on 'date_posted' ascending. Resulting in the most recent jobs being first in the array.
-
We index over 105,000 career sites (35 ATS platforms) for high quality direct leads.
-
You may choose a time range using the 'Time Range' parameter. Please note that there are slight differences between the ranges:
1h: Includes jobs that have been indexed by our systems during the last hour
24h: Includes jobs that have been indexed by our systems during the last 24 hours
7d: Includes jobs that have been posted during the last 7 days
-
The job data is returned in our APIs with a one hour delay. For example, if a job is posted at 06:00 UTC, it will appear between 07:00 and 08:00 UTC
-
BETA Feature. We extract useful job details from the description with an LLM. We are currently enriching over 99.9% of all jobs. Please note that our enrichment is a simple one-shot prompt on each job description, so there might be some errors. AI enrichment is applied on all ATS jobs, and only on Tech and Product job board jobs.
FAQ
Wait, this isn't a scraper?
Technically, no, or yes?
We scrape all jobs in the backend, and you're accessing our database with scraped jobs with a small delay. This is a much more reliable system then scraping LinkedIn directly. This also allows us to enrich and derive data before sharing it with you, adding more value per job!
Can I see how many jobs will be returned for my query
Not at the moment, please test with the free plan or create an issue and we'll have a look for you! Make sure to include all parameters.
How can I retrieve a XML with the jobs from my latest run?
- Follow the documentation to create a saved task: https://docs.apify.com/platform/actors/running/tasks
- Create a schedule for the task: https://docs.apify.com/platform/schedules
- Copy the following endpoint to access the latest successful run from your scheduled task: Replace task-name with the the lower case username/task combination, there's a copy paste button on the task page. For example: 'username/task-name' Replace apiKey with your api key. You can find your API key at 'Settings' --> 'API & Integrations'
https://api.apify.com/v2/actor-tasks/*task-name*/runs/last/dataset/items?token=*apiKey*&format=xml&status=SUCCEEDED
You can export in several formats, not just XML. Please see the documentation for more information:
https://docs.apify.com/api/v2/actor-task-runs-last-get
https://docs.apify.com/api/v2/dataset-items-get
Input Parameters
Maximum Jobs
The maximum number of jobs that can be retrieved in a single run. Must be between 10 and 1,000.
Please set the memory to 512 for runs above 2,000 jobs!
Contact Type
If you wish to only include a specific type of lead, you can use one of the following options:
email
: to include jobs with email addresseslinkedin
: to include jobs with linked profiles
To include both types, simply don't include this parameter.
Search Parameters
Our search parameters allow you to include or exclude jobs based on keywords. You may include :_ for prefix matching (e.g., 'Soft:_' will match 'Software', 'Softball', etc.)
Don't use abbreviations for location searches. NY should be New York, US should be United States
WARNING. The description searches are VERY intensive and at risk of time-out. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. If you receive errors while using descriptionSearch or descriptionExclusionSearch, please reach out to us.
titleSearch
: Terms to search in job titlestitleExclusionSearch
: Terms to exclude from job titleslocationSearch
: Terms to search in job locationslocationExclusionSearch
: Terms to exclude from job locationsdescriptionSearch
: Terms to search in job descriptionsdescriptionExclusionSearch
: Terms to exclude from job descriptions
Description Type
Type of description to fetch. Options:
text
: Plain text description
Remote
Filter for remote jobs only. Set to false to include all jobs. This filter is very sensitive and will include jobs that have 'remote' in the title, description, or location.
LinkedIn Filters
-
industryFilter
: Filter by LinkedIn industries. Use exact industry names. Industries containing commas will be automatically wrapped in quotes. You can find a list of industries on our website: https://fantastic.jobs/article/linkedin-industries -
organizationEmployeesLte
: Maximum number of employees in the company. LinkedIn Jobs only, using this filter removes other sources from the results! -
organizationEmployeesGte
: Minimum number of employees in the company. LinkedIn Jobs only, using this filter removes other sources from the results! -
removeAgency
: Filter out recruitment agencies, job boards and other low quality sources
AI Filters
-
aiWorkArrangementFilter
: BETA Feature: Filter by work arrangement. Remote OK = remote with an office available. Remote Solely = remote with no office available. Include both to include all remote jobs. AI enrichment is applied on all ATS jobs, and only on Tech and Product job board jobs. Available options:On-site
,Hybrid
,Remote OK
,Remote Solely
-
aiHasSalary
: BETA Feature: Filter for jobs with salary information only. Set to false to include all jobs. Results include jobs that have either an AI enriched salary or a raw salary (discovered in the job posting schema). AI enrichment is applied on all ATS jobs, and only on Tech and Product job board jobs. -
aiExperienceLevelFilter
: BETA Feature: Filter by years of experience. AI enrichment is applied on all ATS jobs, and only on Tech and Product job board jobs. Available options:0-2
,2-5
,5-10
,10+
-
aiVisaSponsorshipFilter
: BETA Feature: Filter for jobs offering visa sponsorship only. Set to false to include all jobs. AI enrichment is applied on all ATS jobs, and only on Tech and Product job board jobs.
Output Schema
Standard Output Fields
Name | Description | Type |
---|---|---|
id | Our internal ID. We don't recommend this for sorting | Int8 |
ai_hiring_manager_name | If present, the hiring manager name | text |
ai_hiring_manager_email_address | If present, the hiring manager's email address | text |
li_hiring_manager_name | name of the recruiter (if present) | text |
li_hiring_manager_title | title of the recruiter (if present) | text |
li_hiring_manager_url | url to the LI profile of the recruiter (if present) | text |
date_posted | Date & Time of posting | timestamptz |
title | Job Title | text |
organization | Name of the hiring organization | text |
locations_derived | Derived location data, which is the raw data matched with a database of locations_raw or location_requirements_raw. This is the field where you search locations on. | text[] [{city, admin (state), country}] |
Additional Output Fields
These fields are available when you select "All fields" in the output
Name | Description | Type |
---|---|---|
organization_url | URL to the organization's LI page | text |
organization_logo | URL to the organization's logo | text |
date_created | Date & Time of indexing in our systems | timestamptz |
date_validthrough | Date & Time of expiration, is null in most cases | timestamptz |
locations_raw | Raw location data, per the Google for Jobs requirements | json[] |
location_type | To identify remote jobs: 'TELECOMMUTE' per the Google for Jobs requirements | text |
location_requirements_raw | Location requirement to accompany remote (TELECOMMUTE) jobs per the Google for Jobs requirements. | json[] |
salary_raw | raw Salary data per the Google for Jobs requirements | json |
employment_type | Types like 'Full Time", "Contract", "Internship" etc. Is an array but most commonly just a single value. | text[] |
url | The URL of the job, can be used to direct traffic to apply for the job | text |
source | in this case 'linkedin' | text |
source_type | in this case 'jobboard' | text |
source_domain | this domain can help you ID the country from where the job was posted. linkedin.com is the US, uk.linkedin.com the uk etc. | text |
description_text | plain text job description - if included | text |
cities_derived | All cities from locations_derived | json[] |
regions_derived | All regions/states/provinces from locations_derived | json[] |
countries_derived | All countries from locations_derived | json[] |
timezones_derived | Timezones derived from locations_derived | json[] |
lats_derived | lats derived from locations_derived | json[] |
lngs_derived | lngs derived from locations_derived | json[] |
remote_derived | jobs flagged as remote, by title, raw location, and the offical google jobs 'TELECOMMUTE' schema | bool |
linkedin_org_employees | the number of employess within the job's company according to LI | int |
linkedin_org_url | url to the company page | text |
linkedin_org_size | the number of employess within the job's company according to the company | text |
linkedin_org_slogan | the company's slogan | text |
linkedin_org_industry | the company's industry. This is a fixed list that the company can choose from, so could be useful for classification. Keep in mind that this is in the language of the company's HQ | text |
linkedin_org_followers | the company's followers on LI | int |
linkedin_org_headquarters | the company's HQ location | text |
linkedin_org_type | the company's type, like 'privately held', 'public', etc | text |
linkedin_org_foundeddate | the company's founded date | text |
linkedin_org_specialties | a comma delimited list of the company's specialites | text[] |
linkedin_org_locations | the full address of the company's locations | text[] |
linkedin_org_description | the description fo the company's linkedin page | text |
linkedin_org_recruitment_agency_derived | If the company is a recruitment agency, true or false. We identify this for each company using an LLM. The accuracy may value and jobboards might be flagged as false. | bool |
These fields are derived from the text with an LLM and might contain mistakes.
Name | Description | Type |
---|---|---|
ai_salary_currency | The salary currency | text |
ai_salary_value | The salary value, if there's a single salary with no salary range | numeric |
ai_salary_minvalue | The salary minimum salary in a range | numeric |
ai_salary_maxvalue | The salary maximum salary in a range | numeric |
ai_salary_unittext | If the salary is per HOUR/DAY/WEEK/MONTH/YEAR | text |
ai_benefits | An array with other non-salary benefits mentioned in the job listing | text[] |
ai_experience_level | years of experience required, one of: 0-2, 2-5, 5-10, or 10+ | text |
ai_work_arrangement | Remote Solely/Remote OK/Hybrid/On-site. Remote solely is remote without an office available, Remote OK is remote with an optional office. | text |
ai_work_arrangement_office_days | when work_arrangement is Hybrid, returns the number of days per week in office | bigint |
ai_remote_location | When remote but only in a certain location, returns the location | text[] |
ai_remote_location_derived | Derived remote location data, which is the raw data (ai_remote_location) matched with a database of locations. This is the same database as the locations_derived field. | text[] |
ai_key_skills | An array of key skills mentioned in the job listing | text[] |
ai_core_responsibilities | A 2-sentence summary of the job's core responsibilities | text |
ai_requirements_summary | A 2-sentence summary of the job's requirements | text |
ai_working_hours | The number of required working hours. Defaults to 40 if not mentioned | bigint |
ai_employment_type | One or more employment types as derived from the job description: FULL_TIME/PART_TIME/CONTRACTOR/TEMPORARY/INTERN/VOLUNTEER/PER_DIEM/OTHER | text[] |
ai_job_language | The language of the job description | text |
ai_visa_sponsorship | Returns true if the job description mentions Visa sponsorship opportunities |