LinkedIn Jobs Scraper with Salary & Company Enrichment

Search public LinkedIn job listings by keyword, location, salary band, job type and more, with full descriptions, parsed salary ranges, inferred seniority, visa-sponsorship mentions and enriched hiring-company details. No cookies or login required.

Open in Apify Store$0.99 / 1K on Free

Short answer

LinkedIn Jobs Scraper with Salary & Company Enrichment is an Apify Store Actor for LinkedIn Jobs data that returns 22 published output fields, including title, companyName, location, salary. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 29 input settings, none required. It covers 6 of the 7 core LinkedIn Jobs fields this site tracks. Last updated Nov 11, 2026.

From the public Store listing and published build schema, synced 2026-11-12.
LinkedIn Jobs JobsAutomationLead generation

What it returns

22 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.

  • title
  • companyName
  • location
  • salary
  • salarySource
  • applicantCount
  • easyApply
  • employmentType
  • seniorityLevel
  • postedDate
  • expiresAt
  • jobUrl
  • salaryRange.currency
  • salaryRange.minYearly
  • salaryRange.maxYearly
  • companyIndustry
  • companySize
  • companyHeadquarters
  • companyFounded
  • companyFollowersCount
  • companyWebsite
  • companyNumericId

Not in the schema among the core LinkedIn Jobs fields: description. The field matrix shows which other tools return them.

Input

Input settings for LinkedIn Jobs Scraper with Salary & Company Enrichment
SettingTypeRequiredDefaultWhat it does
searchQueries array No – Job titles, skills or phrases to search for, one per line (e.g. 'data analyst', 'registered nurse'). Each keyword is searched in every location you list, and results are merged without duplicates.
searchUrls array No – Paste job search links copied from LinkedIn (linkedin.com/jobs/search/?...). The keywords, location and filters inside each link are kept.
jobUrls array No – Scrape specific job postings: paste job links (linkedin.com/jobs/view/...) or numeric job IDs. Postings that have been taken down are skipped.
locations array No – Cities, regions or countries in English (e.g. 'Germany', 'Austin, Texas', 'London Area, United Kingdom'). Every keyword is searched in each location. A location LinkedIn doesn't recognise is reported and skipped rather than silently searched as the United States. Leave empty to search worldwide.
geoIds array No – Optional numeric LinkedIn location IDs (the geoId value in a LinkedIn search link, e.g. 101282230 for Germany). Use these for exact places in any language.
distance string No – Search radius around a city-level location, in miles.
timePosted string No – Only jobs posted (or reposted) within this period.
companies array No – Only jobs from these employers. Enter company names (e.g. 'General Motors'), LinkedIn company or university page links, or numeric company IDs. Leave the keywords empty to get all of a company's open jobs.
excludeCompanies array No – Skip jobs from these employers (exact company name or LinkedIn company page link).
easyApply boolean No false Only jobs you can apply to directly on LinkedIn.
Show the other 19 settings
More input settings for LinkedIn Jobs Scraper with Salary & Company Enrichment
SettingTypeRequiredDefaultWhat it does
under10Applicants boolean No false Only jobs that have had fewer than 10 applicants so far.
experienceLevel string No – Only jobs listed at this seniority level on LinkedIn. Jobs that LinkedIn lists as 'Not Applicable' are left out when a level is chosen.
jobType string No – Only jobs with this employment type.
industry array No [] Only jobs from employers in these LinkedIn industries.
companySizes array No [] Only jobs from employers of these sizes, as listed on their LinkedIn page. Each employer's page is looked up once. Jobs whose employer size isn't listed are kept.
excludeStaffingAgencies boolean No false Skip jobs posted by employers in LinkedIn's 'Staffing and Recruiting' industry.
requireSalary boolean No false Only jobs that state their pay, either in LinkedIn's pay range box or in the job description.
minYearlySalary integer No – Skip jobs whose stated pay range tops out below this yearly amount. Hourly, weekly and monthly pay is converted to a yearly figure. The amount is compared in the job's own currency, so set 'Salary currency' to compare like with like. Jobs without a stated salary are kept unless 'Only jobs with a sal
salaryCurrency string No – Only jobs whose stated pay is in this currency. Also sets the currency of 'Minimum yearly salary'. Jobs without a stated salary are kept unless 'Only jobs with a salary' is on.
requireRecruiter boolean No false Only jobs where LinkedIn shows the person who posted the job.
includeTitleKeywords array No – Keep only jobs whose title contains at least one of these words (not case-sensitive). Useful because LinkedIn's keyword matching is broad.
excludeTitleKeywords array No – Skip jobs whose title contains any of these words, e.g. 'Senior' or 'Intern'.
excludeJobIds array No – Job IDs (the 'id' field of an earlier run) to leave out, so scheduled runs return only new postings.
scrapeJobDetails boolean No true Open each job to add the full description, salary, seniority, job type, industry, applicant count, recruiter and Easy Apply status. Turn off for a fast list of titles, companies, locations and dates only. Filters that need these details switch it on automatically.
includeCompanyDetails boolean No true Add each employer's LinkedIn profile: industry, size, headquarters, website, founding year, office locations, followers, tagline and description. Fetched once per company.
enrichmentDepth string No standard Standard returns each job's core details. Extended also adds similar jobs, 'people also viewed' jobs, related searches and LinkedIn's numeric industry and title IDs, and asks LinkedIn again when the exact posting time is missing, so it takes longer per job.
language string No en Language LinkedIn uses for labels such as job type and seniority. Job descriptions stay in the language they were written in. Locations must still be typed in English.
splitLargeSearches boolean No true LinkedIn returns at most 1,000 jobs for one search. When a search reaches that limit, continue with the same search limited to the past month, week, 3 days and 24 hours, which surfaces many more jobs (duplicates removed).
maxItems integer No 100 Stop after saving this many jobs. A single keyword + location search returns at most 1,000 jobs; add keywords or locations to collect more.

Example input

Built from the input form's published example values and defaults.

{
  "searchQueries": [
    "Python Developer"
  ],
  "locations": [
    "United States"
  ],
  "easyApply": false,
  "under10Applicants": false,
  "industry": [],
  "companySizes": [],
  "excludeStaffingAgencies": false,
  "requireSalary": false,
  "requireRecruiter": false,
  "scrapeJobDetails": false,
  "includeCompanyDetails": false,
  "enrichmentDepth": "standard",
  "language": "en",
  "splitLargeSearches": true,
  "maxItems": 3
}

Run it from code or an AI agent

The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.

Python

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
    "searchQueries": [
        "Python Developer"
    ],
    "locations": [
        "United States"
    ],
    "easyApply": False,
    "under10Applicants": False,
    "industry": [],
    "companySizes": [],
    "excludeStaffingAgencies": False,
    "requireSalary": False,
    "requireRecruiter": False,
    "scrapeJobDetails": False,
    "includeCompanyDetails": False,
    "enrichmentDepth": "standard",
    "language": "en",
    "splitLargeSearches": True,
    "maxItems": 3
}

run = client.actor("nimbryxo-studio/linkedin-jobs-scraper-with-salary-and-company").call(run_input=run_input)
if run is None:
    raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

pip install apify-client

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
    "searchQueries": [
        "Python Developer"
    ],
    "locations": [
        "United States"
    ],
    "easyApply": false,
    "under10Applicants": false,
    "industry": [],
    "companySizes": [],
    "excludeStaffingAgencies": false,
    "requireSalary": false,
    "requireRecruiter": false,
    "scrapeJobDetails": false,
    "includeCompanyDetails": false,
    "enrichmentDepth": "standard",
    "language": "en",
    "splitLargeSearches": true,
    "maxItems": 3
};

const run = await client.actor("nimbryxo-studio/linkedin-jobs-scraper-with-salary-and-company").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

npm install apify-client

cURL

curl -X POST "https://api.apify.com/v2/actors/nimbryxo-studio~linkedin-jobs-scraper-with-salary-and-company/run-sync-get-dataset-items"   -H "Authorization: Bearer $APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"searchQueries":["Python Developer"],"locations":["United States"],"easyApply":false,"under10Applicants":false,"industry":[],"companySizes":[],"excludeStaffingAgencies":false,"requireSalary":false,"requireRecruiter":false,"scrapeJobDetails":false,"includeCompanyDetails":false,"enrichmentDepth":"standard","language":"en","splitLargeSearches":true,"maxItems":3}'

Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).

MCP (AI agents)

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=nimbryxo-studio/linkedin-jobs-scraper-with-salary-and-company",
      "headers": {
        "Authorization": "Bearer <YOUR_APIFY_TOKEN>"
      }
    }
  }
}

Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.

What a run costs

The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.

Cost of LinkedIn Jobs Scraper with Salary & Company Enrichment results by Apify plan
Apify planPer 1,00010,000 results100,000 results
Free plan$0.99$9.90$99
Starter plan$0.82$8.20$82
Scale plan$0.66$6.60$66
Business plan$0.49$4.90$49
  • Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
  • The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
  • Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
  • Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.

Where it fits among LinkedIn Jobs routes

It ranks 1 of 1 catalogue Actors for LinkedIn Jobs on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.

Route diagram for LinkedIn Jobs dataLinkedIn Jobs Scraper with Salary & Company Enrichment: stops at 5 of the 10 fields shown; Other Store tools (5): stops at 10 of the 10 fields shown; LinkedIn Talent APIs: partner, field coverage not compared.LinkedIn Jobsdescriptiontitlecompanylocationposted atsalaryapplicationsCo…applyTypeapplyUrlcontractType1+API

Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.

Official route: LinkedIn Talent APIs

Partner only. Job data access is available to approved talent partners. There is no open, self-serve job search API.

Partner arrangements only; pricing is not public.

Official documentation

Other Store tools for LinkedIn Jobs

Reference only, from their public listings.

Other Store tools for LinkedIn Jobs
ToolFieldsPrice / 1K
Rapid Linkedin Jobs Scraper23$0.10
LinkedIn Jobs Scraper42$0.70
LinkedIn Jobs Scraper40$1.25
Advanced LinkedIn Job Search API72$5.00
Job Scraper: LinkedIn Jobs, Indeed Scraper, Glassdoor Scraper41$6.00

What people use it for

  • research job openings
  • compare compensation and employers

Bayt.com MENA Job Listing & Salary Scraper

Search Bayt.com job listings across Middle East and North Africa countries by keyword, location, career level, and employment type. Get titles,…

$0.99 per 1K

Czech Jobs.cz Postings, Salary & Brigady Finder

Search Jobs.cz Czech job postings and part-time brigady gigs by keyword, city, or profession, with salary, employment type, education, and…

14 output fields $0.99 per 1K

Glassdoor Job Listings Salary & Rating Scraper

Pull Glassdoor job listings by keyword and location or from a single company's jobs page, with salary estimates, employer ratings, Easy Apply…

15 output fields $0.99 per 1K

HelloWork France Job Listings & Salary Filter Scraper

Search HelloWork.com by keyword, region, city, sector or job function, and filter by contract type, remote-work frequency, experience level,…

8 output fields $0.99 per 1K

Indeed Global Job Scraper with Company Salary Reports

Search Indeed jobs across 62 countries by keyword, location, or filters for job type, remote status, experience, education, and salary. Returns…

42 output fields $0.99 per 1K

JobStreet Southeast Asia Job Search by Keyword & Country

Search JobStreet across Singapore, Malaysia, the Philippines, Indonesia and Thailand by keyword or country, with salary, job type and a direct…

15 output fields $0.99 per 1K

Questions people ask

How much does LinkedIn Jobs Scraper with Salary & Company Enrichment cost?

The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.

What data does LinkedIn Jobs Scraper with Salary & Company Enrichment return?

Its published output schema lists 22 fields: title, companyName, location, salary, salarySource, applicantCount, easyApply, employmentType, seniorityLevel, postedDate, expiresAt, jobUrl, and 10 more. A listed field is not guaranteed to be filled in every row.

What input does LinkedIn Jobs Scraper with Salary & Company Enrichment need?

No input is strictly required; the defaults run as is. Common settings: searchQueries, searchUrls, jobUrls, locations, geoIds, distance.

How do I run LinkedIn Jobs Scraper with Salary & Company Enrichment from Python or the API?

Use the Apify API client: in Python, ApifyClient(token).actor("nimbryxo-studio/linkedin-jobs-scraper-with-salary-and-company").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("nimbryxo-studio/linkedin-jobs-scraper-with-salary-and-company").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/nimbryxo-studio~linkedin-jobs-scraper-with-salary-and-company/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.

Sources

Actor updated 2026-11-11 Data synced 2026-11-12
Cite this page

Scraper Finder. "LinkedIn Jobs Scraper with Salary & Company Enrichment." https://scraperfinder.com/catalogue/linkedin-jobs-scraper-with-salary-and-company/ (data checked 2026-11-12).

Run LinkedIn Jobs Scraper with Salary & Company Enrichment

$0.99 per 1,000 results. Paste the example input above, set your LinkedIn Jobs query, then export the dataset. Still choosing? Compare every LinkedIn Jobs route.

Open in Apify Store