Linkedin Jobs Scraper avatar

Linkedin Jobs Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Linkedin Jobs Scraper

Linkedin Jobs Scraper

Scrape LinkedIn job listings fast with this LinkedIn Jobs Scraper 💼 Extract job titles, company names, locations, descriptions, salaries, and posting dates with ease 📊 Perfect for job market research, lead generation, recruitment, and hiring trends analysis 🔍🚀

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScraperX

ScraperX

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

15 days ago

Last modified

Share

Linkedin Jobs Scraper

The Linkedin Jobs Scraper is a fast, reliable LinkedIn job postings scraper that automates public job searches and extracts structured listings data at scale. It solves the repetitive, time-consuming task of gathering hiring signals by letting you scrape LinkedIn jobs via keyword and company searches with pagination, filtering, and intelligent proxy fallback. Built for marketers, developers, data analysts, and researchers, this LinkedIn jobs scraping tool enables recruitment analytics, lead generation, and market research pipelines — from one-off queries to large-scale datasets. 🚀

What data / output can you get?

Data fieldDescriptionExample value
idLinkedIn job posting ID4304041530
publishedAtPublication date (derived from “posted time”)2025-09-23
salarySalary range extracted from criteria/description$141,000.00/yr - $202,000.00/yr
titleJob titleSoftware Engineer, Full Stack, Google Workspace
jobUrlDirect URL to the job postinghttps://www.linkedin.com/jobs/view/...-4304041530
companyNameCompany nameGoogle
companyUrlCompany LinkedIn page URLhttps://www.linkedin.com/company/google
locationJob locationSeattle, WA
postedTimeHuman-readable posted time1 day ago
applicationsCountNumber of applicants (text)68 applicants
contractTypeEmployment typeFull-time
experienceLevelSeniority levelNot Applicable
workTypeJob function/categoryInformation Technology and Engineering
sectorIndustry sectorInformation Services and Technology, Information and Internet
applyUrlDirect application URLhttps://careers.google.com/jobs/results/...
applyTypeApplication methodEXTERNAL
descriptionFull job description (plain text)Full job description text...
descriptionHtmlJob description (HTML)
benefitsBenefits detected from descriptionhealth insurance, medical, dental, vision
companyIdLinkedIn company ID1441
posterProfileUrlJob poster’s profile URL (if present)https://www.linkedin.com/in/...
posterFullNameJob poster’s full name (if present)Jane Doe

Notes:

  • Results are saved to the Apify dataset and can be exported as JSON, CSV, or Excel from the console.
  • Some fields may be empty if not present on the public posting (e.g., salary, poster metadata).

Key features

  • 🔁 Intelligent proxy fallback
    Automatically escalates from no proxy ➜ datacenter ➜ residential (with retries) when LinkedIn blocks requests, keeping runs stable and resilient.

  • 🧠 Keyword and company search
    Target roles by keywords and/or specific companies using names, LinkedIn URLs, or numeric IDs — a versatile LinkedIn job data extractor for multiple workflows.

  • 📍 Advanced filtering
    Filter by location, publishedAt (24h/week/month), workType (on‑site/remote/hybrid), contractType, experienceLevel, and geoId to refine results.

  • 📄 Comprehensive job data
    Capture titles, companies, locations, salaries, publishing dates, applicants, descriptions (plain text & HTML), employment type, apply URLs, benefits, and more.

  • 📚 Pagination with duplicate detection
    Navigates LinkedIn’s guest search pagination endpoint and avoids duplicate IDs for clean datasets.

  • ⚙️ Robust error handling & retries
    Unified fetch with retries, backoff, and blocked-content detection for consistent runs — more reliable than a typical LinkedIn job scraper Chrome extension.

  • 🧪 No login required
    Operates on public pages and guest endpoints — no cookies or authenticated sessions needed.

  • 🧰 Developer-friendly (Python)
    Implemented as an Apify actor in Python (aiohttp + lxml). Easy to integrate as a LinkedIn jobs API alternative in pipelines or with your LinkedIn job scraper Python workflows.

  • 🔌 Export & integration ready
    Export datasets in JSON/CSV/Excel or connect to analytics, enrichment, and automation tools to automate LinkedIn job scraping end-to-end.

How to use Linkedin Jobs Scraper - step by step

  1. Sign in to your Apify account and open the Apify Console.
  2. Go to Actors and select “linkedin-jobs-scraper”.
  3. In the Input tab, configure:
    • companyInput: Add company names, LinkedIn company URLs, or numeric IDs (supports lists).
    • keywords: Add a role or query (e.g., “Software Engineer”).
    • location and filters: Set location, publishedAt, workType, contractType, experienceLevel, and geoId as needed.
    • maxJobs: Choose how many jobs to collect.
    • proxyConfiguration: Keep default (no proxy) or enable Apify Proxy — the actor auto-falls back if blocked.
  4. Click Start to run the actor.
  5. Monitor Live logs for progress — you’ll see collection and scraping phases with batching and delays.
  6. When finished, open the Dataset tab to review results.
  7. Export as JSON, CSV, or Excel for BI tools, CRMs, or further analysis.

Pro tip: Combine keyword-only searches with location and date filters to automate LinkedIn job search scraping and export LinkedIn job postings for downstream analytics and enrichment.

Use cases

Use caseDescription
Job market research (by role/region)Analyze demand by role and geography; track volumes, salary mentions, and growth over time.
Competitive intelligence (company hiring)Monitor competitor hiring patterns across functions, levels, and locations.
Salary benchmarking (by title)Aggregate public salary mentions for compensation benchmarking and trend analysis.
Talent acquisition alertsWatch new postings in target companies or roles to accelerate sourcing and outreach.
Academic & policy researchStudy labor market signals by industry and geography using reproducible datasets.
Data enrichment via API pipelinesFeed datasets from Apify runs into internal APIs, warehouses, or dashboards.
Lead generation & B2B targetingBuild lists of hiring companies by extracting LinkedIn job postings at scale.

Why choose Linkedin Jobs Scraper?

Built for precision, automation, and reliability, this LinkedIn jobs scraping tool delivers clean, structured datasets without login.

  • ✅ Accurate fields: Extract titles, companies, locations, salaries, publishing dates, apply links, and both plain text & HTML descriptions.
  • 🌍 Targeted & flexible: Mix keyword, company, and location filters (including geoId) for precise datasets.
  • 📈 Scales with your workload: Supports bulk inputs and paginated collection with duplicate detection.
  • 🧑‍💻 Developer-ready: Python-based actor (aiohttp + lxml) outputting clean JSON/CSV for pipelines — a practical LinkedIn jobs API alternative.
  • 🛡️ Public-only data: Scrapes publicly available content; no private or authenticated data access.
  • 🧩 Integration friendly: Export to CSV/JSON/Excel and plug into automation tools or scripts.
  • 🔒 Operational resilience: Automatic proxy escalation (none ➜ datacenter ➜ residential) with backoff and retries — more reliable than browser extensions.

In short, it’s a production-grade LinkedIn jobs scraping tool for analytics, recruiting, and research.

Yes — when used responsibly. The actor collects data from publicly available LinkedIn pages and does not access private or password‑protected content. You are responsible for ensuring compliance with applicable laws and LinkedIn’s Terms of Service in your jurisdiction. Guidelines include:

  • Only collect public data.
  • Avoid personal or sensitive information processing.
  • Comply with regulations like GDPR/CCPA where applicable.
  • Use scraped data responsibly (e.g., avoid spam). For edge cases, consult your legal team.

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 parameters

  • companyInput (array)

    • Description: 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.
    • Default: prefill ["Google"]
    • Required: No
  • keywords (string)

    • Description: Job title or keywords to search for (e.g., 'Software Engineer', 'Developer'). Leave empty to get all jobs.
    • Default: "Software Engineer"
    • Required: No
  • location (string)

    • Description: Job location filter (e.g., 'United States', 'New York, NY').
    • Default: "United States"
    • Required: No
  • maxJobs (integer)

    • Description: Maximum number of jobs to scrape. Default is 200.
    • Default: 20
    • Required: No
  • sortOrder (string; one of: "", "relevance", "date")

    • Description: Sort order for results (optional).
    • Default: ""
    • Required: No
  • maxComments (integer)

    • Description: Maximum comments to retrieve (optional, for future use).
    • Default: 0
    • Required: No
  • publishedAt (string; one of: "", "r86400", "r604800", "r2592000")

    • Description: Filter by publication date. Options: 'r86400' (last 24 hours), 'r604800' (last week), 'r2592000' (last month).
    • Default: ""
    • Required: No
  • workType (string; one of: "", "1", "2", "3")

    • Description: Filter by work type. Options: '1' (on-site), '2' (remote), '3' (hybrid).
    • Default: ""
    • Required: No
  • contractType (string; one of: "", "F", "P", "C", "T", "I", "V")

    • Description: Filter by contract type. Options: 'F' (full-time), 'P' (part-time), 'C' (contract), 'T' (temporary), 'I' (internship), 'V' (volunteer).
    • Default: ""
    • Required: No
  • experienceLevel (string; one of: "", "1", "2", "3", "4", "5")

    • Description: Filter by experience level. Options: '1' (internship), '2' (entry), '3' (associate), '4' (mid-senior), '5' (director).
    • Default: ""
    • Required: No
  • geoId (string)

    • Description: Geographic ID for more specific location filtering (optional).
    • Default: ""
    • Required: No
  • proxyConfiguration (object)

    • Description: 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.
    • Default: prefill { "useApifyProxy": false }
    • Required: No

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 posting.

FAQ

Do I need to provide a company to scrape jobs?

No. You can run keyword-only searches using the keywords field, optionally combined with location and other filters.

Does this require login or cookies?

No. The actor operates on public LinkedIn pages and guest endpoints, so no login is required.

How does the proxy fallback work?

By default, the actor starts with no proxy. If a request is blocked, it automatically falls back to an Apify datacenter proxy and then to a residential proxy with up to 3 retries, with brief waits to re-establish the session.

How many jobs can I scrape per run?

Set maxJobs from 1 to 10,000 (schema limit). The default value in the input schema is 20.

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), experienceLevel (1–5), and geoId for more specific locations.

What data fields are included in the output?

Each record includes id, title, companyName, location, salary, publishedAt, postedTime, jobUrl, companyUrl, applyUrl, applyType, contractType, experienceLevel, workType, sector, applicationsCount, description, descriptionHtml, benefits, companyId, posterProfileUrl, and posterFullName.

Can I export results?

Yes. After the run completes, open the Dataset and export to JSON, CSV, or Excel directly from Apify.

Is this a LinkedIn jobs API alternative?

Yes. It functions as a LinkedIn jobs scraping tool that collects public postings without official API access, making it a practical LinkedIn jobs API alternative for research and automation.

Closing CTA / Final thoughts

The Linkedin Jobs Scraper is built to automate public LinkedIn job searches and export structured results at scale. With advanced filters, resilient proxy fallback, and comprehensive fields (including descriptions, apply links, and salary mentions), it’s ideal for recruiters, analysts, marketers, and developers. Run it from the Apify Console to export LinkedIn job postings to JSON/CSV/Excel, or connect its datasets into your analytics and automation workflows. Start extracting smarter hiring insights with a reliable LinkedIn jobs crawler today.