LinkedIn Jobs Scraper - Search, Filter & Detail Extraction
Pricing
from $0.09 / 1,000 jobs
LinkedIn Jobs Scraper - Search, Filter & Detail Extraction
π₯ ~$0.1/1K jobs π₯ Scrape LinkedIn job listings via the public guest API. Search with filters (job type, experience, remote, salary), fetch full descriptions and criteria. No login required.
Pricing
from $0.09 / 1,000 jobs
Rating
0.0
(0)
Developer
Kai
Maintained by CommunityActor stats
1
Bookmarked
689
Total users
199
Monthly active users
19 days ago
Last modified
Categories
Share
LinkedIn Jobs Scraper
Collect structured job listings for monitoring, research, and analysis. Search by keyword, browse openings from one company, or fetch known job IDs. Optional enrichment adds descriptions, complete published criteria, compensation context, benefits, application details, recruiter information, and related roles.
Quick start
Use keywords, companyId, or jobIds. For backward-compatible combined
inputs, jobIds takes precedence, then companyId, then keywords.
After the run finishes, open the default Dataset to view or export one item per
job.
Search by keyword
{"keywords": "software engineer","location": "Stockholm","maxJobs": 25}
Search with filters
{"keywords": "data scientist","location": "United States","maxJobs": 100,"jobType": ["full_time"],"experienceLevel": ["mid_senior", "director"],"workType": ["remote"],"datePosted": "past_week","sortBy": "recent"}
Browse jobs from one company
{"companyId": "1441","maxJobs": 50}
The companyId field is included in enriched job output. You can use that value in a later company search.
Fetch known job IDs
{"jobIds": ["4318512219", "4405220132"]}
Job ID mode includes full details. You can reuse jobId values returned by earlier runs.
Every requested entry produces one result in the same order, so repeated job
IDs remain repeated. includeSimilar and maxSimilarJobs still apply. Search
filters, location, maxJobs, sortBy, and fetchDetails do not change direct
job ID lookups because those jobs always include full details.
Add details and related jobs
{"keywords": "software engineer","location": "Stockholm","maxJobs": 10,"fetchDetails": true,"includeSimilar": true,"maxSimilarJobs": 5}
Input
| Field | Type | Default | Description |
|---|---|---|---|
keywords | string | Search terms. | |
companyId | string | Return jobs from one company. Takes precedence over keywords. | |
jobIds | string[] | Fetch known jobs. Takes precedence over the search modes. | |
location | string | Location used with keyword search. | |
maxJobs | integer | 25 | Maximum search results. Set to 0 for all available results, up to 1,000. |
sortBy | string | relevant | relevant or recent. |
jobType | string[] | full_time, part_time, contract, temporary, volunteer, internship, or other. | |
experienceLevel | string[] | internship, entry_level, associate, mid_senior, director, or executive. | |
workType | string[] | on_site, remote, or hybrid. | |
datePosted | string | past_24h, past_week, or past_month. | |
salary | string | Minimum salary: 40000, 60000, 80000, 100000, 120000, 140000, 160000, 180000, or 200000. LinkedIn can filter using unpublished salary estimates, so returned jobs do not always expose salary fields. | |
easyApplyOnly | boolean | false | Return only Easy Apply jobs. |
fetchDetails | boolean | false | Add descriptions, complete published criteria, compensation context, benefits, application details, recruiter information, and related searches. |
includeSimilar | boolean | false | Add related jobs to each result. |
maxSimilarJobs | integer | 25 | Maximum related jobs per result. Set to 0 for all available related jobs, up to 1,000. |
proxyConfiguration | object | {"useApifyProxy":true} | Uses Apify Proxy by default; supply settings to customize or disable proxying. |
Blank mode values and an empty jobIds list are treated as no work and finish
successfully with an empty Dataset. Nonblank strings are sent without trimming.
Unknown root fields are retained for backward compatibility and ignored by the
Actor. Known fields still enforce their documented types, enums, and numeric
bounds.
Output
Each dataset item represents one job. Search fields are always present. Most detail fields are null when detail enrichment is disabled or the listing does not publish that value. In search-only results, applicationMethod is unknown and hasDirectApply is false because job details were not fetched.
This example came from a live Actor run on 2026-07-29 with the following input:
{"keywords": "software engineer","maxJobs": 1,"salary": "40000","datePosted": "past_24h","sortBy": "recent","easyApplyOnly": true,"fetchDetails": true}
The output below uses the values returned by that run unchanged. Long text, media, related data, selected IDs, and compatibility aliases are omitted for readability.
{"jobId": "4438949044","jobSlug": "full-stack-engineer-at-green-key-resources-4438949044","title": "Full Stack Engineer","company": "Green Key Resources","companySlug": "green-key-resources","companyUrl": "https://www.linkedin.com/company/green-key-resources","location": "Tysons Corner, VA","jobUrl": "https://www.linkedin.com/jobs/view/full-stack-engineer-at-green-key-resources-4438949044","position": 1,"postedDate": "2026-07-28","postedTimeAgo": "14 hours ago","isNew": true,"salary": null,"badge": "Actively Hiring +6 benefits","hiringSignal": "actively_hiring","benefitsSummary": "Actively Hiring +6 benefits","criteria": {"Seniority level": "Mid-Senior level","Employment type": "Full-time","Job function": "Information Technology","Industries": "Software Development"},"experienceLevel": "Mid-Senior level","employmentType": "Full-time","jobFunction": "Information Technology","industries": "Software Development","applicants": "Over 200 applicants","applicantsCategory": "over_200","compensationSalary": "$100,000.00/yr - $170,000.00/yr","compensationHeading": "Green Key Resources provided pay range","compensationType": "Base pay range","compensationDescription": "This range is provided by Green Key Resources. Your actual pay will be based on your skills and experience β talk with your recruiter to learn more.","featuredBenefits": ["Medical insurance","Vision insurance","Dental insurance","401(k)","Paid paternity leave","Commuter benefits"],"featuredBenefitsSource": "Inferred from the description for this job","applicationMethod": "linkedin","hasDirectApply": true,"closedNotice": null,"companyId": "90639","similarJobs": null,"scrapedAt": "2026-07-29T13:25:04.277Z"}
Field groups
| Group | Fields |
|---|---|
| Identity | jobId, jobSlug, title, company, companyId, companySlug |
| Links and media | jobUrl, companyUrl, companyLogoUrl |
| Search metadata | location, position, postedDate, postedTimeAgo, isNew, salary, badge, hiringSignal, benefitsSummary |
| Job details | description, descriptionHtml, criteria, experienceLevel, employmentType, jobFunction, industries, applicants, applicantsCategory |
| Compensation and benefits | compensationSalary, compensationHeading, compensationType, compensationDescription, featuredBenefits, featuredBenefitsSource |
| Application | applicationMethod, closedNotice |
| Related data | similarJobs, peopleAlsoViewed, similarSearches, relatedSearches |
| Other details | searchGeoId, industryIds, titleId, ogTitle, referralMultiplier, recruiter, scrapedAt |
Important field semantics
| Field | Meaning |
|---|---|
position | Position on the returned search page. It is not a global rank and can repeat across pages. |
badge | The complete display label shown with a search card. hiringSignal is actively_hiring, early_applicant, or null for recognized badge labels; benefitsSummary preserves the full label for recognized benefit labels. |
criteria | Every published job-criteria label and value. The four convenience fields can be null when a listing uses different labels. |
applicants | Published display text. applicantsCategory is over_200, first_25, or null; exact numeric counts remain in applicants. |
salary | Pay text shown in a search result. Detailed pay information, when published, is returned in the compensation* fields. |
compensation* | Published display text and context, not a currency-normalized salary model. |
applicationMethod | Whether the visible apply action is LinkedIn-hosted (linkedin), leads to an employer site (external), or cannot be determined (unknown). Search-only results use unknown. |
closedNotice | An explicit closure message when one is published. A null value does not prove that applications are open. |
searchGeoId | Search-page context returned with the detail page. It is not the job's location ID. |
referralMultiplier | A published referral callout such as 2x; it is display text, not an independently calculated probability. |
similarJobs | Related listings requested with includeSimilar. The current job and duplicate IDs are removed. peopleAlsoViewed, similarSearches, and relatedSearches are separate recommendations returned with job details. |
Similar job output
The selected similarJobs value below came from one live Dataset record on
2026-07-29. Its values are unchanged. Other nested fields are omitted.
{"similarJobs": [{"jobId": "4405220132","title": "Software Engineer - Backend","company": "Helsing","location": "Stockholm, Stockholm County, Sweden","salary": null,"jobUrl": "https://se.linkedin.com/jobs/view/software-engineer-backend-at-helsing-4405220132"},{"jobId": "4392435158","title": "Software Engineers","company": "MSAB","location": "Stockholm, Stockholm County, Sweden","salary": null,"jobUrl": "https://se.linkedin.com/jobs/view/software-engineers-at-msab-4392435158"}]}
Compatibility fields
Existing 0.x fields remain available for current integrations. Prefer the accurately named replacements in new code.
| Compatibility field | Preferred field |
|---|---|
benefitsCount | benefitsSummary |
applicantsStatus | applicantsCategory |
compensationProvider | compensationHeading |
hasDirectApply | applicationMethod === "linkedin" |
geoId | searchGeoId |
Run behavior
- Keyword and company searches can return zero results without failing.
- Missing or blank modes finish successfully with zero results and do not make upstream requests.
- If a later search page fails after jobs were acquired, the run saves the acquired jobs and finishes successfully. A first-page acquisition failure still fails the run.
- A failed optional detail lookup leaves the valid search fields in the Dataset and writes a warning to the run log.
- A failed related-job lookup keeps any Similar jobs already returned with the job details; otherwise
similarJobsisnull. The job is still saved and the run log includes a warning. - Job ID mode preserves one item per requested nonblank ID. An unavailable ID remains as a placeholder with its requested
jobId, canonical URL, and unavailable detail fields left empty ornull. maxSimilarJobslimits the final combined list for each result.sortBycontrols keyword and company result order. Direct job ID results follow the full requested order, including repetitions.- Unknown input fields are accepted for backward compatibility. Invalid values for known typed fields fail before jobs are collected.
- Empty
apifyProxyGroups,proxyUrls, andtieredProxyUrlsarrays are omitted before proxy setup so saved Console defaults cannot crash startup. - Search classifications and detailed job criteria can differ when a listing's metadata changes.
- Source availability varies by location and listing status. Removed or restricted jobs may not be available.
- Search results are capped at 1,000 per query. Use narrower filters when you need broader coverage.
Data handling
Job listings are public, but descriptions and recruiter fields can contain names, contact details, and other personal data. Collect only what you need, set an appropriate retention period, and use the data in line with applicable law and the source platform's terms. Do not use the Actor for harassment or unsolicited bulk outreach.
descriptionHtml contains source-provided markup. Sanitize it before rendering it in a browser or another HTML-capable client.