Practical Tools
LinkedIn Jobs Scraper – Fast & Affordable
2.7 (3)

LinkedIn Jobs Scraper – Fast & Affordable

The most affordable LinkedIn job scraper on Apify. Extract 1,000+ jobs in minutes, including full details (title, company, location, description, link). Pay-as-you-go, no cookies, no hassle.

Run on Apify

$1 per 1,000 job listings scraped (i.e. $0.001 per job) (pay-per-result)

LinkedIn Jobs Scraper – $1 per 1,000 Jobs. No Login. AI Search.

Extract LinkedIn job listings with pay-per-result pricing, optional full job descriptions, and AI-powered natural language search. No LinkedIn account required.

💰 Pricing

Event Cost
Job scraped $0.001 (1,000 jobs = $1.00)
Job description fetched $0.001 per description (optional)
  • No setup fees, no subscriptions, no per-run charges
  • Zero results = zero charge
  • Description fetching is opt-in — only pay for it if you enable it

📋 Output

Each job is a separate dataset item (one row per job). Download as JSON, CSV, or Excel from Apify.

Standard fields (always returned):

Field Description
jobId LinkedIn's internal job posting ID
title Job title
company Company name
location Job location
datePosted Posting date
url Direct link to the job posting
labels Badges like "Easy Apply", "Actively Hiring"
logo Company logo URL
discoveredAt Timestamp when the job was scraped
source Always "linkedin"

Optional field (when fetchDescription: true):

Field Description
description Full job description as plain text

🚀 How to Use

Simple search

{
  "keywords": "Product Manager",
  "location": "San Francisco Bay Area",
  "maxPages": 5
}

With job descriptions

{
  "keywords": "Software Engineer",
  "location": "New York",
  "maxPages": 3,
  "fetchDescription": true
}

Note: Enable fetchDescription when you need to filter by description content downstream. Each description costs one extra request and $0.001.

AI-powered natural language search

Describe your search in plain English instead of filling out individual fields:

{
  "naturalLanguageQuery": "senior product manager at Google or Meta in San Francisco, remote, posted last week",
  "useNaturalLanguage": true,
  "openaiApiKey": "your-openai-api-key",
  "fetchDescription": true
}

More examples:

  • "software engineer jobs in New York, entry level, full time"
  • "data scientist positions at startups, remote, from last week"
  • "marketing manager roles in Chicago or Austin, hybrid"

The AI (GPT-4-turbo) resolves company names to LinkedIn IDs, locations to geo IDs, and maps natural language filters to LinkedIn's search parameters. Falls back to regex parsing if the AI call fails.

Advanced filtering

{
  "keywords": "Software Engineer",
  "location": "United States",
  "experienceLevel": ["3", "4"],
  "workLocation": ["2", "3"],
  "contractType": ["1"],
  "timePosted": "r604800",
  "sortBy": "DD",
  "maxPages": 20,
  "fetchDescription": true
}

Search by company names

{
  "keywords": "Data Scientist",
  "companyNames": ["Google", "Microsoft", "Apple"],
  "timePosted": "r604800",
  "maxPages": 10
}

⚙️ Input Reference

Search parameters

Field Type Description
keywords string Job title, skills, or keywords
location string City, state, or country
geoId string LinkedIn geo ID (overrides location)
distance integer Search radius in miles (5–100)
companyNames string[] Company names (resolved to LinkedIn IDs)
companyIds string[] LinkedIn company IDs directly
industryIds string[] LinkedIn industry IDs

Filters

Field Type Values
experienceLevel string[] 1 Internship · 2 Entry · 3 Associate · 4 Mid-Senior · 5 Director · 6 Executive
workType string[] 1 Full-time · 2 Part-time · 3 Contract · 4 Temporary · 5 Volunteer · 6 Internship
workLocation string[] 1 On-site · 2 Remote · 3 Hybrid
timePosted string r3600 1h · r86400 24h · r604800 1w · r2592000 1mo
companySizes string[] 18 (1-10 up to 10,000+ employees)
easyApplyOnly boolean LinkedIn Easy Apply jobs only
sortBy string R Relevance · DD Date

Behavior options

Field Type Default Description
maxPages integer 1 Pages to scrape (10 jobs per page)
fetchDescription boolean false Fetch full job description for each job
maxRequestsPerCrawl integer 100 Hard cap on HTTP requests

Tip: When fetchDescription is enabled, each job uses 2 requests (1 search + 1 detail). Set maxRequestsPerCrawl accordingly — e.g. 10 jobs needs at least 20 requests.

AI search (optional)

Field Type Description
naturalLanguageQuery string Plain English job search query
useNaturalLanguage boolean Enable AI parsing
openaiApiKey string Your OpenAI API key (bring your own)

Advanced

Field Type Description
startUrls array Override with your own LinkedIn search URLs
linkedinParams object Raw LinkedIn query params (overrides friendly fields)
proxy object Apify proxy or custom proxy URLs

❓ FAQ

Do I need a LinkedIn account? No. The actor uses LinkedIn's public guest API — no authentication required.

Is this legal? This actor only accesses publicly available job listings that anyone can view without logging in.

When should I use fetchDescription? When you need to filter jobs by their content — required skills, responsibilities, salary info embedded in the description, etc. If you only need titles, companies, and locations, leave it off to save cost and time.

What if I get zero results? You pay nothing. Charges only apply to successfully scraped jobs and descriptions.

How does the AI search work? Your query is sent to GPT-4-turbo which extracts job title, location, company, experience level, work type, and time frame, then resolves them to LinkedIn's internal IDs. If the AI call fails, a regex fallback handles the parsing.

Do I need an OpenAI key? Only for natural language search. All other input modes work without one.

Can I use my own proxies? Yes — pass proxyUrls in the proxy field, or use Apify's residential proxy network via useApifyProxy: true.