LinkedIn Jobs Scraper - No Login, No Cookies
Pricing
from $2.10 / 1,000 results
LinkedIn Jobs Scraper - No Login, No Cookies
Scrape LinkedIn job postings by title and location: company, salary, applicants, seniority and full description. No login or cookies. $2.5/1k
Pricing
from $2.10 / 1,000 results
Rating
1.5
(2)
Developer
ScrapeVerse
Maintained by CommunityActor stats
11
Bookmarked
729
Total users
6
Monthly active users
2 hours ago
Last modified
Categories
Features
Share
LinkedIn Jobs Scraper — No Cookies, No Login, Hiring Signals API
LinkedIn Jobs Scraper turns a job title + location search into structured job postings: title, company, company LinkedIn URL, location, post date, salary (when shown), applicant count, seniority, employment type, industry and full description. No LinkedIn account, no cookies, no login. Set max_results (up to 1,000) and the scraper pages through LinkedIn automatically. $0.0025 per job ($2.50 per 1,000), billed only for jobs returned.
Where this fits in the ScrapeVerse LinkedIn pipeline
- Find hiring companies → LinkedIn Jobs Scraper (you are here)
- Enrich the employer → pass
company_linkedin_profileinto LinkedIn Company Profile Scraper for website, headcount, HQ and industry- Find the hiring manager → search names or titles with LinkedIn User Profile URL Mass Finder
Before you run: 30-second checklist
Most "it returned too few results" reports come from one of these. Read once, save a failed run.
| Check | What to do |
|---|---|
| How many jobs | Set max_results (default 25, maximum 1000). The scraper keeps paging until it reaches that number or LinkedIn runs out of matching jobs. You pay only for jobs returned. |
| Continue a previous run | Set offset to the number of jobs already collected (e.g. 100) to skip them. |
| Fewer jobs than requested? | The run's status message says why: LinkedIn had no more matches, or your maximum cost per run was reached. LinkedIn's public search stops at roughly 1,000 results per search. |
| Keep the search simple | job_title is a keyword search (e.g. Data Engineer). job_location accepts a country, state or city (United States, Texas, London). Very narrow combinations return fewer jobs. |
| Filters are optional | Leave experience_level, onsite_remote and job_type empty to get every job for the keyword. Each filter you add shrinks the result set. |
| Want descriptions? | Turn on detailed to get the full job description, applicant count, seniority, employment type, job function and industry. It costs more per job (see Pricing). |
| Proxy | Nothing to configure. Residential proxies are built in. |
What data does the LinkedIn Jobs Scraper extract?
| Field group | Output keys | Mode |
|---|---|---|
| Job identity | job_post_id, job_title, job_post_url | Basic |
| Company | company_name, company_linkedin_profile, company_logo | Basic |
| Location & date | job_location, job_post_date, job_post_date_timesago | Basic |
| Compensation & perks | job_post_salary (when LinkedIn shows it), job_post_benefit (e.g. "Actively Hiring", "Be an early applicant") | Basic |
| Hiring intent signals | no_of_applicants | Detailed |
| Role classification | seniority_level, employeement_type, job_function, industries | Detailed |
| Full description | job_desciption_rich_text (HTML) | Detailed |
How to scrape LinkedIn jobs
- Enter a Job title (keyword) and a Job location.
- Set Max results, e.g.
200. - Optionally pick Experience level, On-site/Remote and Job type filters.
- Turn on Detailed response if you need descriptions and seniority data.
- Click Start. Download results as JSON, CSV, Excel or HTML, or pull them via API.
Input example
{"job_title": "Data Engineer","job_location": "United States","experience_level": ["3", "4"],"onsite_remote": ["2"],"job_type": ["F"],"max_results": 200,"offset": 0,"detailed": true}
Filter values
| Filter | Values |
|---|---|
experience_level | 1 Internship · 2 Entry level · 3 Associate · 4 Mid-Senior · 5 Director · 6 Executive |
onsite_remote | 1 On-site · 2 Remote · 3 Hybrid |
job_type | F Full-time · C Contract · T Temporary · I Internship |
max_results | 1–1000 jobs per run (default 25) |
offset | Jobs to skip, e.g. 0 for a fresh search, 200 to continue after 200 |
Output example
[{"job_post_id": "3793693241","job_title": "NodeJS Developer","company_name": "Acme Services","company_logo": "https://media.licdn.com/dms/image/C4E0BAQF0U846FN-wUg/company-logo_100_100/...","company_linkedin_profile": "https://in.linkedin.com/company/acmeservices","job_location": "Ahmedabad, Gujarat, India","job_post_date": "2023-12-04","job_post_salary": "","job_post_date_timesago": "1 month ago","job_post_benefit": "Be an early applicant","job_post_url": "https://in.linkedin.com/jobs/view/nodejs-developer-at-acme-services-3793693241","job_desciption_rich_text": "Minimum of 2+ years of total work experience in NodeJS.<br><br>Developing and maintaining all server-side network components...","no_of_applicants": "Be among the first 25 applicants","seniority_level": "Entry level","employeement_type": "Full-time","job_function": "Other","industries": "Human Resources Services"}]
The last five fields appear only when detailed is true.
How much does it cost to scrape LinkedIn jobs?
This Actor uses pay-per-event pricing. You pay only for jobs delivered, and Apify platform usage (compute and proxies) is included.
| Mode | Price per job | 100 jobs | 1,000 jobs |
|---|---|---|---|
| Basic (listing fields) | $0.0025 | $0.25 | $2.50 |
| Detailed (+ description, applicants, seniority) | $0.0025 + $0.003 = $0.0055 | $0.55 | $5.50 |
The detailed surcharge applies only to jobs whose detail page was scraped successfully. Set a maximum cost per run and the scraper stops collecting once the budget is used.
What does Apify's free $5 monthly credit get you? About 2,000 basic job listings or 900 detailed listings every month, at no cost. A negligible $0.00005 start fee applies per run. Prices are current at the time of writing; the Pricing tab always shows the live rate.
Integrations: Clay, n8n, Make, Google Sheets and API
Call the Actor synchronously and get jobs back in one request:
curl -X POST "https://api.apify.com/v2/acts/scrapeverse~linkedin-jobs-scrapper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"job_title":"Data Engineer","job_location":"United States","max_results":100}'
For runs over a few hundred jobs, use the async /runs endpoint and fetch the dataset when the run finishes.
- n8n: run one search per keyword with the Apify node (Run Actor and get dataset items) or an HTTP Request node pointing at the URL above. Ready-made flow: n8n LinkedIn job intent pipeline.
- Clay: add an HTTP API column that POSTs the row's job title and location to the endpoint above, then map
company_nameandcompany_linkedin_profileinto new columns. - Make / Zapier: use the Apify app → Run an Actor → Get dataset items, then send new jobs to Slack, a CRM or a Google Sheet.
- Google Sheets: schedule the Actor daily and use Apify's Google Sheets integration, or export the dataset as CSV.
- AI agents (Claude, Cursor, ChatGPT): available through the Apify MCP server. Setup guide: connect scrapers to Claude via MCP.
Use cases
- B2B hiring intent: companies posting "Head of Data" or "Salesforce Admin" roles are buying related tools. Feed them into outbound.
- Recruiting & staffing agencies: spot companies hiring for roles you place, then contact them before job boards do.
- Job market and salary research: track demand by title, location, seniority and remote share over time.
- Job boards and aggregators: refresh listings daily with a scheduled run per keyword.
- Job seekers: collect every matching opening in one sheet instead of scrolling.
FAQ
Do I need a LinkedIn account or cookies?
No. The scraper reads LinkedIn's public guest job search, the same pages anyone can see logged out. Your LinkedIn account is never involved, so it can't be restricted.
Why did I get fewer jobs than max_results?
The run's status message tells you why. Either LinkedIn has no more jobs for that keyword, location and filter combination (remove a filter or broaden the location), or the run hit your maximum cost per run. The default max_results is 25, so raise it for bigger pulls.
How do I scrape thousands of LinkedIn jobs?
Set max_results up to 1000 per search. LinkedIn's public search stops at about 1,000 results per keyword and location, so for more, split the search by location, seniority or job type (one Apify task each) and schedule them daily. Deduplicate on job_post_id.
Why are salary or description fields empty?
job_post_salary is filled only when the employer publishes a salary on LinkedIn. Description, applicants, seniority, employment type, job function and industry need detailed: true.
Can I export LinkedIn jobs to CSV or Excel?
Yes. Every run's dataset can be downloaded as CSV, Excel, JSON, XML or HTML from the Storage tab, or via the API with format=csv.
Is scraping LinkedIn job postings legal?
This Actor only collects publicly available job listings and doesn't access private profiles or logged-in data. You are responsible for using the data in line with applicable laws (e.g. GDPR) and your own use case.
Is this the "LinkedIn jobs scrapper" I searched for?
Yes. Searching for "linkedin jobs scrapper", "linkedin job scraper" or "linkedin job postings API" all lead here. Same Actor, same cookie-free data.
Related ScrapeVerse scrapers
- LinkedIn Company Profile Scraper: enrich hiring companies with website, size, HQ, industry and followers.
- LinkedIn Company URL Mass Finder: turn company names into LinkedIn company URLs.
- LinkedIn User Profile URL Mass Finder: find recruiters and hiring managers by name or title.
- LinkedIn Company ID to Slug Finder: convert numeric company IDs into slug URLs (free).
Need a custom LinkedIn data pipeline or higher volumes? Contact ScrapeVerse.