LinkedIn Jobs Scraper avatar

LinkedIn Jobs Scraper

Pricing

from $0.00005 / actor start

Go to Apify Store
LinkedIn Jobs Scraper

LinkedIn Jobs Scraper

Scrape job listings from LinkedIn's public job search

Pricing

from $0.00005 / actor start

Rating

0.0

(0)

Developer

Pramod Konde

Pramod Konde

Maintained by Community

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:

  1. Search stage — Queries LinkedIn for each job title and collects basic info (title, company, location, posted date, salary if shown)
  2. 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

FieldTypeDefaultDescription
jobTitlesstring[]["Software Engineer"]One or more job titles to search for. Each runs as a separate search.
locationstring"United States"City, state, country, or region (e.g. "London", "Germany", "Remote")
datePostedselectanyAny time / Past 24h / Past week / Past month
jobTypesselect[][]Full-time, Part-time, Contract, Temporary, Internship, Volunteer
experienceLevelsselect[][]Internship, Entry, Associate, Mid-Senior, Director, Executive
workTypesselect[][]On-site, Remote, Hybrid
maxResultsPerSearchinteger100Max jobs per job title (LinkedIn caps at 1,000)
fetchJobDetailsbooleantrueVisit each job page for full description, salary, applicant count
proxyConfigurationproxyApify ResidentialStrongly 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.

FieldDescription
jobIdLinkedIn's internal job ID
searchQueryWhich job title query found this job
titleJob title
companyCompany name
companyUrlLink to the company's LinkedIn page
locationJob location as shown on LinkedIn
jobUrlDirect link to the job posting
postedAtDate the job was posted (ISO 8601)
salarySalary range if provided by the employer
applicantCountNumber of applicants (e.g. "Over 200 applicants")
seniorityLevele.g. "Mid-Senior level", "Director"
employmentTypee.g. "Full-time", "Contract"
jobFunctione.g. "Engineering", "Product Management"
industriese.g. "Software Development", "Financial Services"
descriptionLengthCharacter count of the full description
descriptionFull job description (plain text)
scrapedAtTimestamp 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: true and 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

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.