LinkedIn Jobs Scraper avatar
LinkedIn Jobs Scraper

Pricing

from $1.40 / 1,000 results

Go to Apify Store
LinkedIn Jobs Scraper

LinkedIn Jobs Scraper

Scrape job listings from LinkedIn. Search by keywords, location, job type, experience level, and more. Extract job details, company information, and application links.

Pricing

from $1.40 / 1,000 results

Rating

0.0

(0)

Developer

Artificially

Artificially

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape job listings from LinkedIn without login. Search by keywords, location, job type, experience level, and more. Extract job details, company information, and direct application links.

Built by Artificially | Follow us on X @artificially_io

Features

  • No login required - Uses LinkedIn's public guest API
  • Powerful filters - Job type, experience level, date posted, remote/on-site
  • Multiple queries - Search for multiple job titles in one run
  • Reliable extraction - Robust parsing with fallback selectors
  • Duplicate detection - Automatically removes duplicate listings
  • Rate limit handling - Built-in retries and respectful delays
  • Proxy support - Works with Apify Proxy for reliable results

Input

FieldTypeDescriptionDefault
searchQueriesarrayJob search keywordsRequired
locationstringLocation to search in-
maxJobsintegerMax jobs per query (1-1000)100
jobTypearrayfull-time, part-time, contract, etc.All
experienceLevelarrayentry, mid-senior, director, etc.All
datePostedstringany, past-24h, past-week, past-monthany
remoteFilterstringany, remote, on-site, hybridany
proxyConfigurationobjectProxy settingsApify Proxy

Example Input

{
"searchQueries": ["software engineer", "data scientist"],
"location": "San Francisco, CA",
"maxJobs": 100,
"jobType": ["full-time"],
"experienceLevel": ["entry", "associate"],
"datePosted": "past-week",
"remoteFilter": "remote",
"proxyConfiguration": {
"useApifyProxy": true
}
}

Output

Each job listing contains:

FieldTypeDescription
jobIdstringLinkedIn job ID
titlestringJob title
companystringCompany name
companyUrlstringLinkedIn company page URL
companyLogoUrlstringCompany logo image URL
locationstringJob location
listingDatestringWhen job was posted (e.g., "2 days ago")
listingDateParsedstringISO date when available
jobUrlstringDirect link to job posting
searchQuerystringThe search query that found this job
scrapedAtstringWhen the data was scraped

Example Output

{
"jobId": "3812345678",
"title": "Senior Software Engineer",
"company": "Tech Company Inc",
"companyUrl": "https://www.linkedin.com/company/tech-company",
"companyLogoUrl": "https://media.licdn.com/dms/image/...",
"location": "San Francisco, CA (Remote)",
"listingDate": "1 week ago",
"listingDateParsed": "2024-01-08T00:00:00.000Z",
"jobUrl": "https://www.linkedin.com/jobs/view/3812345678",
"searchQuery": "software engineer",
"scrapedAt": "2024-01-15T10:30:00.000Z"
}

Usage

Via Apify Console

  1. Go to the LinkedIn Jobs Scraper page
  2. Enter search keywords and location
  3. Configure filters as needed
  4. Click "Start"
  5. Download results in JSON, CSV, or Excel

Via API

curl -X POST "https://api.apify.com/v2/acts/artificially~linkedin-jobs-scraper/runs" \
-H "Authorization: Bearer <your_api_token>" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["software engineer"],
"location": "New York",
"maxJobs": 50,
"jobType": ["full-time"],
"datePosted": "past-week"
}'

Via JavaScript SDK

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<your_api_token>' });
const input = {
searchQueries: ['software engineer', 'data scientist'],
location: 'San Francisco, CA',
maxJobs: 100,
jobType: ['full-time'],
remoteFilter: 'remote',
};
const run = await client.actor('artificially/linkedin-jobs-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(job => {
console.log(`${job.title} at ${job.company} - ${job.location}`);
});

Via Python SDK

from apify_client import ApifyClient
client = ApifyClient("<your_api_token>")
run_input = {
"searchQueries": ["software engineer", "data scientist"],
"location": "San Francisco, CA",
"maxJobs": 100,
"jobType": ["full-time"],
}
run = client.actor("artificially/linkedin-jobs-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['title']} at {item['company']} - {item['location']}")

Use Cases

  • Job Market Research - Analyze hiring trends and in-demand skills
  • Salary Benchmarking - Compare compensation across companies
  • Recruitment Intelligence - Track competitor hiring patterns
  • Career Monitoring - Get alerts for new job postings
  • Skills Analysis - Identify most requested qualifications
  • Geographic Analysis - Compare job markets across locations

Tips for Best Results

  1. Enable Proxy - LinkedIn may block requests without proxy
  2. Use Specific Keywords - More specific queries yield better results
  3. Try Location Variations - "San Francisco" vs "San Francisco, CA" vs "Bay Area"
  4. Combine Filters - Use multiple filters to narrow results
  5. Start Small - Test with 50 jobs before scaling up

Pricing

ResourceCost
Platform usage~$1.79 per 1,000 jobs
Actor fee$2.00 per 1,000 jobs
Total~$3.79 per 1,000 jobs

Limitations

  • LinkedIn limits guest API results to ~1000 jobs per search
  • Some company logos may not be available
  • Rate limiting is applied to respect LinkedIn's servers

Changelog

v1.0.0

  • Initial production release
  • Robust job parsing with multiple fallback selectors
  • Automatic retry on rate limiting
  • Duplicate detection
  • All major filters supported

This actor scrapes publicly available job listings from LinkedIn's guest API. No login or authentication is required or used. Please respect LinkedIn's Terms of Service and use responsibly for legitimate business purposes.

Support