LinkedIn Jobs Scraper icon

LinkedIn Jobs Scraper

Scrape LinkedIn job search results without logging in - keywords, location, date and remote filters. Clean output with company, location, seniority and skills; optional full descriptions. Fast and low-cost.

$1.20 per 1,000 job15 public runs in 30 daysupdated 2026-11-06
Try it

Build the input, get the call

Change any field; the code on the right follows. Copy it, or run the same input on Apify.

What to search for, e.g. `backend engineer`, `data analyst`, `product manager`.

City, region or country, e.g. `Berlin`, `United States`, `Remote`.

Only jobs posted within this window.

Ask LinkedIn for remote jobs only.

Optional cap on search pages to read (about 10 jobs each). Leave empty to read until "Max jobs".

Maximum number of jobs to return.

Open each job's own page for more fields (full description, employment type and applicant count). Slower - one extra request per job - and only for jobs that pass your filters.

Filters

Keep a job only if its title contains any of these words (case-insensitive), e.g. `engineer`, `developer`.

Drop a job whose title contains any of these words (case-insensitive), e.g. `intern`, `manager`.

Keep a job only if its location contains any of these (case-insensitive), e.g. `Berlin`, `Remote`.

Keep only jobs posted in the last N days. Jobs whose board doesn't publish a date are kept.

Keep only jobs the posting itself marks as remote.

Keep only these work arrangements. Jobs whose posting doesn't state it are dropped when this is set.

Keep only these employment types.

Keep only these seniority levels.

Keep only these job functions (engineering, data, sales, ...).

Keep a job only if its title, description or skills mention any of these, e.g. `Kubernetes`, `Python`, `SQL`.

Drop jobs from companies whose name contains any of these, e.g. staffing agencies.

Keep jobs paying at least this per year (hourly and monthly pay are converted), in the posting's currency. Jobs that don't publish pay are kept unless "Only jobs with salary" is on.

Keep only jobs that publish their pay.

Keep only jobs whose posting says visa sponsorship is available.

Monitoring

Return only jobs that no earlier run with the same input has delivered. Schedule the Actor and you pay only for new jobs.

Return only jobs that are new or changed since the last run with the same input (or monitor name): changed jobs carry `changeType: "changed"` and `changes` with the old and new salary, location or title. Search results are partial, so jobs...

Output

What you get back

The fields every row has.

FieldWhat it holds
titleJob title
company / companySlugCompany name and its board handle
location / locationsLocation as listed, and every listed location
city / region / country / countryCodeStructured location (ISO country code)
workMode / remoteremote, hybrid or onsite - only when the posting says so
employmentTypefull_time, part_time, contract, internship, temporary, freelance
seniorityintern, junior, mid, senior, lead, principal, director, executive
yearsExperienceMin / yearsExperienceMaxRequired experience, when stated
jobFunctionEngineering, data, product, design, sales, marketing, AI training, ...
skillsSkills named in the posting
salary{min, max, currency, period, annualMin, annualMax} when pay is published
educationLevel / visaSponsorshipDegree asked for, and visa sponsorship when stated
department / teamOrganization details, when available
summary / descriptionShort summary and full description
url / applyUrlPosting and apply links
postedAtIso / postedDaysAgoPosting date (ISO 8601) and its age in days
source / scrapedAtWhere the job came from and when it was collected

Download as JSON, CSV, Excel or XML from the run, or have it sent to Google Sheets, Slack or a webhook.

Guide

How LinkedIn Jobs Scraper works

Inputs, options and tips, from the tool's own documentation.

Get public LinkedIn job search results, no login needed - as a clean spreadsheet-ready dataset in seconds. Export to JSON, CSV or Excel, send to Google Sheets or your database, or call it as an API from your own app or AI agent.

Built for recruiters and sourcers, job boards and aggregators, sales teams tracking who's hiring, analysts studying the job market, and job seekers who want every new opening first.

Why this scraper

  • Fast. Dozens of jobs in a couple of seconds; hundreds in well under a minute.
  • Costs almost nothing to run. Platform usage of a typical run is a fraction of a cent. You mostly pay for results, not for machine time.
  • Starts instantly. A tiny container means runs begin in seconds, and the always-on API mode (below) answers without any start-up wait.
  • Handles rate limits for you. When a site says "slow down" (HTTP 429), the Actor waits exactly as long as the site asks, then continues. Server hiccups, timeouts and dropped downloads are retried automatically, and request speed adapts to how the site responds.
  • Never loses or double-bills work. Results are saved as each search finishes. If the platform moves your run to another server, it continues where it stopped without charging twice. Set a maximum charge and it stops cleanly at your limit, keeping everything collected so far.
  • Clean, consistent data. Every job has the same fields - structured city/region/country with ISO code, remote/hybrid/on-site (only when the posting says so), employment type, seniority, years of experience, job function, skills, and salary converted to a yearly figure for easy comparison. The same format is used by all of our job scrapers, so you can mix sources in one table.
  • Simple to set up. Type what you're looking for and where, and press Start. No LinkedIn account or cookies needed.

How to use it

  1. Enter Search keywords and, optionally, a Location, a date window and Remote jobs only.
  2. Optionally narrow results with the Filters: title words, location, posting age, work mode, employment type, seniority, job function, skills mentioned, minimum salary, visa sponsorship, companies to skip.
  3. Press Start. Download the results from the Output tab, or connect an integration.

Example input

json
{
  "query": "backend engineer",
  "location": "Germany",
  "datePosted": "week",
  "maxItems": 100
}

Monitor new jobs on a schedule

Turn on Only new jobs and schedule the Actor (hourly, daily, weekly). Each run returns only postings earlier runs haven't delivered - you're charged only for new ones. Connect Slack, email, Google Sheets, Zapier, Make or a webhook to get them pushed to you automatically.

Changes only goes one step further: each run returns only new jobs and jobs whose salary, location or title changed, with the old and new values. (Search results are partial, so jobs that drop out aren't reported as closed.)

Use it as an instant API

The Actor also runs in Standby mode - an always-ready endpoint that returns jobs straight in the response, ideal for apps, spreadsheets and AI agents. Find the URL on the Standby tab:

bash
curl "https://<standby-url>/?query=backend%20engineer&location=Berlin&maxItems=20" \
  -H "Authorization: Bearer <YOUR_APIFY_TOKEN>"

Any input field works as a query parameter, or POST the full input as JSON. The response is {"success": true, "count": 20, "items": [ ... ]}.

Pricing

Pay per result: about $1.20 per 1,000 jobs (lower on higher Apify plans) plus a tiny start fee. Filtered-out, duplicate and (with Only new jobs) already-seen jobs are free. Because the Actor needs so little memory and time, platform usage stays close to zero. See the Pricing tab for exact rates, and set a maximum charge per run to cap spend.

On Apify's free plan each run returns up to 500 jobs - plenty to try everything. Any paid Apify plan removes the limit.

More job sources

Need several boards at once? Job Board Harvester - Multi-Platform combines all of them (and career-page links from any supported board) in one run, in the same format.

Single-board scrapers: Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Recruitee, Personio, Teamtailor, Wellfound, Dice, Built In, Himalayas, AI training jobs.

Questions

Questions about LinkedIn Jobs Scraper

Do I need a LinkedIn account?

No. The Actor reads LinkedIn's public job search, the same results anyone sees without logging in.

How many jobs can I get per search?

LinkedIn shows up to about 1,000 results for one search. For more, split by location or keywords.

Is it legal?

The Actor collects publicly listed job postings. You're responsible for how you use the data - for personal data in descriptions, follow the laws that apply to you (e.g. GDPR).

Can I get the data in Excel or Google Sheets?

Yes - export from the Output tab, or add the Google Sheets integration to fill a sheet automatically after every run.

How much does LinkedIn Jobs Scraper cost?

$1.20 per 1,000, charged only for jobs returned; a run that finds nothing costs nothing. It runs on Apify, whose free plan includes monthly credit, so you can try it without paying.

Do I need to write code?

No. Fill in the form on Apify and press Start, schedule it, or send the results to Google Sheets, Slack or a webhook. For code, the input builder on this page writes the API call in curl, Python or JavaScript.

What does LinkedIn Jobs Scraper return?

Every row has the same fields, including title, company / companySlug, location / locations, city / region / country / countryCode, workMode / remote, employmentType, seniority, yearsExperienceMin / yearsExperienceMax. Download as JSON, CSV, Excel or XML.

Can it run on a schedule and return only new results?

Yes. Schedule it on Apify (hourly, daily, weekly) and turn on the only-new option: each run then returns only what appeared since the last run with the same input.

Use cases

What people use LinkedIn Jobs Scraper for

  • Export LinkedIn job search results
  • Track jobs by keyword and location daily
  • Hiring trend and competitor hiring research

Also searched as

LinkedIn jobs API LinkedIn job postings export LinkedIn job search scraper LinkedIn jobs to CSV LinkedIn jobs data scrape LinkedIn jobs

Categories

Jobs and hiring Jobs Lead generation