Alfalfa

LinkedIn jobs scraper and API: public job postings as JSON, no login

LinkedIn has no public API for reading job postings, and its site paginates ten at a time behind a login prompt after a few pages. The postings themselves are public: companies pay to be found. This page shows how to get them as a table, which filters LinkedIn still honours, where the 1,000-result limit bites, and what each job record contains.

Updated September 2026. Fields and limits measured on the live site.

What LinkedIn offers, and what it does not

RouteWhat you get
Job Posting API (partners)Lets approved companies and ATS vendors post jobs. No reading of other companies' postings.
Job search on the websiteTen postings per page, filters, a login prompt after a few pages, no export.
Public job pagesTitle, company, location, date, applicants, full description and the criteria, visible to anyone without an account. This is what the scraper reads.

The scraper

The LinkedIn Jobs Scraper on Apify takes a keyword and a location (or a LinkedIn search URL, or single job URLs), pages through the results and opens every posting for the details. One record per job, the same field names as the most used LinkedIn jobs Actor, so an existing integration switches by changing the Actor name.

Calling it from code

curl -X POST "https://api.apify.com/v2/acts/alfalfa~linkedin-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"keywords":"data engineer","location":"Berlin","datePosted":"pastWeek","maxJobs":200}'

For larger jobs start the run asynchronously and read the dataset when it finishes; schedules, webhooks and the n8n, Make and Zapier nodes work the same way as for any Apify Actor. The API overview shows the pattern.

Things to know before you trust the numbers

Uses that pay for themselves

Questions people ask

Is this allowed?

Job postings are published to be found and are visible to anyone without an account. Reading public pages without logging in is the position US courts took in the hiQ v. LinkedIn cases. Use the data responsibly: recruiter names are personal data under GDPR, and reposting full descriptions elsewhere may infringe the poster's copyright.

Why is it this much cheaper than other LinkedIn scrapers?

Each job is a few kilobytes of data and the scraper runs in a small amount of memory, so platform costs per thousand jobs are cents. $0.50 per 1,000 leaves a fair margin.

Does it get company details too?

The company name, page URL and logo come with every job. For employee counts, websites, industry and offices, feed the company URLs to the LinkedIn Company Scraper.

Open the LinkedIn Jobs Scraper Read: the API overview