Linkedin Jobs Scraper
Pricing
$19.99/month + usage
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
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 type | Description | Example value |
|---|---|---|
| id | LinkedIn job posting ID | 4304041530 |
| title | Job title | Software Engineer, Full Stack |
| companyName | Company name | |
| companyUrl | Company LinkedIn page URL | https://www.linkedin.com/company/google |
| jobUrl | Direct URL to the job posting | https://www.linkedin.com/jobs/view/... |
| location | Job location (text) | Seattle, WA |
| publishedAt | Publication date (YYYY-MM-DD) inferred from posted time | 2025-09-23 |
| postedTime | Human-readable posted time on the card | 1 day ago |
| applicationsCount | Applicants count text | 68 applicants |
| salary | Salary range or amount detected in listing | $141,000/yr - $202,000/yr |
| contractType | Employment type (falls back to Full-time if missing) | Full-time |
| experienceLevel | Required seniority | Not Applicable |
| workType | Job function/category | Information Technology and Engineering |
| sector | Industries | Information Services and Technology |
| applyUrl | Direct application URL (external or LinkedIn) | https://careers.google.com/... |
| applyType | Application channel | EXTERNAL |
| description | Full job description (plain text) | … |
| descriptionHtml | HTML version of the description | |
| benefits | Extracted benefits keywords/text | health insurance, medical, dental |
| companyId | LinkedIn company ID if detected | 1441 |
| posterProfileUrl | Job poster profile URL (if present) | https://www.linkedin.com/in/... |
| posterFullName | Job 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
- Sign in at https://console.apify.com.
- Open the actor named “linkedin-jobs-scraper”.
- 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.
- Set maxJobs to control how many results to collect (default 20; up to 10,000).
- Configure proxyConfiguration if you want to start with Apify Proxy; otherwise, it begins without a proxy and will fall back automatically if blocked.
- Click Start. The run will collect job IDs, then scrape full job details with built‑in rate limiting and retries.
- 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 name | Description |
|---|---|
| Talent acquisition monitoring | Track new postings from target companies and locations to feed your sourcing pipeline and outreach. |
| Competitive intelligence | Analyze competitor hiring velocity, functions, and seniority levels to infer strategic focus. |
| Salary benchmarking | Aggregate salary mentions by title and region for more accurate compensation insights. |
| Market research & trend analysis | Study job trends across regions and industries to guide product and hiring strategy. |
| HR analytics & reporting | Build dashboards with publication dates, functions, and industries for executive reporting. |
| Data enrichment via API | Orchestrate scheduled runs and send JSON to your data warehouse or BI tools. |
| Academic & labor studies | Collect 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.
Is it legal / ethical to use Linkedin Jobs Scraper?
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.