LinkedIn Jobs Scraper - Search, Filter & Detail Extraction avatar

LinkedIn Jobs Scraper - Search, Filter & Detail Extraction

Pricing

from $0.09 / 1,000 jobs

Go to Apify Store
LinkedIn Jobs Scraper - Search, Filter & Detail Extraction

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

Kai

Maintained by Community

Actor stats

1

Bookmarked

492

Total users

142

Monthly active users

6 days ago

Last modified

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.

{
"keywords": "software engineer",
"location": "Stockholm",
"maxJobs": 10,
"fetchDetails": true,
"includeSimilar": true,
"maxSimilarJobs": 5
}

Input

FieldTypeDefaultDescription
keywordsstringSearch terms. Use only when companyId and jobIds are absent.
companyIdstringReturn jobs from one company. Use only when keywords and jobIds are absent.
jobIdsstring[]Fetch up to 1,000 known jobs. Use only when keywords and companyId are absent.
locationstringLocation used with keyword search.
maxJobsinteger25Maximum search results. Set to 0 for all available results, up to 1,000.
sortBystringrelevantrelevant or recent.
jobTypestring[]full_time, part_time, contract, temporary, volunteer, internship, or other.
experienceLevelstring[]internship, entry_level, associate, mid_senior, director, or executive.
workTypestring[]on_site, remote, or hybrid.
datePostedstringpast_24h, past_week, or past_month.
salarystringMinimum salary: 40000, 60000, 80000, 100000, 120000, 140000, 160000, 180000, or 200000.
easyApplyOnlybooleanfalseReturn only Easy Apply jobs.
fetchDetailsbooleanfalseAdd descriptions, complete published criteria, compensation context, benefits, application details, recruiter information, and related searches.
includeSimilarbooleanfalseAdd related jobs to each result.
maxSimilarJobsinteger25Maximum related jobs per result. Set to 0 for all available related jobs, up to 1,000.
proxyConfigurationobject{"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

GroupFields
IdentityjobId, jobSlug, title, company, companyId, companySlug
Links and mediajobUrl, companyUrl, companyLogoUrl
Search metadatalocation, position, postedDate, postedTimeAgo, isNew, salary, badge, hiringSignal, benefitsSummary
Job detailsdescription, descriptionHtml, criteria, experienceLevel, employmentType, jobFunction, industries, applicants, applicantsCategory
Compensation and benefitscompensationSalary, compensationHeading, compensationType, compensationDescription, featuredBenefits, featuredBenefitsSource
ApplicationapplicationMethod, closedNotice
Related datasimilarJobs, peopleAlsoViewed, similarSearches, relatedSearches
Other detailssearchGeoId, industryIds, titleId, ogTitle, referralMultiplier, recruiter, scrapedAt

Important field semantics

FieldMeaning
positionPosition on the returned search page. It is not a global rank and can repeat across pages.
badgeThe 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.
criteriaEvery published job-criteria label and value. The four convenience fields can be null when a listing uses different labels.
applicantsPublished display text. applicantsCategory is over_200, first_25, or null; exact numeric counts remain in applicants.
salaryPay 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.
applicationMethodWhether the visible apply action is LinkedIn-hosted (linkedin), leads to an employer site (external), or cannot be determined (unknown). Search-only results use unknown.
closedNoticeAn explicit closure message when one is published. A null value does not prove that applications are open.
searchGeoIdSearch-page context returned with the detail page. It is not the job's location ID.
referralMultiplierA published referral callout such as 2x; it is display text, not an independently calculated probability.
similarJobsRelated 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 fieldPreferred field
benefitsCountbenefitsSummary
applicantsStatusapplicantsCategory
compensationProvidercompensationHeading
hasDirectApplyapplicationMethod === "linkedin"
geoIdsearchGeoId

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 similarJobs is null. 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.
  • maxSimilarJobs limits the final combined list for each result.
  • sortBy controls 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.