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
492
Total users
142
Monthly active users
6 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
Choose exactly one primary input: keywords, companyId, or jobIds.
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.
Repeated job IDs are fetched once, and results follow the first occurrence of
each requested ID. 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. Use only when companyId and jobIds are absent. | |
companyId | string | Return jobs from one company. Use only when keywords and jobIds are absent. | |
jobIds | string[] | Fetch up to 1,000 known jobs. Use only when keywords and companyId are absent. | |
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. | |
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. |
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.
- 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 omits unavailable IDs. The run fails if none of the requested IDs can be returned with complete details.
maxSimilarJobslimits the final combined list for each result.sortBycontrols keyword and company result order. Direct job ID results follow the first occurrence of each requested ID.- Unknown input fields and invalid values fail before any jobs are collected.
- 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.