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.

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/search

    A role title or hiring keyword, optionally scoped to a location.

    JobCardListResponse

    You are discovering roles across companies — recruiting research, market scans, and job board ingestion.

  • Get job details by URL

    GET/api/v2/jobs/detail

    A full public /jobs/view/<job-id>/ URL.

    JobDetailResponse

    You already hold a job posting and need its description, employment type, and job state.

  • Get job search filter values

    GET/api/v2/jobs/search/filters

    The same keywords and location context you plan to search.

    FilterListResponse

    You need real filter parameter names and values before running an advanced search.

  • Get jobs posted by a company

    GET/api/v2/companies/{universal_name}/jobs

    A company page slug from /company/<universalName>.

    JobCardListResponse

    You 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/count

    The same company page slug.

    CompanyJobsCountResponse

    You 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

  1. Discover filters. Call /api/v2/jobs/search/filters with the same keywords and location context you plan to search.
  2. Read parameter names. Use each filter item's parameterName to identify the matching /api/v2/jobs/search query parameter.
  3. Copy filter values. Copy secondaryFilterValues[].value into the search request. Values can be comma-separated or repeated where documented.
  4. 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 fields
jobPostingUrn
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 fields
company
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 fields
listedAt
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 fields
employmentType
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 Playground

The response envelope

  • success
  • data
  • pagination
  • meta

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

GET/api/v2/jobs/searchbash
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

Synthetic job search response

Response200application/jsonjson
{  "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.

  1. Public job input

    A job keyword, a location, a company page slug, or a public job posting URL.

  2. Documented jobs endpoint

    A REST GET call authenticated with an X-API-Key header from your server-side integration layer.

  3. Structured job record

    Job cards from a search, or a full job detail record when you look a posting up by URL.

  4. v2 response envelope

    success, data, pagination, and meta on every jobs route, so one parser covers all five endpoints.

  5. Your normalized schema

    Map the documented fields onto the job, company, and location columns your systems already use.

  6. 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

    1. keywords + location
    2. jobs/search
    3. jobs/detail
    4. talent research workflow
  • Account enrichment

    1. company slug
    2. companies/{universal_name}/jobs
    3. jobs/count
    4. CRM account hiring fields
  • Sales intelligence

    1. target account list
    2. company open jobs count
    3. expansion and demand signals
  • Warehouse analytics

    1. jobs/search/filters
    2. job cards
    3. normalized rows
    4. 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

  1. Use the REST GET endpoints documented in openapi.json.
  2. Authenticate with X-API-Key from server-side code only, never from browser bundles.
  3. Validate keywords, URLs, company slugs, offsets, limits, and filter values before sending requests.
  4. Handle 400, 401, 404, 409, 422, 429, 502, and 503 response states.
  5. Use pagination.nextOffset exactly when a list response reports hasMore=true.
  6. Treat null fields and partial job details as normal availability states rather than failures.
  7. 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 questions

What 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 questions

Can 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 questions

What 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 reference

Start 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