Linkedin Jobs Scraper avatar

Linkedin Jobs Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Linkedin Jobs Scraper

Linkedin Jobs Scraper

💼 LinkedIn Jobs Scraper (linkedin-jobs-scraper) for Node.js automates scraping of LinkedIn job postings—titles, companies, locations, descriptions, salary, seniority, apply links & more. 🔎 Keyword/geo/date filters, retries & proxies. ⚡ Ideal for recruiting, sourcing, market intel & HR analytics.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeEngine

ScrapeEngine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Linkedin Jobs Scraper

Linkedin Jobs Scraper is a production-ready LinkedIn jobs scraper tool that automates LinkedIn jobs data extraction from public listings at scale. It solves the tedious, error-prone task of manually collecting LinkedIn job postings by programmatically scraping titles, companies, locations, descriptions, salary mentions, seniority, apply links, and more. Built for recruiters, marketers, developers, data analysts, and researchers, this LinkedIn job postings scraper supports company-focused and keyword searches with robust filters and proxy fallback for reliability. Use it to power LinkedIn job search automation and repeatable pipelines for sourcing, competitive analysis, and HR analytics — at scale.

What data / output can you get?

Below are the exact fields this LinkedIn job listings scraper saves to the Apify dataset. You can export to JSON, CSV, or Excel.

Data typeDescriptionExample value
idLinkedIn job posting ID4304041530
titleJob titleSoftware Engineer, Full Stack
companyNameCompany nameGoogle
companyUrlCompany LinkedIn page URLhttps://www.linkedin.com/company/google
jobUrlDirect URL to the job postinghttps://www.linkedin.com/jobs/view/...
locationJob location (text)Seattle, WA
publishedAtPublication date (YYYY-MM-DD) inferred from posted time2025-09-23
postedTimeHuman-readable posted time on the card1 day ago
applicationsCountApplicants count text68 applicants
salarySalary range or amount detected in listing$141,000/yr - $202,000/yr
contractTypeEmployment type (falls back to Full-time if missing)Full-time
experienceLevelRequired seniorityNot Applicable
workTypeJob function/categoryInformation Technology and Engineering
sectorIndustriesInformation Services and Technology
applyUrlDirect application URL (external or LinkedIn)https://careers.google.com/...
applyTypeApplication channelEXTERNAL
descriptionFull job description (plain text)
descriptionHtmlHTML version of the description
benefitsExtracted benefits keywords/texthealth insurance, medical, dental
companyIdLinkedIn company ID if detected1441
posterProfileUrlJob poster profile URL (if present)https://www.linkedin.com/in/...
posterFullNameJob poster name (if present)Jane Doe

Note: Some fields may be empty if not present on the public listing (e.g., salary or poster details). Results are saved to the Apify dataset so you can download LinkedIn job postings as JSON, CSV, or Excel.

Key features

  • 🚀 Robust search modes
    Scrape by company name, LinkedIn company URL, or company ID — or use keywords for a LinkedIn job search scraper workflow without specifying a company.

  • 🎯 Precision filters
    Apply location, publication date (publishedAt), work type (on‑site/remote/hybrid), contract type, and experience level filters to focus on the roles you need.

  • 🔄 Smart pagination with duplicate detection
    Collects job IDs via LinkedIn’s jobs-guest pagination endpoint and stops when duplicates indicate there are no fresh results.

  • 🛡️ Intelligent proxy fallback
    Starts with no proxy by default; on blocks or rejections, automatically falls back to datacenter and then residential proxies with up to 3 retries for reliability.

  • 💬 Comprehensive data extraction
    Captures core fields plus salary detection, benefits extraction, EXTERNAL vs LINKEDIN apply types, and both text and HTML job descriptions.

  • 📦 Clean datasets, easy exports
    Saves results to the Apify dataset so you can export LinkedIn job data in JSON or CSV and plug into your analytics or automation pipeline.

  • 👩‍💻 Developer‑friendly, Python‑based
    Built as a Python Apify actor. Run from the Apify Console or via API — a reliable LinkedIn jobs scraping API alternative to brittle scripts.

  • 🔒 No login required
    Uses public jobs pages and LinkedIn’s jobs‑guest endpoints — a LinkedIn job scraper without API keys or account cookies.

How to use Linkedin Jobs Scraper - step by step

  1. Sign in at https://console.apify.com.
  2. Open the actor named “linkedin-jobs-scraper”.
  3. Add inputs:
    • Enter company names, LinkedIn company URLs, or company IDs in companyInput (string list).
    • Or set keywords to run a LinkedIn job search by title.
    • Optionally add location and filters like publishedAt, workType, contractType, and experienceLevel.
  4. Set maxJobs to control how many results to collect (default 20; up to 10,000).
  5. Configure proxyConfiguration if you want to start with Apify Proxy; otherwise, it begins without a proxy and will fall back automatically if blocked.
  6. Click Start. The run will collect job IDs, then scrape full job details with built‑in rate limiting and retries.
  7. When finished, open the OUTPUT tab to preview the dataset and export to JSON or CSV.

Pro Tip: Automate recurring collections from your backend via the Apify API — a stable way to scrape LinkedIn jobs with Python or other stacks.

Use cases

Use case nameDescription
Talent acquisition monitoringTrack new postings from target companies and locations to feed your sourcing pipeline and outreach.
Competitive intelligenceAnalyze competitor hiring velocity, functions, and seniority levels to infer strategic focus.
Salary benchmarkingAggregate salary mentions by title and region for more accurate compensation insights.
Market research & trend analysisStudy job trends across regions and industries to guide product and hiring strategy.
HR analytics & reportingBuild dashboards with publication dates, functions, and industries for executive reporting.
Data enrichment via APIOrchestrate scheduled runs and send JSON to your data warehouse or BI tools.
Academic & labor studiesCollect public job data for research on labor markets, skills, and geographic patterns.

Why choose Linkedin Jobs Scraper?

This LinkedIn jobs scraping service is engineered for precision, stability, and scale — without relying on logins or brittle browser extensions.

  • ✅ Accurate public data extraction with robust HTML parsing and fallbacks
  • 🔁 Scalable batch searches by company and/or keywords with pagination controls
  • 🧠 Built‑in retry logic and automatic proxy fallback for resilient runs
  • 🧩 Developer‑ready Python actor you can run via Apify Console or API
  • 💾 Clean datasets with JSON/CSV exports for analytics and automation
  • 🔒 Public data only; no login or private profiles accessed
  • 💡 A dependable alternative to ad‑hoc scripts or a LinkedIn job scraper Chrome extension

Bottom line: A production‑ready LinkedIn jobs crawler optimized for repeatable, high‑quality results.

Yes — when used responsibly. This actor extracts data from publicly available LinkedIn job pages and does not access private or authenticated content.

Guidelines for compliant use:

  • Only collect public job posting data.
  • Avoid scraping personal or private information.
  • Ensure your use complies with applicable regulations (e.g., GDPR/CCPA) and LinkedIn’s terms.
  • Use results responsibly and avoid spam or misuse.

For edge cases, consult your legal team to verify compliance for your jurisdiction and use case.

Input parameters & output format

Example input JSON:

{
"companyInput": ["Google", "https://www.linkedin.com/company/microsoft/"],
"keywords": "Software Engineer",
"location": "United States",
"maxJobs": 50,
"sortOrder": "",
"maxComments": 0,
"publishedAt": "r604800",
"workType": "2",
"contractType": "F",
"experienceLevel": "4",
"geoId": "",
"proxyConfiguration": {
"useApifyProxy": false
}
}

Input fields (type · description · default · required):

  • companyInput (array) · List of company names (e.g., “Google”), LinkedIn company URLs (e.g., “https://www.linkedin.com/company/google/”), or company IDs (e.g., “1441”). Supports bulk input. · no default (prefill example: ["Google"]) · not required
  • keywords (string) · Job title or keywords to search for (e.g., “Software Engineer”, “Developer”). Leave empty to get all jobs. · "Software Engineer" · not required
  • location (string) · Job location filter (e.g., “United States”, “New York, NY”). · "United States" · not required
  • maxJobs (integer) · Maximum number of jobs to scrape. Default is 200. · 20 (min 1, max 10000) · not required
  • sortOrder (string) · Sort order for results (optional). Allowed values: "", "relevance", "date". · "" · not required
  • maxComments (integer) · Maximum comments to retrieve (optional, for future use). · 0 · not required
  • publishedAt (string) · Filter by publication date. Options: "r86400" (last 24 hours), "r604800" (last week), "r2592000" (last month). · "" · not required
  • workType (string) · Filter by work type. Options: "1" (on-site), "2" (remote), "3" (hybrid). · "" · not required
  • contractType (string) · Filter by contract type. Options: "F" (full-time), "P" (part-time), "C" (contract), "T" (temporary), "I" (internship), "V" (volunteer). · "" · not required
  • experienceLevel (string) · Filter by experience level. Options: "1" (internship), "2" (entry), "3" (associate), "4" (mid-senior), "5" (director). · "" · not required
  • geoId (string) · Geographic ID for more specific location filtering (optional). · "" · not required
  • proxyConfiguration (object) · Choose which proxies to use. By default, uses no proxy. If LinkedIn rejects or blocks the request, falls back to datacenter proxy, then residential proxy with 3 retries. · {"useApifyProxy": false} (prefill) · not required

Example output JSON:

[
{
"id": "4304041530",
"publishedAt": "2025-09-23",
"salary": "$141,000.00/yr - $202,000.00/yr",
"title": "Software Engineer, Full Stack, Google Workspace",
"jobUrl": "https://www.linkedin.com/jobs/view/software-engineer-full-stack-google-workspace-at-google-4304041530",
"companyName": "Google",
"companyUrl": "https://www.linkedin.com/company/google",
"location": "Seattle, WA",
"postedTime": "1 day ago",
"applicationsCount": "68 applicants",
"description": "Full job description text...",
"contractType": "Full-time",
"experienceLevel": "Not Applicable",
"workType": "Information Technology and Engineering",
"sector": "Information Services and Technology, Information and Internet",
"applyUrl": "https://careers.google.com/jobs/results/...",
"applyType": "EXTERNAL",
"descriptionHtml": "<div>HTML description...</div>",
"companyId": "1441",
"benefits": "health insurance, medical, dental, vision",
"posterProfileUrl": "",
"posterFullName": ""
}
]

Output fields:

  • id, publishedAt, salary, title, jobUrl, companyName, companyUrl, location, postedTime, applicationsCount, description, contractType, experienceLevel, workType, sector, applyUrl, applyType, descriptionHtml, companyId, benefits, posterProfileUrl, posterFullName

Note: Some fields may be empty if not present on the public listing.

FAQ

Do I need to log in to scrape LinkedIn jobs?

No. The actor uses publicly accessible pages and LinkedIn’s jobs‑guest endpoints, so it works as a LinkedIn job scraper without API keys or login cookies.

How many jobs can I scrape per run?

You control this with maxJobs. The accepted range is 1 to 10,000 (default 20 per the input schema). The actor paginates through results and stops when limits or pagination signals are reached.

Can I scrape by company and by keyword?

Yes. Provide companyInput (names, LinkedIn URLs, or IDs) for company‑focused runs, or set keywords to run a LinkedIn job search across locations.

What filters are supported?

You can filter by location, publishedAt (last 24h/week/month), workType (on‑site/remote/hybrid), contractType (F/P/C/T/I/V), and experienceLevel (1–5). Combine filters to refine results.

How does proxy fallback work?

By default, the run starts with no proxy. If LinkedIn blocks or rejects a request, the scraper automatically falls back to Apify datacenter proxy and then to residential proxy with up to 3 retries, with delays and retry logic built in.

What output fields are included?

The dataset includes the job ID, title, companyName, companyUrl, jobUrl, location, publishedAt/postedTime, applicationsCount, salary, contractType, experienceLevel, workType, sector, applyUrl/applyType, description (text + HTML), benefits, companyId, and poster details when available.

Is this a LinkedIn jobs scraping API alternative?

Yes. This Python‑based Apify actor runs server‑side with retries, pagination, and proxy fallback — a robust LinkedIn jobs scraping API alternative to fragile scripts or extensions.

Can I export results?

Yes. Open the run’s OUTPUT in Apify and export to JSON or CSV for easy downstream use in analytics, sourcing, or enrichment workflows.

Closing CTA / Final thoughts

Linkedin Jobs Scraper is built to extract structured LinkedIn job data at scale without logins or brittle tooling. With keyword and company modes, rich filters, resilient proxy fallback, and clean JSON/CSV exports, it’s ideal for recruiters, analysts, researchers, and developers who need dependable LinkedIn jobs data extraction. Run it from the Apify Console or automate via the Apify API to power sourcing dashboards, market research, or enrichment pipelines. Start scraping smarter today with a reliable LinkedIn jobs crawler that’s ready for production.