LinkedIn Jobs Scraper
Pricing
from $0.00005 / actor start
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Pramod Konde
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape job listings from LinkedIn's public job search — no login required. Search by multiple job titles, filter by location, date posted, job type, experience level, and work type (remote/hybrid/on-site). Extracts full job descriptions, applicant counts, salary info, and more.
What does this Actor do?
This Actor uses LinkedIn's public guest job search to collect job listings matching your criteria. It works in two stages:
- Search stage — Queries LinkedIn for each job title and collects basic info (title, company, location, posted date, salary if shown)
- Detail stage — Visits each job's detail page to extract the full description, applicant count, seniority level, employment type, job function, and industry
All results are saved to the Apify Dataset, downloadable as JSON, CSV, or Excel.
Input
| Field | Type | Default | Description |
|---|---|---|---|
jobTitles | string[] | ["Software Engineer"] | One or more job titles to search for. Each runs as a separate search. |
location | string | "United States" | City, state, country, or region (e.g. "London", "Germany", "Remote") |
datePosted | select | any | Any time / Past 24h / Past week / Past month |
jobTypes | select[] | [] | Full-time, Part-time, Contract, Temporary, Internship, Volunteer |
experienceLevels | select[] | [] | Internship, Entry, Associate, Mid-Senior, Director, Executive |
workTypes | select[] | [] | On-site, Remote, Hybrid |
maxResultsPerSearch | integer | 100 | Max jobs per job title (LinkedIn caps at 1,000) |
fetchJobDetails | boolean | true | Visit each job page for full description, salary, applicant count |
proxyConfiguration | proxy | Apify Residential | Strongly recommended — LinkedIn blocks datacenter IPs |
Example input
{"jobTitles": ["Product Manager", "Senior Product Manager"],"location": "San Francisco, CA","datePosted": "week","jobTypes": ["full-time"],"experienceLevels": ["mid-senior", "director"],"workTypes": ["remote", "hybrid"],"maxResultsPerSearch": 50,"fetchJobDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output
Each record in the Dataset represents one job listing. All fields are flat (no nested objects), compatible with CSV/Excel export.
| Field | Description |
|---|---|
jobId | LinkedIn's internal job ID |
searchQuery | Which job title query found this job |
title | Job title |
company | Company name |
companyUrl | Link to the company's LinkedIn page |
location | Job location as shown on LinkedIn |
jobUrl | Direct link to the job posting |
postedAt | Date the job was posted (ISO 8601) |
salary | Salary range if provided by the employer |
applicantCount | Number of applicants (e.g. "Over 200 applicants") |
seniorityLevel | e.g. "Mid-Senior level", "Director" |
employmentType | e.g. "Full-time", "Contract" |
jobFunction | e.g. "Engineering", "Product Management" |
industries | e.g. "Software Development", "Financial Services" |
descriptionLength | Character count of the full description |
description | Full job description (plain text) |
scrapedAt | Timestamp when this record was scraped |
Example output record
{"jobId": "3847291034","searchQuery": "Product Manager","title": "Senior Product Manager","company": "Stripe","companyUrl": "https://www.linkedin.com/company/stripe","location": "San Francisco, CA","jobUrl": "https://www.linkedin.com/jobs/view/3847291034","postedAt": "2024-03-20","salary": "$180,000 - $220,000","applicantCount": "47 applicants","seniorityLevel": "Mid-Senior level","employmentType": "Full-time","jobFunction": "Product Management","industries": "Software Development","descriptionLength": 2847,"description": "We are looking for a Senior Product Manager to...","scrapedAt": "2024-03-26T10:00:00.000Z"}
Proxy requirements
LinkedIn actively blocks datacenter IP addresses. Without a residential proxy, you will see HTTP 999 errors and empty results.
This Actor is pre-configured to use Apify residential proxies by default. Residential proxies are available on Apify paid plans. If you're on a free plan, you can try without proxy but results may be incomplete.
Performance & limits
- LinkedIn caps public search results at ~1,000 results per keyword + location combination
- Using multiple specific job titles gives better coverage than one broad search
- With
fetchJobDetails: trueand residential proxies, expect roughly 30–60 jobs per minute - With
fetchJobDetails: false, it's significantly faster (~200 jobs/minute) but you won't get descriptions or salary - Memory: 256 MB minimum
Tips for best results
- Narrow your searches — "Senior React Developer" + "London" returns better results than "Developer" + "Europe"
- Use date filters — "Past week" removes stale listings and speeds up the run
- Multiple job titles — Add variations:
["Data Scientist", "Machine Learning Engineer", "ML Engineer"] - Combine with location — Run separate Actor instances for different cities if needed
Legal disclaimer
This Actor scrapes LinkedIn's publicly accessible job search pages (no authentication required). LinkedIn's robots.txt allows indexing of /jobs/ paths. This Actor does not circumvent any login or paywall. Use responsibly and in compliance with LinkedIn's Terms of Service.
Disclaimer: This Actor is unofficial and not affiliated with, endorsed by, or supported by LinkedIn Corporation.