LinkedIn Jobs & Company Scraper - No Login Required
Pricing
from $1.50 / 1,000 job listings
LinkedIn Jobs & Company Scraper - No Login Required
Actively Maintained - LinkedIn Jobs Scraper + Companies - Extract job listings and company profile information for all countries and languages. Export results for analysis, connect via API, & integrate with other apps. No login or cookies required. n8n node: n8n-nodes-linkedin-jobs-scraper
Pricing
from $1.50 / 1,000 job listings
Rating
2.3
(6)
Developer
FetchClub
Maintained by CommunityActor stats
44
Bookmarked
1.1K
Total users
13
Monthly active users
10 days ago
Last modified
Categories
Features
Share
LinkedIn Jobs Scraper with Company Details
Search LinkedIn jobs by keywords and location (or paste any LinkedIn jobs search URL) and get every matching job with its full description, seniority, employment type, applicants, posting date and apply link. You can also add the hiring company's profile: website, industry, size, headquarters, employees and followers. No LinkedIn login or cookies. Works with any country and language supported by LinkedIn.
Why use this scraper
- Track hiring demand: compare open roles, locations and job requirements to spot changes in the labour market.
- Research competitors and prospects: see which companies are hiring and use optional company details to add context to sales or market research.
- Build recruitment workflows: collect job descriptions and apply links in a structured dataset for analysis, reporting or integration with your existing tools.
Quick start
Search by keywords and location:
{ "keywords": "registered nurse", "location": "Chicago, Illinois", "date_posted": "week", "max_results": 100 }
Or search on linkedin.com/jobs (logged out works), copy the URL from the address bar and paste it:
{ "search_url": "https://www.linkedin.com/jobs/search?keywords=registered%20nurse&location=Chicago%2C%20Illinois", "max_results": 100 }
Jobs only, without company details (cheaper):
{ "search_url": "https://www.linkedin.com/jobs/search?keywords=python&location=United%20States&f_WT=2&f_TPR=r604800", "max_results": 200, "include_company_details": false }
Input options
| Field | Default | What it does |
|---|---|---|
keywords, location | — | What and where, as you would type them on LinkedIn, e.g. "python developer", "London". |
date_posted | any | 24h, week or month. |
easy_apply | false | Only jobs that accept LinkedIn Easy Apply. |
search_url | — | Instead of the fields above: a LinkedIn jobs search URL, kept as is (tracking parameters removed). |
max_results | 5 | Jobs to collect (1–1,000). LinkedIn shows at most about 1,000 jobs per search; split bigger searches by location or filter. |
include_company_details | true | Adds the hiring company's profile to each job. Charged as "Company details" only when found. |
Output fields
All field names are unchanged from earlier versions of this actor. New fields are added at the end only.
| Field | Description |
|---|---|
title, location, company_name | Job title, location and employer |
description_text, description_html | Full job description |
seniority_level, employment_type, job_function, industries | LinkedIn's job criteria, when the job lists them |
posted_time_ago, posted_datetime, posted_date, valid_through | When it was posted and until when it is listed |
applicants, base_salary, additional_compensation | Applicant count; salary text when the employer publishes one |
salary_min, salary_max, salary_currency, salary_period | The salary as numbers, e.g. 85000, 100000, GBP, YEAR (HOUR, MONTH…) |
job_urn, job_url, apply_type, apply_url | LinkedIn job ID and links |
recruiter_name, recruiter_detail, recruiter_profile, recruiter_image | The job poster, when LinkedIn shows one |
company_profile, company_id, company_logo | The employer's LinkedIn page |
company_website, company_industry, company_size, company_headquarters, company_founded, company_specialties, company_specialties_list, company_locations, company_employees_on_linkedin, company_followers_on_linkedin, company_about_us, address fields | Company details (with include_company_details), including every office |
input_url | The search the job came from |
error, error_description | Only on rows that could not be fully read (never charged) |
Output example
A real record (abbreviated). Download the dataset as JSON, CSV or Excel.
{"title": "Full-Stack Software Engineer II | Java, React & AWS","location": "Shakopee, MN","company_name": "Entrust","posted_time_ago": "4 days ago","posted_datetime": "2026-10-24 09:00:42","posted_date": "2026-10-24","valid_through": "2026-12-27 20:36:55","applicants": "Over 200 applicants","base_salary": null,"seniority_level": "Mid-Senior level","employment_type": "Full-time","job_function": null,"industries": "Software Development","description_text": "Join us at Entrust\nAt Entrust, we’re shaping the future of identity centric security solutions. From our comprehensive portfolio of solutions to our flexible, global workplace, we empower careers, foster collaboration, …","job_urn": "4447095102","job_url": "https://www.linkedin.com/jobs/view/full-stack-software-engineer-ii-java-react-aws-at-entrust-4447095102","apply_type": "Easy Apply","apply_url": "https://www.linkedin.com/jobs/view/full-stack-software-engineer-ii-java-react-aws-at-entrust-4447095102","company_profile": "https://www.linkedin.com/company/entrust","company_id": "8011","company_website": "https://www.entrust.com/","company_industry": "Software Development","company_size": "1,001-5,000 employees","company_headquarters": "Minneapolis, MN","company_employees_on_linkedin": 3744,"company_followers_on_linkedin": 177203,"company_founded": null,"input_url": "https://www.linkedin.com/jobs/search?keywords=software+engineer&location=United+States"}
Pricing — how much does it cost to scrape LinkedIn jobs?
The standard, no-discount rates are:
| Event | Price per 1,000 |
|---|---|
| Run start | $0.02 per run |
| Job listing | $2.00 |
| Company information added to a job (optional) | $2.00 |
Company information is charged per job when details are found, in addition to the job listing charge. For example, a run with 1,000 jobs costs $2.02 without company information, or $4.02 if company information is found for all 1,000 jobs, including the $0.02 run-start charge. Apify premium plans offer discounts on these rates.
Never charged: automatic residential retries; job pages LinkedIn refuses after retries, removed jobs, and searches with no matches.
Set Maximum cost per run (or maxTotalChargeUsd in the API) to cap a run. A job and its company details are always charged together, so the run stops cleanly at your limit.
FAQ and limitations
- Salary only when the employer publishes it (a minority of jobs).
- Job poster/recruiter details appear only when LinkedIn shows them publicly, which is rare.
- Searches with no exact match return LinkedIn's own "similar jobs", as the website does.
- On days LinkedIn refuses many requests, automatic residential proxy retries have a per-run budget and a low-success cutoff (there is no separate residential-page event charge); pages still refused are reported and not charged, so try again later.
- LinkedIn can change its pages. Each run checks that core fields are still being found and warns in its status if not; failed jobs are never charged.
Why did I get fewer jobs than max_results? LinkedIn matched fewer, or a few job pages could not be read after retries. The run status says which, and those rows are not charged.
Why do I get jobs for a search that should match nothing? LinkedIn itself shows similar jobs when nothing matches exactly, and its "matched" count includes them.
Can I get more than 1,000 jobs? Not from one search; LinkedIn stops at about 1,000. Run several searches (for example one per city or per date window).
Do I need a LinkedIn account? No. The scraper reads LinkedIn's public job pages, the same ones anyone sees when logged out.
For AI agents (MCP)
Add this Actor to Claude, ChatGPT or any MCP client: https://mcp.apify.com/?tools=fetchclub/linkedin-jobs
- Minimal call:
{"keywords": "<job title>", "location": "<city or country>", "max_results": 50}; add"date_posted": "week"to narrow it. - Results: one record per job with
title,company_name,location,description_text,seniority_level,employment_type,posted_datetime,salary_min/salary_max/salary_currency,job_url,apply_url, pluscompany_*fields. - Errors: rows with
errorare not charged.not_availablemeans the job was removed (don't retry);scrape-failedmeans retry later. - Run status:
Completed: N of M job(s) saved (T matched the search). - Budget: at the standard rate, $0.02 per run plus up to $0.004 per job with company information, or $0.002 per job without. Apify premium plan discounts may reduce these rates. Set
maxTotalChargeUsdto control spending.
Switching from another LinkedIn jobs scraper
- Paste the same LinkedIn search URL you already use; all its filters are kept.
- Field names are plain snake_case (
title,company_name,description_text,job_url,company_website) for easy mapping. - Each job carries its LinkedIn
job_urn, so you can de-duplicate across runs.
Integrations
Run it from the Apify API, the JavaScript or Python clients, or the n8n node n8n-nodes-linkedin-jobs-scraper. You can also schedule it, or send results to Google Sheets, Slack, Make, Zapier and webhooks.
Is it legal to scrape LinkedIn?
This scraper reads only public job pages that anyone can see without logging in, and never uses a LinkedIn account. Results can still contain personal data, such as a recruiter's name, which is protected by GDPR and similar laws. Collect it only if you have a legitimate reason, and ask a lawyer if you are unsure. See also Apify on the legality of web scraping.
