LinkedIn Jobs Scraper
Pricing
from $0.50 / 1,000 results
LinkedIn Jobs Scraper
Scrape LinkedIn jobs by keyword, location or company, or paste search URLs: full description, salary range, job poster and company profile (website, size, industry, HQ). Filters for date, remote, job type and seniority, plus daily new-job alerts. No login.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Sheshinmcfly
Maintained by CommunityActor stats
1
Bookmarked
9
Total users
2
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Extract public job postings from LinkedIn Jobs by keyword, location (with a distance radius) and company, or simply paste LinkedIn job search URLs with your filters already set. Every job comes with the full description, salary range (when the employer publishes one), seniority, employment type, industries, applicant count, apply type, the job poster when shown, and a complete company profile: website, industry, size, employees on LinkedIn, headquarters, address, year founded, specialties and followers. A built-in only-new-jobs mode makes daily job alerts easy. No login, cookies or API key required.
What data do you get?
| Field | Type | Example |
|---|---|---|
jobId | string | "4465695804" |
title | string | "Software Engineer – AWS" |
company | string | "LocalStack" |
companyUrl | string | "https://www.linkedin.com/company/localstack-cloud" |
location | string | "London, England, United Kingdom" |
postedAt / postedDate | string | "1 month ago" / "2026-09-10" |
salaryText | string | null | "€60,000.00/yr - €90,000.00/yr" |
salaryMin / salaryMax | number | null | 60000 / 90000 |
salaryCurrency / salaryPeriod | string | null | "EUR" / "year" (year, month, week, day, hour) |
seniorityLevel | string | "Mid-Senior level" |
employmentType | string | "Full-time" |
industries | string | "Software Development" |
applicantsCount | number | null | 72 (200 = over 200; null = fewer than 25 so far) |
applicantsText | string | "Over 200 applicants" |
applyType | string | "easyApply" or "external" |
acceptingApplications | boolean | true — false when the job is closed |
insight | string | null | "Actively Hiring", "Be an early applicant" |
jobPosterName / jobPosterTitle / jobPosterProfileUrl | string | null | The recruiter or hiring manager, when the job shows them |
companyWebsite | string | null | "https://localstack.cloud" |
companyIndustry | string | null | "Software Development" |
companySize | string | null | "51-200 employees" |
companyEmployeesOnLinkedIn | number | null | 111 |
companyHeadquarters / companyAddress | string | null | "Zurich" / "Zurich, CH" |
companyType | string | null | "Privately Held", "Public Company" |
companyFoundedYear | number | null | 2010 |
companySpecialties | string | null | "cloud computing, developer tooling, ..." |
companyFollowers | number | null | 36192 |
companyName / companyDescription | string | null | Name and "About" text from the company page |
companyLogo | string | "https://media.licdn.com/dms/image/..." |
description | string | Full text, with paragraphs and bullet points |
descriptionHtml | string | Original formatting (optional) |
position | number | 8 — rank in LinkedIn's search results |
url | string | "https://www.linkedin.com/jobs/view/4465695804/" |
searchUrl | string | The LinkedIn search that found the job |
checkedAt | string | "2026-11-04T04:10:18.517Z" |
The dataset has three ready-made views: Overview, Job details (pay, job poster, description) and Companies.
How to use
- Open the actor and click Try for free
- Enter Keywords (e.g.
software engineer,data analyst) and a Location (e.g.London,New York,Germany— empty = worldwide), or add Companies to get every open job at them - Or paste one or more LinkedIn search URLs: run a search on linkedin.com/jobs, apply any filters, and copy the address from your browser
- Optionally narrow the search: Date posted, Workplace type (remote, hybrid, on-site), Job type, Experience level, Easy Apply only, Fewer than 10 applicants, Distance, Sort by most recent
- Set Max jobs per search (default 50) and click Start
- Download the results as JSON, CSV or Excel
Daily job alerts: turn on Only new jobs, sort by Most recent and schedule the actor. The first run returns the current jobs; every later run returns only jobs that were not returned before.
Need only titles, companies and dates? Turn off Include full job details and Include company details for a run of a few seconds.
Use cases
- Job alerts and job boards — New remote or local openings every day, with salary and company data, using Only new jobs on a schedule
- Recruitment and talent sourcing — See who is hiring for a role, who posted the job, how many people already applied, and whether it takes Easy Apply
- Sales prospecting and lead generation — Companies that are hiring right now, with website, industry, size and headquarters in the same row
- Company hiring tracker — Follow every open job at competitors, clients or target employers
- Salary research — Published pay ranges by role, location and seniority, already split into min, max, currency and period
- Job market analysis — Hiring trends by skill, location, seniority, industry and company size
- Local job boards — Jobs within 5, 10, 25, 50 or 100 miles of a city
- HR and labor research — Datasets with full descriptions for skill and requirement analysis
Input
{"keywords": "software engineer","location": "United States","maxJobs": 100,"datePosted": "past24h","workplaceType": ["remote"],"jobType": ["fullTime"],"experienceLevel": ["midSenior"],"sortBy": "recent","onlyNew": true}
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | string | — | Job title or skills |
location | string | — | City, region or country; empty = worldwide |
companies | array | — | Only jobs from these companies: name as shown on LinkedIn, LinkedIn company URL, or numeric ID |
distanceMiles | string | — | Radius around the location: 5, 10, 25, 50 or 100 miles |
searchUrls | array | — | LinkedIn job search URLs (linkedin.com/jobs/search?...) with their filters; each runs as its own search |
maxJobs | integer | 50 | Maximum jobs per search (up to 1,000) |
datePosted | string | any | any, past24h, pastWeek, pastMonth |
workplaceType | array | all | onSite, remote, hybrid |
jobType | array | all | fullTime, partTime, contract, temporary, internship, volunteer, other |
experienceLevel | array | all | internship, entryLevel, associate, midSenior, director, executive |
easyApplyOnly | boolean | false | Only jobs you can apply to on LinkedIn |
under10Applicants | boolean | false | Only jobs with fewer than 10 applicants |
sortBy | string | relevance | relevance or recent |
onlyNew | boolean | false | Only jobs not returned by a previous run of the same search |
includeDetails | boolean | true | Description, salary, seniority, employment type, industries, applicants, apply type and job poster |
includeCompanyDetails | boolean | false | Company profile on every job, when LinkedIn shows company pages publicly (off by default while it does not) |
includeDescriptionHtml | boolean | false | Also return the description as HTML |
proxyConfiguration | object | Apify proxy | The default works for most searches |
You can combine keywords/location and search URLs in one run: a job found by several searches is returned once.
Example output
{"jobId": "4465695804","title": "Software Engineer – AWS","company": "LocalStack","companyUrl": "https://www.linkedin.com/company/localstack-cloud","location": "London, England, United Kingdom","postedAt": "1 month ago","postedDate": "2026-09-10","salaryText": "€60,000.00/yr - €90,000.00/yr","salaryMin": 60000,"salaryMax": 90000,"salaryCurrency": "EUR","salaryPeriod": "year","seniorityLevel": "Not Applicable","employmentType": "Full-time","industries": "Software Development","applicantsCount": 200,"applicantsText": "Over 200 applicants","applyType": "external","acceptingApplications": true,"insight": null,"jobPosterName": null,"jobPosterTitle": null,"jobPosterProfileUrl": null,"companyLogo": "https://media.licdn.com/dms/image/v2/D4E0BAQF4A282EbzRLg/...","companyName": "LocalStack","companyWebsite": "https://localstack.cloud","companyIndustry": "Software Development","companySize": "51-200 employees","companyEmployeesOnLinkedIn": 111,"companyHeadquarters": "Zurich","companyAddress": "Zurich, CH","companyType": "Privately Held","companyFoundedYear": null,"companySpecialties": "cloud computing, developer tooling, digital transformation, amazon web services, microsoft azure, continuous integration, and devops","companyFollowers": 36192,"companyDescription": "At LocalStack, we provide the #1 platform for local cloud development & testing...","description": "LocalStack - the Local Cloud Sandbox for Developers and AI Agents\n\nWe are a fast-growing Series A startup...","position": 8,"url": "https://www.linkedin.com/jobs/view/4465695804/","searchUrl": "https://www.linkedin.com/jobs/search/?keywords=software+engineer&location=London","checkedAt": "2026-11-04T04:10:18.517Z"}
Performance
- 20 jobs with full details: about 15–20 seconds
- 50 jobs with full details: about 30–45 seconds
- Listing only: 100 jobs in about 10 seconds with details turned off
- Large requests: with full details, about 50 jobs per run come back complete; a larger request returns what fits and the run status says how many more were found, so split it into several runs (or turn details off for long lists)
- Exact counts: returns the number of jobs you ask for whenever LinkedIn has them, with no duplicates — also across several searches in the same run
- Up to ~1,000 jobs per search — LinkedIn's own limit for public searches; split larger needs by location, date or filters
- Salary appears when the employer publishes a pay range on LinkedIn (common in the US and for many European tech roles)
- No browser required: lightweight, low memory, low cost
- Always finishes: the run never ends in a timeout — it delivers what it has a minute before the time limit
Pricing
This actor uses Pay Per Event (PPE) pricing: $0.0005 per job returned — full details, salary, job poster, company profile and every filter included, no extra charges per feature.
| Jobs | Estimated cost |
|---|---|
| 50 | ~$0.025 |
| 250 | ~$0.13 |
| 1,000 | ~$0.50 |
| 10,000 | ~$5.00 |
You can cap any run with the Max results limit — it stops exactly there and never charges for more.
FAQ
Can I paste a search from LinkedIn? Yes. Search on linkedin.com/jobs, set the filters you want, and paste the address into LinkedIn search URLs. Paste several to run them together.
How do I get all open jobs at a company?
Add the company to Companies (e.g. ["OpenAI"] or ["https://www.linkedin.com/company/microsoft/"]) and leave keywords empty. Add keywords to narrow it down, and several companies to compare them.
How does "Only new jobs" work? The actor remembers, in your own Apify account, which jobs each search already returned. Every run looks at the same top results (Max jobs per search) and returns only those it has not returned before — never older jobs from further down the list. Change any filter and it counts as a new search.
Is salary included?
Yes, whenever the employer publishes a pay range on LinkedIn: the original text plus salaryMin, salaryMax, salaryCurrency and salaryPeriod. Jobs without a published range have these fields empty.
Do I need a LinkedIn account? No. Everything comes from LinkedIn's public job pages and public company pages, the same pages anyone can see without signing in.
Why do I get fewer jobs than I asked for? LinkedIn only has that many public results for your search. Broaden the keywords, location or filters. LinkedIn shows at most about 1,000 jobs per search, so split very large searches by location or date.
What does applicantsCount: null mean?
LinkedIn shows "Be among the first 25 applicants" instead of a number — the job has fewer than 25 applicants. 200 means "over 200 applicants".
Is the company data from the job or from the company page? From the company's public LinkedIn page, so it is the same for every job of that company. Companies without a LinkedIn page have these fields empty.
Why are company fields sometimes empty for every job? LinkedIn sometimes stops showing public company pages for a while (company profiles are off by default for that reason). When that happens the run does not wait: it returns the jobs right away with the company profiles it already has stored from earlier runs (kept up to 30 days in your own Apify account), and the run status says so. Jobs, details and salary are not affected.
What happens with a very large request? Runs are kept short. With full details, about 50 jobs per run come back complete; a larger request delivers what fits (every delivered job has its full details) and the run status says how many more were found. Split it into several runs, narrow the search, or turn details off for long lists. Jobs that are not delivered are not charged.
Keywords
linkedin jobs scraper, linkedin job postings, linkedin jobs api alternative, scrape linkedin jobs, linkedin salary data, linkedin company data, job alerts, remote jobs data, job listings scraper, job market data, recruitment data, hiring companies leads, easy apply jobs, linkedin job search export, hiring trends, job board data
More actors
Browse all my scrapers on my Apify profile.
Disclaimer
This actor collects publicly available job postings. It is not affiliated with LinkedIn.
Changelog
- v2.2 (2026-11-05) — Steadier runs. Large requests now return complete jobs only (every delivered job has its full details) and the run status says how many more were found, so nothing incomplete is charged. Company profiles are off by default while LinkedIn does not show company pages publicly; the option is still there. Same input, same fields.
- v2.1 (2026-11-04) — Faster and steadier when LinkedIn limits company pages. When LinkedIn stops showing public company pages, the run no longer waits on each company: it returns right away (50 jobs in about 15 seconds instead of over a minute), fills company data from profiles stored in earlier runs, and the run status explains it. Company profiles are now reused across runs for 30 days. A run with a short timeout now delivers what it has instead of ending in a timeout.
- v2.0 (2026-11-04) — Salary, company profiles, search URLs and daily alerts. New
salaryText,salaryMin,salaryMax,salaryCurrencyandsalaryPeriodwhen the employer publishes a pay range. New company profile on every job: website, industry, size, employees on LinkedIn, headquarters, address, type, year founded, specialties, followers and description. New job poster fields (name, headline, profile) when the job shows them. Paste one or more LinkedIn job search URLs, combine them with keywords, and get each job once. New Only new jobs mode for scheduled runs. Searching by location alone now works. More stable on long searches: a page LinkedIn occasionally returns empty no longer ends the search early. - v1.1 (2026-10-27) — Company filter and distance radius. Get jobs from specific companies (by name, LinkedIn URL or ID — several at once), with or without keywords, and limit results to 5, 10, 25, 50 or 100 miles around a location.
- v1.0.1 (2026-10-26) — Price lowered to $0.0005 per job (was $0.002).
- v1.0 (2026-10-26) — Filters, richer data and much faster runs. Date posted, workplace type, job type, experience level, Easy Apply only, fewer than 10 applicants, sort by most recent;
postedDate,applicantsCount,applyType,acceptingApplications,insight,companyLogo,position, optionaldescriptionHtml; complete descriptions. - v0.1 — Search by keyword and location with job details.