LinkedIn Jobs Scraper: Remote Filter, Salaries & Job Alerts
Pricing
from $0.40 / 1,000 jobs
LinkedIn Jobs Scraper: Remote Filter, Salaries & Job Alerts
Scrape LinkedIn jobs without login or cookies: full job pages, remote / hybrid / on-site, salaries found in job descriptions, job type, level, no reposts or staffing agencies, company jobs and new-job alerts. Export to Excel, CSV, JSON or n8n.
Pricing
from $0.40 / 1,000 jobs
Rating
0.0
(0)
Developer
Superior Actors
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
LinkedIn Jobs Scraper: Remote Filter, Salaries & Job Alerts
Scrape LinkedIn jobs to Excel, CSV or JSON without login or cookies: every job with its full job page, company, location, applicants, level, job type and description. On top of that, what other LinkedIn job scrapers stopped doing in 2026:
- Remote / hybrid / on-site filter that works. LinkedIn's new AI job search ignores the remote, job type, experience and salary filters for visitors, so scrapers that pass them to LinkedIn return every job. This Actor reads each job page and filters itself. Filtered-out jobs are free.
- Salaries in 2 of 3 US jobs, not only the 1 in 8 that fill LinkedIn's salary field: pay ranges are also read from the description (US pay-transparency ranges), converted to a year.
- No reposts, no staffing agencies, and job alerts: schedule it and get only the jobs you have not seen.
{ "keywords": ["data engineer"], "locations": ["United States"], "workplaceTypes": ["remote"], "minYearlySalary": 120000 }
No LinkedIn account, no cookies, no browser extension. Use it as a LinkedIn Jobs API: one call returns clean JSON.
What you get
One row per job. Real example, September 2026 (data engineer, United States):
| job | company | location | remote / hybrid | salary | found in | posted | applicants | level |
|---|---|---|---|---|---|---|---|---|
| Senior Data Engineer, DX | Atlassian | Salt Lake City, UT | $167,400 - $218,550 | description | 2026-09-26 | 200+ | Mid-Senior level | |
| Data Engineer, Decision Intelligence Technology | Amazon Web Services (AWS) | Bellevue, WA | 101,300 - 160,000 USD annually | description | 2026-09-23 | 125 | Not Applicable | |
| Senior Data Engineer | NinjaOne | Georgia, United States | remote | $110,000 to $200,000 per year | description | 2026-09-24 | 57 | Not Applicable |
| Senior Data Engineer | fairlife | Chicago, IL | hybrid | $120,000 - $140,000 USD | description | 2026-09-23 | 200+ | Not Applicable |
| Product Manufacturing & Quality Engineer | OpenAI | San Francisco, CA | hybrid | $123,000/yr - $285,000/yr | 2026-09-15 | 200+ | Not Applicable |
| Field | Description |
|---|---|
jobId, jobUrl, title | The job and its LinkedIn link |
companyName, companyUrl, companyId, companyLogo | The employer (companyId works in LinkedIn's company filter) |
location, postedDate, postedAgo | Where and when (reposts show the repost date, as on LinkedIn) |
workplaceType, workplaceTypeSource, workplaceTypeEvidence | remote, hybrid, on-site or empty when the job does not say; where it was found (title, location, description) and the exact words |
salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriod | Pay as posted: hour, day, week, month or year |
salaryYearlyMin, salaryYearlyMax, salarySource | Pay converted to a year (hourly × 2 080); linkedin = LinkedIn's salary field, description = found in the job text |
applicants, applicantsText | "Over 200 applicants" = 200; "Be among the first 25" = empty (fewer than 25) |
experienceLevel, employmentType, jobFunction, industries | LinkedIn's job criteria, exact |
easyApply, isClosed, badge | Easy Apply or the company's site; no longer accepting applications; "Actively Hiring", "Be an early applicant" |
description, descriptionHtml | The full job description, plain text and / or HTML |
searchKeyword, searchLocation, searchUrl | Which search found the job |
isNew, scrapedAt | Job alerts: new since the last run |
Two table views: Jobs and Salaries (yearly min / max, currency, where the pay was found).
How it works
| Step | What happens |
|---|---|
| 1. Search | Each keyword in each location (or your pasted LinkedIn search links), with the filters LinkedIn still applies: date posted, company, Easy Apply, under 10 applicants. Up to 1 000 jobs per search, LinkedIn's limit |
| 2. Job pages | Every new job's public page: criteria, applicants, salary, description, company id, closed or open |
| 3. Filters | Remote / hybrid / on-site, job type, level, minimum yearly salary, staffing agencies, title words, companies. Jobs removed here are not charged |
| 4. Clean-up | The same job found by several searches appears once; reposts (same title, company and location) are skipped |
| 5. Job alerts | With Only new jobs on, jobs from earlier runs are skipped before their page is loaded |
Requests go through Apify Proxy, a fresh IP each time: LinkedIn limits one IP to about 15 requests, and a new IP per request passed 199 of 200 in our tests.
Why this Actor
| This Actor | Typical LinkedIn job scraper | |
|---|---|---|
| Remote / hybrid filter | ✅ Applied from the job text, with the evidence | ❌ Passed to LinkedIn, ignored since the 2026 AI search, or rewritten into keywords |
| Job type and experience level filters | ✅ Exact, from the job page | ⚠️ Ignored by LinkedIn or rewritten into keywords |
| Salary | ✅ LinkedIn's field + pay ranges in descriptions, yearly | ⚠️ LinkedIn's field only (about 1 US job in 8) |
| Minimum salary filter | ✅ Yearly, hourly pay converted | ❌ / ⚠️ LinkedIn's bands, ignored for visitors |
| Reposts and staffing agencies | ✅ Skipped, not charged | ⚠️ Some |
| Job alerts (only new jobs) | ✅ Built in, seen jobs not charged | ⚠️ Manual lists of job IDs |
| Company jobs by name or link | ✅ Name, link or id | ⚠️ Numeric id only |
| Filtered-out jobs | ✅ Free | ❌ Charged, or not filtered |
| Login or cookies | ✅ Not needed | ✅ / ⚠️ Some need your account |
Pricing
Pay per event, no subscription needed. Apify Scale and Business plans pay less:
| Event | Free and Starter plans | Scale plan | Business plan |
|---|---|---|---|
| Run start | $0.001 | $0.001 | $0.001 |
| Job (with its full job page) | $0.0005 | $0.00045 | $0.0004 |
1 000 jobs = $0.50. Free: jobs removed by your filters, reposts, jobs already seen by a job alert. Platform usage is included. Set a maximum cost per run in the run options: the Actor stops there.
Ready-made tasks
| Task | What it does |
|---|---|
| LinkedIn Remote Jobs Scraper | Remote-only jobs with salaries, reposts removed |
| LinkedIn Job Alerts for a Company | Every new job of chosen companies, schedule it daily |
| Export LinkedIn Jobs to Excel | A job search to a spreadsheet with yearly salaries |
Job alerts
LinkedIn's own job alerts cannot filter by salary or remote work and often miss jobs. Build your own:
- Set your search and filters, turn on Only new jobs, give the alert a Monitor name.
- Save it as a task and add a schedule (every morning, or every hour with "Posted within: Past hour").
- Send the results by email, Slack, Google Sheets, Make, Zapier or n8n with Apify integrations.
The first run returns the current jobs; next runs return only jobs not seen before. Seen jobs are skipped before their page is loaded and are not charged.
FAQ
Why not use LinkedIn's own remote filter? Since LinkedIn's 2026 AI job search, the remote (f_WT), job type (f_JT), experience (f_E) and salary (f_SB2) filters in a search link are ignored for visitors: the results are the same with or without them. We checked each of them in September 2026.
How is remote work detected? LinkedIn's public job page does not state it. The Actor looks at the title ("Senior Engineer (Remote)"), the location and clear phrases in the description ("this is a fully remote position", "hybrid role, 3 days a week in the office", "this is an on-site role"). Vague perks ("flexibility to work from home") do not count. workplaceTypeEvidence shows the words it used; jobs that do not say stay empty. In our test (100 US data engineer jobs, September 2026) 27 stated it clearly: 17 hybrid, 8 remote, 2 on-site. For remote-only lists, add "remote" to the keywords as well: LinkedIn then returns mostly remote jobs and the filter removes the rest.
Can I get more than 1 000 jobs? LinkedIn stops every search at 1 000. Split it: several locations (states or cities) or several keywords in one run. Jobs found twice are returned once.
Why is the salary a range in a foreign currency? Salaries stay in the job's currency; salaryYearlyMin / salaryYearlyMax convert hours, days and months to a year, not currencies.
Do I need a LinkedIn account? No. Only public job pages are read, as any visitor sees them.
What does isClosed mean? The job no longer accepts applications. Search results skip closed jobs; job links you paste are returned with isClosed: true.
Use with the API and AI agents
Run it from the Apify API, the JavaScript or Python client, n8n, Make or Zapier, or from AI agents through the Apify MCP server (Claude, ChatGPT, Cursor). One call: POST https://api.apify.com/v2/acts/s_actors~linkedin-jobs-scraper/run-sync-get-dataset-items with the input above returns the jobs as JSON. Set Job description to "None" for smaller answers.
Is it legal?
The Actor reads public LinkedIn job pages that anyone can open without an account, as a visitor does. It does not log in or collect personal profiles. Use the data according to the laws that apply to you (GDPR and similar) and LinkedIn's terms.