LinkedIn Jobs Scraper - Search & Export avatar

LinkedIn Jobs Scraper - Search & Export

Pricing

from $0.03 / 1,000 result extracteds

Go to Apify Store
LinkedIn Jobs Scraper - Search & Export

LinkedIn Jobs Scraper - Search & Export

Export public LinkedIn jobs by keyword, location, date, experience, job type, Easy Apply, search URL, or direct URL. Download descriptions, company data, criteria, salary and applicant signals via CSV, Excel, JSON, API, or MCP.

Pricing

from $0.03 / 1,000 result extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

9

Monthly active users

9 days ago

Last modified

Share

LinkedIn Jobs Scraper

Search and export public LinkedIn job postings by keyword, location, filters, or LinkedIn Jobs search URLs.

Use this Actor to turn LinkedIn Jobs searches into clean recruiting, labor-market, sales, and job-board datasets. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.

Automate job-match scoring in n8n: Use the ready-made Score LinkedIn job matches with OpenAI, Google Sheets, Slack, and Apify workflow to run this Actor, rank job postings with AI, and send matches to your team.

At a glance

  • Public job search: Search LinkedIn Jobs by role, skill, company keyword, location, date posted, workplace type, and sort order.
  • Search URL reuse: Paste a public LinkedIn Jobs search URL when you already built the right search in the browser.
  • Detail enrichment: Optionally fetch job descriptions, seniority, employment type, industries, and applicant text from public job pages.
  • Hiring intelligence: Monitor hiring demand by company, role, region, seniority, skill, and remote or hybrid status.
  • API export: Send job rows to spreadsheets, CRMs, BI tools, job boards, matching pipelines, or AI agents.

Ready-to-run examples

Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.

What can it do?

LinkedIn Jobs Scraper collects public job posting data from LinkedIn Jobs and saves one dataset row per job posting.

  • Find matching roles: Enter one or more keywords such as software engineer, data analyst, nurse, or sales development representative.
  • Filter by market: Add a location, date-posted option, workplace type, and sort order.
  • Collect public details: Enable detail fetching when you need descriptions, criteria, industries, seniority, and applicant text.
  • Deduplicate results: The Actor deduplicates by LinkedIn job ID across searches and start URLs.
  • Export clean rows: Use the Apify UI, Dataset API, integrations, schedules, and webhooks.

Weekly competitor hiring intelligence with AI

Turn public job listings into a repeatable competitor brief:

  1. Save one focused search per competitor, role family, or region and run it weekly with an Apify schedule.
  2. Keep includeDetails: true when an AI model needs descriptions, seniority, employment type, or industry context—not only job counts.
  3. Send the finished dataset through an Apify webhook or API to n8n, a warehouse, or your AI workflow.
  4. Compare the current run with the previous snapshot, then ask the model to group roles by function, summarize new locations and skills, and cite each finding with jobUrl.
  5. Route the brief to a dashboard or an approved internal channel. Keep the raw rows for verification instead of relying on an uncited summary.

Choose the right source: Start here for broad public LinkedIn search by keyword and location. Add ATS Jobs Scraper for normalized employer-hosted boards across six ATS platforms, or Workday Jobs Scraper for named companies whose career sites run on Workday. These Actors produce separate datasets; join them downstream using company, title, location, and job URL rather than assuming identical schemas.

Common workflows

  • Recruiting research: Build lists of roles, companies, locations, and job URLs for sourcing and market mapping.
  • Lead generation: Find companies hiring for roles that indicate buying intent, growth, or an active initiative.
  • Labor-market analysis: Compare demand across locations, job titles, workplace types, or posting freshness.
  • Job-board ingestion: Export public LinkedIn job rows for review before adding them to downstream workflows.
  • Competitive tracking: Monitor target companies or role families on a daily or weekly schedule.
  • Student or job-seeker research: Export matching roles into a table for comparison and follow-up.

What data can you extract?

The Actor returns one dataset row per public LinkedIn job posting.

FieldDescription
jobIdLinkedIn job identifier
titleJob title
companyNameCompany name
companyUrlPublic LinkedIn company page URL when available
locationJob location text
postedAtTextPublic posted-age text
jobUrlDirect public LinkedIn job URL
descriptionPublic job description when detail fetching is enabled
employmentTypeEmployment type when visible
seniorityLevelSeniority level when visible
industriesIndustry text when visible
applicantsTextPublic applicant count text when visible
sourceSearchUrlSearch page that produced the job
scrapedAtISO timestamp for the scrape

Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

EventWhat is chargedPrice
startOne-time fee charged when a run starts. Covers fixed startup cost (init, proxy warmup, first HTTP setup).$0.005
EventWhat is chargedFree / no discountStarter / BronzeScale / SilverBusiness / GoldCustom / PlatinumCustom / Diamond
resultCharged per LinkedIn job posting extracted.$0.05956 / 1,000$0.05179 / 1,000$0.04039 / 1,000$0.03107 / 1,000$0.02072 / 1,000$0.0145 / 1,000

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

Input configuration

SettingJSON keyUse it forExample
KeywordskeywordsJob titles, skills, companies, or search phrases.["software engineer"]
LocationlocationLinkedIn location text for keyword searches.United States
LinkedIn jobs start URLsstartUrlsPublic LinkedIn Jobs search URLs to scrape in addition to keyword searches.[{"url":"https://www.linkedin.com/jobs/search/?keywords=product%20manager"}]
Maximum jobsmaxItemsCap saved job rows and spend.25
Include job descriptionsincludeDetailsFetch public detail pages for descriptions and criteria fields.true
Date posteddatePostedFilter by LinkedIn freshness options.pastWeek
Workplace typeworkplaceTypeKeep any, on-site, remote, or hybrid roles.remote
Sort bysortBySort by relevance or recent postings.recent
Proxy configurationproxyConfigurationUse Apify Proxy if requests are rate-limited.{"useApifyProxy":true}

Example input

{
"keywords": ["software engineer"],
"location": "United States",
"maxItems": 25,
"includeDetails": true,
"datePosted": "pastWeek",
"workplaceType": "remote",
"sortBy": "recent"
}

Example output

{
"jobId": "4374834620",
"title": "Software Engineer (New Grads)",
"companyName": "Giga",
"companyUrl": "https://www.linkedin.com/company/gigaml",
"location": "New York, NY",
"postedAtText": "5 days ago",
"jobUrl": "https://www.linkedin.com/jobs/view/software-engineer-new-grads-at-giga-4374834620",
"description": "About Giga...",
"employmentType": "Volunteer",
"seniorityLevel": "Not Applicable",
"industries": "Software Development",
"applicantsText": "Over 200 applicants",
"sourceSearchUrl": "https://www.linkedin.com/jobs-guest/jobs/api/seeMoreJobPostings/search?...",
"scrapedAt": "2026-06-17T11:13:45.322Z"
}

How to run it

  1. Open the Actor on Apify.
  2. Enter one or more keywords, a location, or public LinkedIn Jobs search URLs.
  3. Set maxItems to the number of jobs you want to save.
  4. Choose date, workplace, sort, and detail options.
  5. Start the run.
  6. Download the dataset or connect it to your workflow.

Search tips

  • Start specific: Use role names like backend engineer, account executive, or data analyst instead of one broad word.
  • Use one region per run: Separate locations make comparison and deduplication easier.
  • Monitor freshness: Use sortBy: "recent" and datePosted: "past24h" or pastWeek for alerts.
  • Control cost: Keep maxItems low while testing and increase it after the search returns relevant roles.
  • Fetch details only when needed: Disable includeDetails when company, title, location, and URL are enough.

Limits and caveats

  • The Actor extracts publicly visible LinkedIn Jobs data.
  • It does not access private recruiter data, logged-in-only data, messages, applicants, or private profiles.
  • LinkedIn may change page structures or rate-limit requests, so very large or broad runs should be split into focused searches.
  • Some optional fields are empty when LinkedIn does not show them publicly for a job.

Integrations

You can connect the dataset to downstream tools:

  • Export CSV or Excel to spreadsheets for recruiting reports.
  • Send company lists to a CRM for lead prioritization.
  • Use Apify schedules for daily or weekly hiring monitoring.
  • Trigger webhooks when a run finishes.
  • Pull results into a database, warehouse, BI dashboard, matching model, or AI agent.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/linkedin-jobs-scraper').call({
keywords: ['software engineer'],
location: 'United States',
maxItems: 25,
includeDetails: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/linkedin-jobs-scraper').call(run_input={
'keywords': ['software engineer'],
'location': 'United States',
'maxItems': 25,
'includeDetails': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~linkedin-jobs-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"keywords":["software engineer"],"location":"United States","maxItems":25,"includeDetails":true}'

MCP and AI agents

This Actor can be used through the official Apify MCP server at https://mcp.apify.com.

For a focused single-Actor tool setup, use:

https://mcp.apify.com?tools=fetch_cat/linkedin-jobs-scraper

Use the same JSON keys shown in the input configuration table, such as keywords, location, maxItems, includeDetails, datePosted, and workplaceType.

FAQ

Can I scrape LinkedIn jobs without a LinkedIn account?

Yes. This Actor targets public LinkedIn Jobs pages and public job data.

Can I export LinkedIn jobs to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, JSON, Excel, XML, RSS, HTML, or accessed through the API.

Why are some detail fields empty?

LinkedIn does not show every field on every public job. Detail fields also require includeDetails to be enabled.

Can I run it every day?

Yes. Use Apify schedules and set a focused query, date filter, and moderate maxItems value.

Changelog

  • 2026-07-20 - Integration: Added a ready-made n8n workflow for scoring LinkedIn job matches with OpenAI, Google Sheets, Slack, and Apify.

0.1

  • Initial public release with keyword, location, start URL, detail, workplace, date, and sort controls for public LinkedIn job postings.

Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses job-search inputs and public job-posting results to produce the output dataset and sends requests to public Linkedin Jobs pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.