LinkedIn Jobs API
Search live LinkedIn job postings and pull full job details — title, company, location, salary, seniority, employment type and the complete description — as clean JSON. No LinkedIn login, no cookies, no headless browser to babysit.
LinkedIn is where the jobs are, but it has no public jobs API and aggressively blocks scrapers. This API does the hard part for you: it queries LinkedIn's public job listings through residential infrastructure with rotating browser fingerprints, parses the results, and hands you structured JSON. Two endpoints cover the whole workflow — search to discover, then drill into any listing for the full detail.
Endpoints
GET /search
Find jobs by keyword and location.
| Param | Required | Notes |
|---|---|---|
keywords |
✅ | Job title, skill, or free-text query (e.g. python engineer) |
location |
✅ | City, state, or country (e.g. remote, New York, United Kingdom) |
page |
— | Page number, default 1 |
limit |
— | Results per page, default & max 25 |
Returns a jobs[] array, each item with job_id, title, company, location, posted_at (ISO 8601) and job_url (a real LinkedIn listing URL).
GET /job/{job_id}
Get the full detail for a specific listing (using a job_id from a search result).
Returns everything from search plus:
description— the full job description as clean textsalary_range— e.g.$120,000 – $160,000/yrwhen posted (extracted from structured fields or the description)seniority_level— e.g.Mid-Senior levelemployment_type— e.g.Full-timeapplicant_count— e.g.142 applicants
Why this API
- No auth headaches. No LinkedIn account, OAuth, session cookies, or browser automation. Make an HTTP call, get JSON.
- Anti-block infrastructure included. Requests route through residential proxies with rotating user agents, so you get results instead of CAPTCHAs and 999 responses — the wall that stops most LinkedIn scraping projects.
- Rich, structured details. Salary, seniority and employment type are parsed out for you, including a smart fallback that extracts salary ranges from the job description when LinkedIn doesn't post a structured field.
- Fast and cached. Search results and job details are cached (1–6h), so repeat queries return instantly and stay within rate limits.
Typical use cases
- Build a job board, aggregator, or niche vertical search over live LinkedIn listings.
- Feed an applicant-tracking or recruiting tool with fresh postings by role and market.
- Power salary-benchmarking and labor-market dashboards.
- Supply an LLM or matching engine with structured job descriptions for resume/job fit scoring.
Good to know
- Both
keywordsandlocationare required on search — passremoteas the location for remote roles. - Up to 25 results per page; use
pageto go deeper. /job/{job_id}follows discovery — pull thejob_idfrom a/searchresult first.- Salary, seniority, applicant count and other detail fields are populated only when LinkedIn exposes them on the posting; missing fields come back as
nullrather than erroring. - Data reflects LinkedIn's public job listings at request time.