LinkedIn Jobs Scraper avatar

LinkedIn Jobs Scraper

Pricing

from $1.50 / 1,000 jobs

Go to Apify Store
LinkedIn Jobs Scraper

LinkedIn Jobs Scraper

Scrape LinkedIn job postings by keyword, location or search URL, with full details in the same run: description, salary, applicants, seniority and more. No login or cookies. Pay only for jobs returned.

Pricing

from $1.50 / 1,000 jobs

Rating

0.0

(0)

Developer

Muhammad Noman Riaz

Muhammad Noman Riaz

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

What does LinkedIn Jobs Scraper do?

LinkedIn Jobs Scraper collects public job postings from LinkedIn without a login, cookies or a LinkedIn account. You give it job keywords and a location, LinkedIn search URLs copied from your browser, or individual job URLs. In one run it pages through the search results and then opens every job page, so each result already contains the full description (plain text and HTML), salary range when the employer shows one, applicant count, seniority level, employment type, industries, company name, company page and logo, location, posting date and whether the job still accepts applications. Duplicate jobs across your queries are removed automatically. You can narrow searches by date posted, from the last few hours up to the last month. Results download as JSON, CSV, Excel or HTML, or flow into Google Sheets, Make, Zapier and your own code through the Apify API. You pay only for jobs delivered.

What data can I get from LinkedIn job postings?

FieldExampleSource
jobId, url4476360306Search card
title, companyName, companyUrl, companyLogoNBCUniversalSearch card and job page
location, workplaceTypeNew York, NYworkplaceType only when LinkedIn writes it in the location, such as "(Remote)"
postedAt, postedText2026-10-06, 1 week agoSearch card (date only)
salary{ text, min, max, currency, period }When the employer shows pay
applicantsCount, applicantsText200, Over 200 applicantsJob page
seniorityLevel, employmentType, industries, jobFunctionAssociate, Full-timeJob page
descriptionText, descriptionHtmlFull job descriptionJob page
isClosedfalseJob page ("No longer accepting applications")
applyType, applyUrloffsite, nullJob page
benefitsActively HiringSearch card badge
searchQuery, scrapedAtdata analyst in New York, NYAdded by the scraper

How do I use LinkedIn Jobs Scraper?

  1. Enter one or more job keywords and a location, or paste LinkedIn job search URLs or job URLs.
  2. Set how many jobs you want per query and, if you like, a date posted window.
  3. Click Start and download your jobs when the run finishes.

Input

FieldTypeDefaultDescription
searchQueriesarrayKeywords such as "data analyst", or objects like {"keywords": "nurse", "location": "Texas"}
locationstringLocation used by keyword queries without their own location. Empty means worldwide.
startUrlsarrayLinkedIn job search URLs (linkedin.com/jobs/search/?...) and job URLs (linkedin.com/jobs/view/<id>)
maxJobsPerQueryinteger50Maximum jobs per query or search URL
includeDetailsbooleantrueOpen each job page for description, applicants, salary and criteria. Same price either way.
postedWithinstringanyany, 24h, week, month, or a number of hours such as 6
maxConcurrencyinteger10Pages loaded at the same time
maxRequestRetriesinteger6Attempts per page, each on a new proxy IP
proxyobjectResidentialApify Proxy settings

Input example

{
"searchQueries": ["data analyst", { "keywords": "registered nurse", "location": "California" }],
"location": "New York, NY",
"startUrls": [
{ "url": "https://www.linkedin.com/jobs/search/?keywords=python&location=Berlin&f_TPR=r604800" },
{ "url": "https://www.linkedin.com/jobs/view/4476360306" }
],
"maxJobsPerQuery": 50,
"includeDetails": true,
"postedWithin": "week",
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Output example

A real item from a test run on 2026-10-17 (description shortened here):

{
"jobId": "4476360306",
"url": "https://www.linkedin.com/jobs/view/4476360306",
"title": "Data Analyst - Digital Media Sales, NBCU Local",
"companyName": "NBCUniversal",
"companyUrl": "https://www.linkedin.com/company/nbcuniversal-inc-",
"companyLogo": "https://media.licdn.com/dms/image/v2/D4E0BAQHIwjfYY3sIoQ/company-logo_100_100/B4EZq9EoPBKoAQ-/0/1764108698870/nbcuniversal_inc__logo?e=2147483647&v=beta&t=AFdpKqbJ0ukvxZUJcdTNXTVTm4EstjF6KbqK0olCRHI",
"location": "New York, NY",
"postedAt": "2026-10-06",
"postedText": "1 week ago",
"salary": { "text": "$62,000.00/yr - $72,000.00/yr", "min": 62000, "max": 72000, "currency": "USD", "period": "year" },
"benefits": "Actively Hiring",
"workplaceType": null,
"searchQuery": "data analyst in New York, NY",
"applicantsText": "Over 200 applicants",
"applicantsCount": 200,
"seniorityLevel": "Associate",
"employmentType": "Full-time",
"jobFunction": null,
"industries": "Broadcast Media Production and Distribution",
"descriptionText": "NBCUniversal is one of the world's leading media and entertainment companies. We create world-class content, which we distribute across our portfolio of film, t...",
"descriptionHtml": "<p>NBCUniversal is one of the world's leading media and entertainment companies. We create world-class content, which we...",
"isClosed": false,
"applyType": "offsite",
"applyUrl": null,
"scrapedAt": "2026-10-17T16:57:43.914Z"
}

How much does it cost to scrape LinkedIn jobs?

$1.50 per 1,000 jobs, with job details included at no extra charge. A job is charged only when it is delivered: with details on, a job whose page could not be loaded after all retries is listed in the FAILED_ITEMS record of the key-value store and is not charged. Proxy costs are covered by the price.

FAQ

Do I need a LinkedIn account?

No. The scraper reads the same public job pages LinkedIn shows to logged-out visitors. It never logs in, never uses cookies or accounts, and never tries to get past a login wall or a captcha. If LinkedIn blocks a request, the scraper retries from a new IP and otherwise skips the job.

Why do I get fewer jobs than LinkedIn shows?

LinkedIn shows logged-out visitors fewer results than members see and stops serving a search after roughly 1,000 results. The count LinkedIn displays is also an estimate that includes promoted and duplicate listings. The scraper removes duplicates across all your queries, so the same job is never returned or charged twice. To collect more, split a broad search into several narrower ones by city or keyword.

Which filters work?

Keywords, location (as text, or geoId from a pasted search URL) and date posted (postedWithin: last N hours, 24 hours, week or month). We tested the other LinkedIn filters on 2026-10-17 with logged-out requests: workplace type (remote, hybrid, on-site), experience level, job type and sort order returned exactly the same jobs as without the filter. LinkedIn only applies them for logged-in members, so this scraper does not offer them and ignores them in pasted search URLs rather than pretend they work. If LinkedIn writes "(Remote)" or "(Hybrid)" in a job's location, the scraper fills workplaceType from it.

This scraper collects only job postings that LinkedIn publishes to anyone on the web without a login. It does not collect member profiles or any data behind a login. Note that LinkedIn's User Agreement prohibits scraping, and laws on web scraping and on processing personal data, such as GDPR, differ by country. You are responsible for how you use the scraper and the data, including complying with LinkedIn's terms and the laws that apply to you. This is not legal advice; if in doubt, ask a lawyer.

Known limits

  • postedAt is a date without a time, and only search results carry it. Jobs added by a job URL have postedAt: null and only the relative postedText.
  • applyUrl is usually null: logged-out pages hide the external apply link behind a sign-in prompt. applyType tells you when a job applies on the employer's site (offsite).
  • jobFunction is often null because LinkedIn currently leaves it out of many public job pages.
  • applicantsCount is a floor for "Over 200 applicants" (200) and null for "Be among the first 25 applicants".
  • Salary is returned only when the employer shows it, mostly in US states with pay transparency laws.
  • workplaceType is filled only when LinkedIn writes it in the location text.
  • LinkedIn changes its public pages from time to time; if a field stops filling, please open an issue.