LinkedIn Jobs Scraper avatar

LinkedIn Jobs Scraper

Pricing

from $2.52 / 1,000 results

Go to Apify Store
LinkedIn Jobs Scraper

LinkedIn Jobs Scraper

Scrape LinkedIn job listings by keyword, country, location, remote, recency, and currency with structured job, salary, company, and application fields.

Pricing

from $2.52 / 1,000 results

Rating

5.0

(3)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

7

Bookmarked

342

Total users

43

Monthly active users

14 hours ago

Last modified

Share

LinkedIn Jobs Scraper - LinkedIn Job Listings API for 98 Countries

LinkedIn Jobs Scraper exports up to 10,000 structured job listings per run across 98 supported countries. Search by keyword and country, optionally narrow by location, distance, remote status, posting age, or job type, and receive a consistent 41-field dataset covering job details, salary, company information, application signals, and public contacts when available.

TL;DR: Enter a keyword, choose a country, set the result limit, and add only the optional filters you need. The Actor searches LinkedIn's public job pages without requesting LinkedIn credentials and stores normalized results in the default dataset.

LinkedIn 98 Countries 41 Fields


Why Choose This API

LinkedIn job data with a stable output contract

🌍 98-country search surface

Choose from 98 supported countries, including Czechia, Zambia, Puerto Rico, Bangladesh, Russia, and other markets missing from the previous public selector.

🎯 Flexible optional filters

Use location, distance, remote-only, posting-age, and employment-type filters. Each optional filter is applied only when you supply it.

πŸ“‹ 41 normalized fields

Every result uses the same field names for source URLs, job attributes, salary, company data, application signals, and public contact details. Source-dependent values remain null when LinkedIn or the employer does not expose them.

πŸ’° Salary normalization

Collect disclosed salary ranges and pay periods when present. The optional currency field converts available salary values after collection; it does not change which listings LinkedIn returns.

πŸ“¦ Workflow-ready datasets

Use the default dataset for hiring-signal monitoring, compensation research, job-board feeds, ATS enrichment, market analysis, or scheduled exports.


Quick Start Guide

Export LinkedIn jobs in 3 steps

Open Actor Input

Enter keyword, choose country, and set max_results. Add only the optional filters you want to apply.

Step 2: Run the Actor

Click Start. Leave location empty for a country-level search, or enter a city or region and optionally set distance.

Step 3: Use the dataset

Preview the default dataset or export it in JSON, CSV, Excel, XML, RSS, or another format supported by Apify.


Input Parameters

Configuration fields

ParameterTypeRequiredDescriptionExample
keywordstringYesJob title, skill, or company nameData Engineer
countryselectYesOne of 98 supported countriesZambia
max_resultsintegerYesMaximum jobs to return, from 1 to 10,000500
remote_onlybooleanNoRestrict results to remote positionstrue
distanceintegerNoSearch radius in miles around location, from 50 to 10,00050
locationstringNoCity or region; the selected country is used when omittedLusaka
posted_sincedateNoLimit results to a relative or absolute posting window7 days
job_typeselectNofulltime, parttime, contract, or internshipcontract
currencyselectNoTarget currency for converting available salary valuesUSD

Filter behavior

  • location is combined with the selected country when it does not already contain that country.
  • distance is sent only when explicitly supplied.
  • remote_only restricts results to remote positions.
  • posted_since limits results to the selected posting-age window.
  • job_type supports full-time, part-time, contract, or internship roles.
  • currency is a post-collection salary conversion, not a LinkedIn search filter.

Example input

{
"keyword": "Data Engineer",
"country": "Zambia",
"max_results": 500,
"location": "Lusaka",
"distance": 50,
"posted_since": "7 days",
"job_type": "contract",
"remote_only": true,
"currency": "USD"
}

Output Data Schema

Complete 41-field job record

Every dataset item uses the fields below. Nullable fields make missing source data explicit.

Run and source fields

FieldTypeDescription
processorstring or nullApify Actor URL that processed the record
processed_atstring or nullUTC processing timestamp
platformstring or nullSource platform, normally LinkedIn
platform_urlstring or nullLinkedIn job listing URL
official_urlstring or nullEmployer's original listing URL when available

Core job fields

FieldTypeDescription
titlestring or nullJob title
posted_datestring or nullPosting date or relative posting text
valid_throughstring or nullClosing or expiration date when available
locationobject or nullStructured location with raw and standardized values
applicant_countinteger or nullApplicant count when LinkedIn exposes it
is_remoteboolean or nullWhether the listing indicates remote or hybrid work
descriptionstring or nullJob description and requirements

Classification fields

FieldTypeDescription
job_typestring or nullEmployment type
job_levelstring or nullSeniority level
job_functionstring or nullDepartment or job function
listing_typestring or nullListing classification when available
skillsstring or nullSkills and attributes identified for the role
work_from_homestring or nullRemote or hybrid arrangement
vacancy_countinteger or nullNumber of openings when available
experience_rangestring or nullExperience requirement when available
easy_applyboolean or nullWhether direct application is available

Salary fields

FieldTypeDescription
salary_periodstring or nullPay period, such as yearly or hourly
salary_minimumnumber or nullMinimum disclosed salary
salary_maximumnumber or nullMaximum disclosed salary
salary_currencystring or nullISO currency code

Company fields

FieldTypeDescription
company_namestring or nullHiring company name
company_typestring or nullCompany ownership type when available
company_foundedinteger or nullFounding year when available
company_industrystring or nullIndustry or sector
company_urlstring or nullLinkedIn company profile URL
company_websitestring or nullOfficial company website
company_logostring or nullCompany logo URL
company_addressesstring or nullCompany address text
company_revenuestring or nullRevenue range when available
company_descriptionstring or nullCompany overview
company_ratingnumber or nullCompany rating when available
employee_countstring or nullEmployee range when available
review_countinteger or nullReview count when available

Public contact fields

FieldTypeDescription
emailsarray or nullPublic company or hiring emails when discoverable
phonesarray or nullPublic company or hiring phone numbers when discoverable
social_linksobject or nullPublic company social URLs grouped by platform

Integration Examples & Options

The verified Actor ID is nmdyrR62YooFl1bBS.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nmdyrR62YooFl1bBS").call(
run_input={
"keyword": "Data Engineer",
"country": "United States",
"max_results": 100,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('nmdyrR62YooFl1bBS').call({
keyword: 'Data Engineer',
country: 'United States',
max_results: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Direct API request

curl -X POST "https://api.apify.com/v2/acts/nmdyrR62YooFl1bBS/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword":"Data Engineer","country":"United States","max_results":100}'

Make and n8n

Use the Apify integration in Make or n8n, select Actor ID nmdyrR62YooFl1bBS, pass the same input object, wait for the run to finish, and read the default dataset items.

  • Open the Actor's API tab for generated requests in other supported languages.
  • Connect completed runs to webhooks or another Apify integration.
  • Read the default dataset directly or export it in an Apify-supported format.

JSON-LD Metadata

{
"@context": "https://schema.org",
"@graph": [
{
"@type": "SoftwareApplication",
"@id": "https://apify.com/agentx/linkedin-jobs-scraper#software",
"name": "LinkedIn Jobs Scraper",
"description": "Scrape LinkedIn job listings across 98 countries and export 41 structured job, salary, company, application, and public contact fields when available.",
"applicationCategory": "BusinessApplication",
"applicationSubCategory": "Job Scraping API",
"operatingSystem": "Web, Cloud",
"url": "https://apify.com/agentx/linkedin-jobs-scraper",
"dateModified": "2026-07-19",
"featureList": [
"Searches 98 supported countries",
"Returns a consistent 41-field dataset",
"Supports optional location, distance, remote, date, job type, and currency controls",
"Exports results through Apify datasets and integrations"
],
"author": { "@id": "https://apify.com/agentx#organization" },
"publisher": { "@id": "https://apify.com#organization" }
},
{
"@type": "Organization",
"@id": "https://apify.com/agentx#organization",
"name": "AgentX",
"url": "https://apify.com/agentx",
"sameAs": ["https://apify.com/agentx", "https://t.me/AiAgentApi"]
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How many countries can I select?",
"acceptedAnswer": { "@type": "Answer", "text": "The input offers 98 supported countries. Czechia is the accepted country name." }
},
{
"@type": "Question",
"name": "Can I combine the optional filters?",
"acceptedAnswer": { "@type": "Answer", "text": "Yes. Location, distance, remote-only, posting-age, and job-type filters are independently applied when supplied." }
},
{
"@type": "Question",
"name": "What happens when location is empty?",
"acceptedAnswer": { "@type": "Answer", "text": "The selected country is used as the search location. The Actor does not invent a city or region." }
},
{
"@type": "Question",
"name": "How much does 1,000 results cost?",
"acceptedAnswer": { "@type": "Answer", "text": "At the FREE tier, 1,000 results cost $2.80 plus the Actor start event. At GOLD, PLATINUM, or DIAMOND, 1,000 results cost $2.52 plus the Actor start event." }
}
]
},
{
"@type": "HowTo",
"name": "How to export LinkedIn jobs with LinkedIn Jobs Scraper",
"step": [
{ "@type": "HowToStep", "position": 1, "name": "Configure the search", "text": "Enter a keyword, choose a country, set the maximum results, and add only the optional filters you need." },
{ "@type": "HowToStep", "position": 2, "name": "Run the Actor", "text": "Click Start. Leave Location empty for a country-level search or provide a city or region for a local search." },
{ "@type": "HowToStep", "position": 3, "name": "Use the dataset", "text": "Preview or export the default dataset, or connect the completed run to an Apify integration." }
]
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Apify", "item": "https://apify.com" },
{ "@type": "ListItem", "position": 2, "name": "AgentX", "item": "https://apify.com/agentx" },
{ "@type": "ListItem", "position": 3, "name": "LinkedIn Jobs Scraper", "item": "https://apify.com/agentx/linkedin-jobs-scraper" }
]
}
]
}

Pricing & Cost Calculator

Pay-per-event pricing

Event or tierPriceBilling unit
Actor start$0.01Run start event; the count depends on Actor memory, with a minimum of one
FREE result$0.00280One default dataset result
BRONZE result$0.00271One default dataset result
SILVER result$0.00261One default dataset result
GOLD result$0.00252One default dataset result
PLATINUM result$0.00252One default dataset result
DIAMOND result$0.00252One default dataset result

Example costs at the default memory setting

PlanResultsResult costActor startEstimated total
FREE500$1.40$0.01$1.41
FREE1,000$2.80$0.01$2.81
FREE5,000$14.00$0.01$14.01
GOLD or higher1,000$2.52$0.01$2.53

Actual cost depends on the number of results produced, the user's plan, and the number of Actor start events charged for the selected memory.


Use Cases & Applications

Recruiting and talent intelligence

  • Track open roles by title, skill, employer, country, or city.
  • Monitor competitor hiring velocity with scheduled runs.
  • Build sourcing or ATS research datasets with stable field names.

Compensation and workforce research

  • Compare disclosed salary ranges by role and market.
  • Normalize available salary values into a selected currency.
  • Analyze employment type, seniority, skills, remote status, and posting age.

Job products and automation

  • Populate a niche job board or internal opportunity feed.
  • Schedule recurring labor-market snapshots.
  • Send normalized datasets to a CRM, warehouse, dashboard, webhook, or automation platform.

FAQ

How many countries can I select?

The input offers 98 supported countries. Czechia is the accepted name; the obsolete Czech Republic selector value was removed.

Can I combine the optional filters?

Yes. Location, distance, remote-only, posting-age, and job-type filters are independently applied when supplied.

What happens when location is empty?

The selected country is used as the search location. The Actor does not invent a city or region.

Does currency filter jobs?

No. currency converts available salary values after collection and does not affect the LinkedIn search.

Does every result include salary, applicant, and company details?

No. Those values remain null when the public listing or employer page does not expose reliable data.

How much does 1,000 results cost?

At the FREE tier, 1,000 results cost $2.80 plus the Actor start event. At GOLD, PLATINUM, or DIAMOND, 1,000 results cost $2.52 plus the Actor start event.


Trust & Data Responsibility

  • Verified inputs: every public filter is supported and optional filters are applied only when supplied.
  • Transparent billing: the Actor start event and every plan's result price are listed above.
  • Explicit nullability: missing source values are not presented as verified facts.
  • No LinkedIn credentials requested: the input schema does not ask for a LinkedIn username, password, cookie, or token.

LinkedIn Jobs Scraper is intended for lawful collection and analysis of publicly accessible job-listing data. You are responsible for reviewing LinkedIn's terms, applicable privacy and database laws, employment-data rules, and the permitted use of contact information in each jurisdiction. This documentation is not legal advice.


Enrich Your Workflow

Support & Community

Last Updated: 2026-07-19