LinkedIn Jobs Scraper avatar

LinkedIn Jobs Scraper

Pricing

from $0.15 / 1,000 results

Go to Apify Store
LinkedIn Jobs Scraper

LinkedIn Jobs Scraper

Scrape LinkedIn job postings without a login or cookie. Get titles, companies, locations, salaries, posting dates, applicant counts, seniority, employment type and full job descriptions. Paste a LinkedIn search URL or give keywords and locations.

Pricing

from $0.15 / 1,000 results

Rating

5.0

(1)

Developer

Mary Lou

Mary Lou

Maintained by Community

Actor stats

2

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Categories

Share

LinkedIn Jobs Scraper — extract job postings without a login or cookie

Scrape LinkedIn job postings at scale and export them as JSON, CSV or Excel. Get job titles, companies, locations, salaries, posting dates, applicant counts, seniority levels, employment types and full job descriptions — from the public LinkedIn job search, with no account and no credentials.

No login. No li_at cookie. No LinkedIn account to get restricted. This LinkedIn job scraper reads the same public endpoints LinkedIn serves to signed-out visitors and to search engines, so there is nothing of yours at risk.


What you can do with it

  • Build a job board or aggregate LinkedIn job listings into your own site
  • Track hiring signals — watch which companies are growing, and in which cities and functions
  • Recruitment and talent market research — salary benchmarking, job title taxonomies, demand for specific skills
  • Competitor hiring intelligence — monitor exactly what your competitors are recruiting for and how fast
  • Lead generation — companies actively hiring are companies actively spending
  • Feed a job-matching or CV-matching model with real, current postings
  • Daily new-jobs alerts — schedule it with Most recent + Past 24 hours

How to scrape LinkedIn jobs

The easy way — paste a search URL. Open LinkedIn job search in your browser, click whatever filters you want, and copy the URL from the address bar into LinkedIn search URLs. Every filter in it is honoured: keywords, location, geoId, date posted, experience level, job type, workplace type, company, and sort order.

Or build the search here. Fill in Keywords and Locations. Each keyword is paired with each location, so 3 keywords x 2 locations runs 6 searches in one go.

Leave Proxy on (it is on by default) — LinkedIn throttles a single IP quickly.


Input

FieldWhat it does
LinkedIn search URLsPaste job-search URLs straight from your browser. The recommended input
KeywordsJob titles or skills, e.g. python developer, product manager
LocationsCities, regions or countries as LinkedIn spells them
Geo IDLinkedIn's numeric location id, for when a name is ambiguous
Company IDsRestrict results to specific companies
Date postedAny time, past month, past week, past 24 hours
Sort byRelevance, or most recent
Experience levelinternship, entry, associate, mid-senior, director, executive
Employment typefull-time, part-time, contract, temporary, volunteer, internship, other
Workplace typeon-site, remote, hybrid
DistanceSearch radius in miles
Scrape full job descriptionsAdds the description and criteria. One extra request per job
Max jobsHard cap on results, across every search

Output

One row per job posting. Export as JSON, CSV, Excel, XML or RSS.

{
"job_id": "4459150828",
"title": "Python Developer Django SQL - FinTech",
"company": "Client Server",
"company_url": "https://uk.linkedin.com/company/client-server",
"company_logo": "https://media.licdn.com/dms/image/...",
"location": "London, England, United Kingdom",
"posted_date": "2026-08-26",
"posted_text": "4 days ago",
"salary": null,
"benefits": null,
"seniority_level": "Mid-Senior level",
"employment_type": "Full-time",
"job_function": "Engineering, Information Technology",
"industries": "Software Development",
"applicants": "51 applicants",
"description": "We are looking for a Python Developer...",
"description_html": "<p>We are looking for...</p>",
"job_url": "https://uk.linkedin.com/jobs/view/...-4459150828",
"easy_apply": false
}
FieldNotes
job_idLinkedIn's stable id. Dedup on this
posted_dateFrom the machine-readable date, not the "4 days ago" text — so it sorts and filters properly
salaryOnly present when the advertiser published one. Most do not
applicantsLinkedIn's public count, e.g. "51 applicants" or "Be among the first 25"
description / description_htmlPlain text and original markup. Detail page only
easy_applyWhether the posting uses LinkedIn's one-click apply

Two limits worth knowing before you scale up

1. Descriptions cost one request each. Title, company, location, salary and posting date come from the search results and are nearly free. The full description, seniority, employment type, function, industries and applicant count come from each job's own page — one extra request per job. That is also the first thing LinkedIn rate-limits: measured at a couple of dozen from a single IP.

If it does get throttled, the run does not fail. It logs a warning, stops fetching descriptions, and finishes with the search cards. Use a proxy, or turn descriptions off for a fast list.

2. LinkedIn caps one search at about 1,000 results. Past that it serves empty pages rather than an error — a scraper that does not know this reports "no more results" and quietly loses the rest. This one detects the ceiling and tells you, in the log and in the run summary.

To get past it, split the search: more locations, a narrower date window, or separate employment types. Four searches of 1,000 beat one search of 4,000, which does not exist.


Pricing

$0.15 per 1,000 jobs, plus Apify platform usage.

Plan tierPrice per 1,000 jobs
Free / Bronze$0.17
Silver, Gold, Platinum, Diamond$0.15

Platform usage is billed by Apify at your own plan rate, separately from the scraper charge. Measured with descriptions on and a residential proxy: roughly $0.24 per 1,000 jobs, most of it proxy traffic for the one extra request each description costs. Turn Scrape full job descriptions off and that drops by around 10x.

Set Max jobs to cap any run exactly. It counts unique jobs across every search, so overlapping keywords never bill twice — the same posting found by two searches is delivered once.


FAQ

Do I need a LinkedIn account or cookie? No. That is the whole point of this scraper. Tools that ask for your li_at cookie are logging in as you, and LinkedIn restricts accounts for it.

What am I giving up by not logging in? The signed-out surface has no recruiter contact details and no "job poster" profile, and applicant counts are the coarse public ones. Everything else — description, company, salary, criteria — is here.

Is scraping LinkedIn jobs legal? This reads public job adverts that LinkedIn publishes deliberately and serves to anyone, with no login and no paywall. Job postings are advertisements meant to be seen. What you do with the data afterwards is your responsibility.

Why is the salary field usually empty? Because most advertisers do not publish one. When it is on the posting, it is in the field.

Why did I get fewer jobs than LinkedIn's own count shows? Either the search hit the ~1,000 ceiling (check the run summary), or LinkedIn's count is inflated — it includes postings it will not serve to a signed-out visitor.

Can I scrape jobs from a specific company? Yes. Use Company IDs, or paste a search URL already filtered to that company.

Can I run it on a schedule? Yes. Set Sort by to Most recent and Date posted to Past 24 hours, then run it daily to collect only what is new.

How fast is it? Measured on the platform: 40 jobs from 4 searches in 33 seconds, 37 of them with full descriptions.


  • Website Contact Scraper — emails, phones and socials for any list of company domains. Pairs well with the companies you find here
  • Google Search Scraper — organic SERP results with rank tracking
  • TikTok Ad Library Scraper, Meta Ads Library Scraper, Google Ads Transparency Center Scraper — competitor ad intelligence