LinkedIn Jobs Scraper — Title, Company & Salary avatar

LinkedIn Jobs Scraper — Title, Company & Salary

Pricing

from $1.00 / 1,000 job listings

Go to Apify Store
LinkedIn Jobs Scraper — Title, Company & Salary

LinkedIn Jobs Scraper — Title, Company & Salary

LinkedIn Jobs Scraper for public job search. Search by keyword, location, or a job URL and export title, company, salary, seniority, and description as JSON.

Pricing

from $1.00 / 1,000 job listings

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Share

Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by LinkedIn Corporation or its affiliates. Data is read from publicly accessible job search and job posting pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.

LinkedIn Jobs Scraper for public job listings (LinkedIn job scraper, LinkedIn jobs API alternative). Search by keyword, location, or a job URL. Export title, company, location, salary, seniority, employment type, applicant label, and description as JSON, CSV, or Excel. HTTP only, no login, no cookies. Call it from Python, Node.js, cURL, or Apify MCP.

Built for recruiting research, hiring-intent lists, and salary checks on public postings.

ActorFocus
LinkedIn Jobs Scraper ◄── you are herePublic job search and job pages
Upwork Jobs ScraperFreelance job listings and monitor
Glassdoor ScraperEmployer reviews, salaries, and jobs
ZipRecruiter Jobs ScraperUS jobs by city and keyword
Seek Jobs ScraperAustralia and New Zealand jobs
InfoJobs Job ScraperSpain jobs
Stepstone Jobs ScraperDACH commercial job board
Naukri Jobs ScraperIndia Naukri.com jobs

When to use this Actor

  • You need a LinkedIn jobs scraper that returns structured JSON from public search
  • You want keyword, location, date posted, remote, and seniority without a browser
  • You need company, salary text, employment type, and the job description on each row
  • You scrape jobs from Python, Node.js, or an MCP assistant
  • You run a daily monitor and only want new job ids saved

When not to use this Actor

  • Profiles, posts, employees, or InMail. This Actor reads public job listings only.
  • Apply-form automation or logged-in Easy Apply submission. No account and no cookies.
  • A guaranteed external apply URL. Many postings keep the apply destination behind a sign-in wall. The row always includes the public job URL.
  • Guaranteed salary. Pay is saved when the description states a range.

Key features

  • Keyword and location search, plus extra keywords searched one at a time
  • Search URL and job URL input. A pasted search keeps its query filters. A /jobs/view/ URL fetches that posting
  • Filters for date posted, on-site / remote / hybrid, employment type, experience level, and Easy Apply
  • Description on by default — seniority, employment type, industries, and salary text come from the public job page
  • Monitor mode with a named Key-Value store. The first run is the baseline. Later runs charge only new job ids
  • 256 MB HTTP. Leave the proxy off unless a run is blocked

Input

FieldTypeDescription
keywordstringSearch text, for example software engineer
searchKeywordsstring[]Extra keywords, each searched separately
locationstringLocation text, for example United States or Berlin
startUrlsrequest listPublic search URLs or job URLs
companyIdsstring[]Company ids for the public company filter
companyNamestringCase-insensitive company match after search
datePostedenumPast 24 hours, past week, or past month
workArrangementenumOn-site, remote, or hybrid
employmentTypeenumFull-time, part-time, contract, temporary, internship, volunteer
experienceLevelenumInternship through executive
easyApplybooleanEasy Apply filter
includeDescriptionbooleanOpen each new job page. Default on. One saved job is still one result
maxItems / maxPagesintegerCaps. About 10 jobs per page. Default 25 items and 3 pages
monitorModebooleanSave only job ids not seen in the named store
proxyConfigurationobjectLeave off unless a run is blocked
{
"keyword": "software engineer",
"location": "United States",
"datePosted": "r604800",
"workArrangement": "2",
"maxItems": 25,
"includeDescription": true,
"proxyConfiguration": { "useApifyProxy": false }
}

A job URL belongs in startUrls:

{
"startUrls": [
{ "url": "https://www.linkedin.com/jobs/view/1234567890" }
],
"maxItems": 1
}

Output

One dataset row per job.

FieldTypeDescription
jobIdstringJob id
titlestringListing title
companyName / companyUrlstringHiring company
locationstringLocation label
listedAt / listedTextstringCard date and relative time, when shown
applicantsstringApplicant label from the posting
seniorityLevel / employmentType / jobFunction / industriesstringCriteria from the job page
salaryLabel / salaryMin / salaryMax / salaryPeriodstring / numberParsed when the description states a range
descriptionstringPlain-text job description
offsiteApplybooleanTrue when the page shows an offsite apply control
urlstringPublic job URL
scrapedAtstringISO-8601 UTC
{
"jobId": "4476382792",
"title": "Java Software Engineer",
"companyName": "Example Defense Co",
"companyUrl": "https://www.linkedin.com/company/example-defense",
"location": "Aurora, CO",
"listedAt": "2026-10-06",
"listedText": "10 hours ago",
"applicants": "Be among the first 25 applicants",
"seniorityLevel": "Associate",
"employmentType": "Full-time",
"industries": "Defense and Space Manufacturing",
"salaryLabel": "$91,800.00 - $137,600.00",
"salaryMin": 91800,
"salaryMax": 137600,
"description": "Relocation assistance may be available.",
"offsiteApply": true,
"url": "https://www.linkedin.com/jobs/view/4476382792",
"scrapedAt": "2026-10-07T08:00:00Z"
}

Use cases

  • Build a hiring-intent list of companies posting a role in the last week
  • Compare salary ranges that employers put in the public description
  • Watch one keyword on a schedule and keep only new job ids
  • Hand company names to a reviews Actor for the same employers
  • Export a recruiting search to JSON, CSV, or Excel for a spreadsheet

Integration examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/linkedin-jobs-scraper').call({
keyword: 'software engineer',
location: 'United States',
datePosted: 'r604800',
maxItems: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 5));

Python

from apify_client import ApifyClient
client = ApifyClient(token)
run = client.actor("crawloop/linkedin-jobs-scraper").call(
run_input={
"keyword": "software engineer",
"location": "United States",
"datePosted": "r604800",
"maxItems": 25,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("title"), item.get("companyName"), item.get("salaryLabel"), item.get("url"))

cURL

curl "https://api.apify.com/v2/acts/crawloop~linkedin-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword":"software engineer","location":"United States","datePosted":"r604800","maxItems":25}'

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/linkedin-jobs-scraper.

Example prompts:

  • "Run LinkedIn Jobs Scraper for software engineer in the United States, past week, max 25, and return title, companyName, location, salaryLabel, and url as JSON"
  • "Scrape LinkedIn remote product manager jobs posted in the last 24 hours and summarize seniority and salary"
  • "Pull LinkedIn data analyst jobs in Berlin, then run Glassdoor Scraper for the company names that appear most often"

Suite next step

This Actor covers public job listings. For freelance listings on the same skill, run Upwork Jobs Scraper. For employer reviews and salary pages on the same companies, run Glassdoor Scraper. For a US job board beside it, run ZipRecruiter Jobs Scraper.

FAQ

Is this an official jobs API? No. It reads the public job search and job pages. You do not log in and you do not provide cookies.

Can I paste a search URL? Yes. startUrls accepts a public search URL and keeps keywords, location, and the filters in that URL. A /jobs/view/ URL fetches that one posting.

Do I need a proxy? Leave proxy off. The guest search responded without one. Enable a proxy only if a run is blocked.

Is salary always present? No. salaryMin and salaryMax are set when the description contains a range. Read salaryPeriod before comparing two numbers. Many postings omit pay.

Does this scrape profiles or employees? No. The dataset is job listings: title, company, location, description, and the criteria on the job page.

What is monitor mode? With monitorMode on, seen job ids are stored in a named Key-Value store. The first run is the baseline. Later scheduled runs save only ids that were not seen before, and stop when a page is already known.

Can I export JSON, CSV, or Excel? Yes. Every run writes a dataset you can download as JSON, CSV, or Excel, or pull with the Apify API.

ActorFocus
LinkedIn Jobs Scraper ◄── you are herePublic job listings
Upwork Jobs ScraperFreelance job listings and monitor
Glassdoor ScraperEmployer reviews, salaries, and jobs
ZipRecruiter Jobs ScraperUS jobs
Seek Jobs ScraperAustralia and New Zealand jobs
InfoJobs Job ScraperSpain jobs
Stepstone Jobs ScraperDACH jobs
Naukri Jobs ScraperIndia jobs