LinkedIn Jobs API
LinkedIn Jobs API for public job posting data
Search public LinkedIn job posting data through EnvoAPI and return structured job titles, company context, locations, posting dates, employment and workplace types, descriptions, and hiring signals through documented v2 jobs endpoints.
100 free credits · No credit card required
EnvoAPI does not post jobs to LinkedIn. It helps teams retrieve structured public job posting data for enrichment, research, recruiting intelligence, and hiring signal workflows.
- 47API endpoints
- <1.8sAvg response time
- 99.95%Uptime · last 90 days
What you work with
- Job search
- Job detail lookup
- Filter discovery
- Company hiring signals
- v2 JSON response
- Developer docs
Use cases
Job posting data use cases
Track active jobs, enrich accounts, support recruiting research, analyze hiring trends, and connect public job data into B2B workflows at scale.
Recruiting intelligence
Track open roles, job titles, locations, employment types, and public hiring demand across the companies your team follows.
Recruitment platforms
Connect structured job data into job boards, matching tools, talent products, and internal recruiter workflows.
Sales intelligence
Use new roles and active jobs as account-level expansion or buying-intent signals.
Account enrichment
Add hiring activity to CRM records, company profiles, and scoring workflows.
Market research
Analyze job trends by company, role, location, workplace type, and employment type.
For broader enrichment workflows, see EnvoAPI's Data Enrichment API.
Overview
Jobs endpoints for search, detail, filters, and company hiring
Every jobs endpoint is a REST GET call authenticated with X-API-Key and answers with the same v2 JSON envelope, so a field mapping built against one route survives switching to another.
Search jobs by keyword and location
GET
/api/v2/jobs/searchA role title or hiring keyword, optionally scoped to a location.
JobCardListResponseYou are discovering roles across companies — recruiting research, market scans, and job board ingestion.
Get job details by URL
GET
/api/v2/jobs/detailA full public /jobs/view/<job-id>/ URL.
JobDetailResponseYou already hold a job posting and need its description, employment type, and job state.
Get job search filter values
GET
/api/v2/jobs/search/filtersThe same keywords and location context you plan to search.
FilterListResponseYou need real filter parameter names and values before running an advanced search.
Get jobs posted by a company
GET
/api/v2/companies/{universal_name}/jobsA company page slug from /company/<universalName>.
JobCardListResponseYou are enriching an account and want the roles that company is hiring for.
Get company open jobs count
GET
/api/v2/companies/{universal_name}/jobs/countThe same company page slug.
CompanyJobsCountResponseYou want one hiring-volume number per account for scoring and prioritisation.
5 routes, one response contract. Search discovers roles, detail resolves one posting, filters supply real parameter values, and the two company routes answer hiring volume for an account.Browse the API reference
Inputs
Accepted inputs for job search and lookup
Send job keywords, role titles, locations, company page slugs, or a public job URL to retrieve structured job posting data. Job search requires keywords; job detail lookup requires a public job url.
Accepted input
- Job keyword
software engineer- Location text
Singapore- Location ID
geo_id from /api/v2/jobs/search/filters- Company filter
company from /api/v2/jobs/search/filters- Public job URL
https://www.linkedin.com/jobs/view/1000000000/- Company page slug
northstar-systems
Use a public job URL or a company page slug when you have one: both resolve exactly, which makes record mapping and downstream deduplication easier than keyword matching alone.
Query parameters
keywordsstringRequired- Job search text such as a role title or hiring category.
/api/v2/jobs/search locationstringOptional- Free-text job location. Use geo_id when combining location with advanced filters.
/api/v2/jobs/search geo_idstringOptional- LinkedIn geo ID found through location search or job filter discovery.
/api/v2/jobs/search company / companiesstringOptional- Company ID filter values discovered through the job filters endpoint.
/api/v2/jobs/search jobType, experience, workplaceType, timePostedRange, sortBystringOptional- Documented filter parameters. Dynamic values should come from /api/v2/jobs/search/filters.
/api/v2/jobs/search urlstringRequired- Full public /jobs/view/<job-id>/ URL used for job detail lookup.
/api/v2/jobs/detail universal_namepathRequired- Company page slug from /company/<universalName>, used for company jobs and open job count.
/api/v2/companies/{universal_name}/jobs offset / limitintegerOptional- Use pagination.nextOffset from list responses as the next offset when hasMore is true.
/api/v2/jobs/search
Discovering filter values
- Discover filters. Call /api/v2/jobs/search/filters with the same keywords and location context you plan to search.
- Read parameter names. Use each filter item's parameterName to identify the matching /api/v2/jobs/search query parameter.
- Copy filter values. Copy secondaryFilterValues[].value into the search request. Values can be comma-separated or repeated where documented.
- Paginate results. Keep the same search inputs and pass pagination.nextOffset as offset while hasMore is true.
Schema
Returned job posting data fields
Job titles, company context, locations, job URLs, posting dates, employment and workplace types, job state, and descriptions when available. 13 documented fields, filed by the part of the record they belong to, ready to map into recruiting tools, CRMs, and data systems.
Job identity
3 fieldsjobPostingUrn- Job posting URN returned by the job card and job detail responses, useful as a stable key.
title- Public job title from the job posting.
jobUrl- Public job posting URL, usable directly as a job detail lookup input.
Company and location
3 fieldscompany- Company object, typically including the company name and universalName slug when available.
location- Structured location object or location label, including remote labels when returned.
workplaceType- Remote, hybrid, on-site, or another workplace label when returned.
Posting signals
4 fieldslistedAt- Listing timestamp on job cards, in milliseconds since epoch.
postedOnText- Public posting-age text such as “Posted 5 days ago” when available.
postedAt- Posting timestamp on the job detail response.
jobState- Job state such as LISTED, exposed by the job detail endpoint.
Detail body and hiring volume
3 fieldsemploymentType- Employment type such as full-time, contract, or internship when returned.
description- Public job description text returned by the job detail endpoint.
count- Open job count for a company page slug, returned by the company jobs count endpoint.
Returned fields vary by endpoint, input type, and public data availability. The current OpenAPI contract does not expose guaranteed salary_min, salary_max, apply_url, application_flow, seniority_level, or normalized_location fields in the jobs response schemas — treat missing fields as normal availability states rather than failures.
Example call
Example API request and JSON response.
Call a jobs endpoint with your API key, send keywords and a location or a public job URL, and receive structured JSON ready for enrichment, recruiting, or internal tools. Run production calls from a server-side integration layer so the API key stays out of browser code.
Try it in the PlaygroundThe response envelope
successdatapaginationmeta
List routes carry pagination; single-record detail responses return it as null. Paginate a search by holding the same inputs and passing pagination.nextOffset as offset while hasMore is true.
Request
curl -G "https://api.envoapi.com/api/v2/jobs/search" \ -H "X-API-Key: $ENVO_API_KEY" \ --data-urlencode "keywords=software engineer" \ --data-urlencode "location=Singapore" \ --data-urlencode "limit=10"Response
{ "success": true, "data": { "items": [ { "title": "Senior software engineer", "company": { "name": "Northstar Systems", "universalName": "northstar-systems" }, "location": { "name": "Singapore (Hybrid)" }, "workplaceType": "Hybrid", "listedAt": 1782864000000, "postedOnText": "Posted 5 days ago", "jobUrl": "https://www.linkedin.com/jobs/view/1000000000/" } ], "count": 1, "total": null }, "pagination": { "offset": 0, "limit": 10, "returned": 1, "total": null, "hasMore": false, "nextOffset": null, "cursor": null }, "meta": { "operation": "search_v2_jobs", "input": { "keywords": "software engineer", "location": "Singapore", "limit": 10 }, "cache": { "hit": false }, "note": "Synthetic example for public documentation." }}Data structure
Job posting data structure
How public job posting information is normalized into clean output fields for enrichment, analytics, recruitment platforms, job boards, and CRM integrations.
Public job input
A job keyword, a location, a company page slug, or a public job posting URL.
Documented jobs endpoint
A REST GET call authenticated with an X-API-Key header from your server-side integration layer.
Structured job record
Job cards from a search, or a full job detail record when you look a posting up by URL.
v2 response envelope
success, data, pagination, and meta on every jobs route, so one parser covers all five endpoints.
Your normalized schema
Map the documented fields onto the job, company, and location columns your systems already use.
Downstream workflow
CRM, recruitment platform, job board, warehouse, or AI workflow.
Duplicate or reposted jobs can appear across multiple cities, job pages, company pages, and external apply flows. Use jobPostingUrn, jobUrl, company, location, and the posting-signal fields to support review and deduplication in your own workflow.
EnvoAPI is a third-party public professional data API and is not an official LinkedIn product. Review applicable laws, LinkedIn's terms, privacy obligations, and internal compliance standards before scaling.
Workflows
Hiring signal and enrichment workflow
Connect EnvoAPI job responses into CRM, recruiting, RevOps, market research, warehouse, and AI workflows to detect hiring demand, new roles, duplicates, and market movement.
Recruiting intelligence
- keywords + location
- jobs/search
- jobs/detail
- talent research workflow
Account enrichment
- company slug
- companies/{universal_name}/jobs
- jobs/count
- CRM account hiring fields
Sales intelligence
- target account list
- company open jobs count
- expansion and demand signals
Warehouse analytics
- jobs/search/filters
- job cards
- normalized rows
- warehouse or BI model
Common workflow fields
- Job title
- Company name
- Job URL
- Location
- Posted date or posting age
- Employment type
- Workplace type
- Job state
- Job description
- Company open job count
Use public job posting data to identify which companies are hiring, what roles they are expanding, which markets are active, and where account-level demand may be increasing. For company-level enrichment see the LinkedIn Company Data API; for people-level enrichment see the LinkedIn Profile API.
Developers
Developer implementation notes
Treat job responses like the rest of EnvoAPI's v2 surface: REST GET endpoints, API key authentication, a JSON envelope, documented error handling, and an output schema you can map once. Validate inputs, send the key from server-side code, and parse the envelope the same way on every route.
Implementation notes
- Use the REST GET endpoints documented in openapi.json.
- Authenticate with X-API-Key from server-side code only, never from browser bundles.
- Validate keywords, URLs, company slugs, offsets, limits, and filter values before sending requests.
- Handle 400, 401, 404, 409, 422, 429, 502, and 503 response states.
- Use pagination.nextOffset exactly when a list response reports hasMore=true.
- Treat null fields and partial job details as normal availability states rather than failures.
- Store only the job and company fields your workflow needs.
Compliance
Responsible public data use
EnvoAPI is not an official LinkedIn API. The jobs endpoints are designed to help teams structure available public job posting information — not to access private, restricted, or non-public job data.
Usage boundaries
- Use the jobs endpoints for public professional and company data workflows.
- Do not position EnvoAPI as an official LinkedIn product or partner API.
- Do not describe the endpoints as access to private, restricted, or non-public job data.
- Review applicable laws, platform terms, privacy obligations, and internal compliance standards before scaling.
- Keep retention tied to the workflow: store only the job and company fields you use.
Data availability
Coverage, field depth, and returned sections vary by job posting, endpoint behaviour, source availability, rate limits, and plan. Job listings also expire: use jobState and the posting-signal fields to decide whether a record is still current before acting on it.
For job posting, applicant management, Ads, campaign creation, or Marketing API use cases, review official LinkedIn products and partner access requirements.
FAQ
FAQs about the LinkedIn Jobs API
Quick answers about public job data, accepted inputs, returned fields, job lookup, duplicate jobs, salary details, API access, and responsible use before implementation.
The endpoints
4 questionsWhat is a LinkedIn Jobs API?
A LinkedIn Jobs API helps developers work with structured job-related data through API requests, such as public job titles, company context, locations, job URLs, posting signals, employment type, workplace type, and descriptions when available.
What can I use EnvoAPI’s jobs endpoints for?
Use them for recruiting intelligence, recruitment platforms, job board products, hiring signal detection, sales intelligence, account enrichment, market research, and internal B2B data workflows.
Does EnvoAPI post jobs to LinkedIn?
No. EnvoAPI does not post jobs to LinkedIn. It provides documented endpoints for retrieving structured public job posting data for enrichment, recruiting intelligence, research, and hiring signal workflows.
Is EnvoAPI an official LinkedIn API?
No. EnvoAPI is a third-party public professional data API and is not an official LinkedIn product.
Inputs and lookup
3 questionsCan I search jobs by company, location, or job title?
Yes. The job search endpoint requires keywords and supports optional location, geo_id, company filters, and other documented job filters. Dynamic filter values should be discovered through the job search filters endpoint.
Can I look up a job by public job URL?
Yes. The job detail endpoint accepts a required url query parameter for a full public /jobs/view/<job-id>/ URL.
Does the API support job ID lookup?
The current OpenAPI contract documents job search by keywords and job detail lookup by public job URL. It does not expose a standalone job ID lookup endpoint.
Returned data
3 questionsWhat fields can the jobs endpoints return?
The current schemas include fields such as jobPostingUrn, title, company, location, workplaceType, listedAt, postedOnText, jobUrl, jobState, employmentType, description, and postedAt when available.
Does the endpoint return salary information?
The current OpenAPI contract includes salary as a job search filter parameter, but salary_min and salary_max are not guaranteed response schema fields. Returned fields may vary by endpoint behaviour and public data availability.
Can EnvoAPI help with duplicate jobs?
EnvoAPI can return structured fields that support downstream deduplication, such as jobPostingUrn, jobUrl, title, company, location, and posting signals when available. Deduplication rules should live in your own workflow.
10 questions filed. Endpoint-level parameters, response schemas, pagination, and error states are already written down.
Review the endpoint referenceStart building
Start building with job posting data
Access structured job posting data from public job keywords, companies, locations, or job URLs through EnvoAPI's developer-friendly endpoints — for enrichment workflows, recruiting intelligence, hiring signals, and market analysis.
100 free credits · No credit card required · 5 jobs endpoints