LinkedIn Jobs Scraper - Salaries, Descriptions, No Login avatar

LinkedIn Jobs Scraper - Salaries, Descriptions, No Login

Pricing

from $1.38 / 1,000 jobs

Go to Apify Store
LinkedIn Jobs Scraper - Salaries, Descriptions, No Login

LinkedIn Jobs Scraper - Salaries, Descriptions, No Login

LinkedIn jobs scraper by keywords and location, with LinkedIn's filters (date, remote, job type, experience, Easy Apply). Up to 1,000 jobs per search, full description, seniority, applicants, apply type, recruiter, and the salary from the posting as numbers. No login.

Pricing

from $1.38 / 1,000 jobs

Rating

0.0

(0)

Developer

Khandji Omar

Khandji Omar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

LinkedIn job search by keywords and location (or your own LinkedIn search links), with LinkedIn's filters: date posted, remote / hybrid / on-site, job type, experience level, Easy Apply, under 10 applicants, companies. Up to 1,000 jobs per search. Every job comes with its full description, seniority, employment type, industries, applicants, apply type, the recruiter when LinkedIn shows one, and the salary written in the posting turned into numbers. No LinkedIn account, no cookies.

Price: $2.50 per 1,000 jobs, dropping to $0.35 per 1,000 on 17 November 2026, details included. The first 10 jobs of every run are free. Failed searches are never charged.

Free tier — 10 results free on every run

The first 10 results of every run are free, on every run you ever make — not a one-off trial. One guard: the free allowance never covers more than half of a run, so the offer stays sustainable.

Measured, not promised

Same search on 17 October 2026, "data engineer" in United States, 200 jobs, on three Actors. All three returned the same 200 jobs.

LinkedIn Jobs Scraper (om_kh)curious_coder (most used)valig
Jobs returned200 of 200200 of 200200 of 200
Description, seniority, employment type, industries200200200
Salary as numbers (min, max, period)1420 (19 as text)0 (19 as text)
Apply type (Easy Apply or external)200—200
Recruiter (name, title, profile)555
Time86 s161 s133 s

The 142 salaries come from the pay the employer writes in the description, such as "The projected compensation range for this position is $77,600.00 to $176,000.00 (annualized USD)".

A second search, "registered nurse" in Texas, past week, full-time: 50 of 50 jobs in 32 seconds.

What does this LinkedIn Jobs scraper do?

Type job titles or keywords and a location, or paste links copied from linkedin.com/jobs/search. Each keyword is searched in each location, so you can go past LinkedIn's 1,000 results per search by splitting a country into cities.

For each job you get one clean row:

  • title, companyName, companyUrl, companyLogo, location, postedDate (exact day), postedAgo;
  • description (plain text) and descriptionHtml;
  • seniorityLevel, employmentType, industries;
  • applicants ("Over 200 applicants") and applicantsCount;
  • applyType: EASY_APPLY or EXTERNAL;
  • salaryMin, salaryMax, salaryPeriod, salaryText when the posting states its pay, and salaryShown when LinkedIn displays a salary;
  • benefits ("Actively Hiring"), and the recruiter (jobPosterName, jobPosterTitle, jobPosterProfileUrl) when LinkedIn shows one;
  • jobUrl, jobId and the searchQuery that found it.

Why use it

  1. Salaries you can sort. Pay written in the posting becomes numbers.
  2. LinkedIn's own filters, applied before the jobs are read.
  3. Many searches in one run. Keywords x locations, up to 50 searches.
  4. Only new jobs. Turn on onlyNewJobs and schedule the run: each run returns only jobs you have not seen yet.
  5. No account. It reads LinkedIn's public job pages, logged out. It never logs in and never solves a CAPTCHA.
  6. Pay only for jobs delivered. Failed searches are never charged, and maxTotalChargeUsd caps every run.

Price

Price per 1,000 jobs
Until 16 November 2026$2.50
From 17 November 2026$0.35

Every job comes with its details (description, seniority, applicants, salary as numbers) at that price. The first 10 jobs of each run are free. Set Max cost per run (maxTotalChargeUsd) and the run stops before it spends more. Errors are never charged.

Example input

{
"keywords": ["data engineer", "analytics engineer"],
"locations": ["New York", "Austin", "Remote"],
"datePosted": "pastWeek",
"workplace": ["remote", "hybrid"],
"experienceLevels": ["midSenior"],
"maxJobsPerSearch": 200,
"includeDetails": true
}

Tips and limits

  • LinkedIn shows at most 1,000 jobs per search: split by location or date to get more.
  • The external apply link is shown by LinkedIn only to signed-in members, so jobUrl is the LinkedIn page of the job.
  • When LinkedIn slows a request down (429), the run switches to another address and waits.

Use it from code (API)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("om_kh/linkedin-jobs-scraper").call(run_input={"keywords": ["data engineer"], "location": "United States"})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["title"], job.get("salaryMin"), job["jobUrl"])

Integrations: n8n, Make, Zapier, Google Sheets

  • n8n — the official Apify node, operation Run Actor and get dataset, Actor om_kh/linkedin-jobs-scraper.
  • Make — Apify › Run an Actor, then Apify › Get Dataset Items.
  • Zapier — Apify › Run Actor; map the dataset items into your next step.
  • Google Sheets, webhooks, Slack — add an integration from the Integrations tab of this Actor.
  • Schedules — run it every hour or day from Schedules in Apify Console.

Use it from an AI agent (MCP and x402)

Connect Claude Desktop, Cursor, VS Code or any MCP client to Apify's MCP server at https://mcp.apify.com and add this Actor, om_kh/linkedin-jobs-scraper, as a tool — the agent passes the same JSON as the run input and gets the dataset back.

AI agents that pay with x402 can run it too, without an Apify account: the Actor charges only per result delivered, so an agent pays exactly for what it gets.

How to use it in 3 steps

  1. Click Try for free; the form opens with a ready example in Job titles or keywords.
  2. Optional: change the other fields; every one has a description and a sensible default.
  3. Click Start and download the results as JSON, CSV or Excel, or read them from the API.

Output example

One real row from a run on Apify:

{
"type": "job",
"jobId": "4454862094",
"title": "Senior Data Engineer, DX",
"companyName": "Atlassian",
"companyUrl": "https://au.linkedin.com/company/atlassian",
"companyLogo": "https://media.licdn.com/dms/image/v2/D4E0BAQGeyLL6crkJKg/company-logo_100_100/company-logo_100_100/0/1735593604612/atlassian_logo?e=2147483647&v=beta&t=4riZdTtd16Oeoew0_mSThLQak3uyYv2-ep73cztBjbo",
"location": "Salt Lake City, UT",
"postedDate": "2026-09-26",
"postedAgo": "3 weeks ago",
"salaryShown": null,
"benefits": "Actively Hiring",
"jobUrl": "https://www.linkedin.com/jobs/view/4454862094",
"searchQuery": "data engineer | United States",
"applicants": "Over 200 applicants",
"applicantsCount": 200,
"description": "Overview\n\nWorking at Atlassian\n\nAtlassians can choose where they work – whether in an office, from home, or a combination of the two. That way, Atlassians have more control over supporting their family, personal goals, a...",
"descriptionHtml": "<strong>Overview<br><br></strong><strong>Working at Atlassian<br><br></strong>Atlassians can choose where they work – whether in an office, from home, or a combination of the two. That way, Atlassians have more control o...",
"seniorityLevel": "Mid-Senior level",
"employmentType": "Full-time",
"industries": "Software Development",
"applyType": "EXTERNAL"
}

FAQ

Is it legal to scrape LinkedIn? This Actor collects only publicly available LinkedIn data and never logs in. You are responsible for how you use it; check LinkedIn's terms and your local law (GDPR, CCPA) if you store personal data, and ask a lawyer if unsure.

Do I need an account, cookies or an API key? No. You only need an Apify account to run it.

What data do I get? Jobs with title, company, place, exact date, full description, seniority, employment type, applicants, apply type and salary. Download it as JSON, CSV, Excel, HTML or XML, or read it from the API.

Am I charged when something fails? No. An input that fails is listed with its reason in the run summary and is never charged.

Can I run it on a schedule? Yes. Create a schedule in Apify Console (hourly, daily, weekly) and connect webhooks, Google Sheets, Slack, n8n, Make or Zapier.

Can I use it from Python, JavaScript or an AI agent? Yes: see the code samples above, or connect AI agents through MCP with the linkedin_jobs tool.

Your feedback

Did this Actor save you time? A short review on the Reviews tab helps other people find it, and every review is read. Something missing or broken? Open an issue on the Issues tab: it is answered and fixed fast.

More Actors from the same author