LinkedIn Jobs & Company Scraper - No Login Required avatar

LinkedIn Jobs & Company Scraper - No Login Required

Pricing

from $1.50 / 1,000 job listings

Go to Apify Store
LinkedIn Jobs & Company Scraper - No Login Required

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

FetchClub

Maintained by Community

Actor stats

44

Bookmarked

1.1K

Total users

13

Monthly active users

10 days ago

Last modified

Categories

Features

Limited permissions

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

FieldDefaultWhat it does
keywords, location—What and where, as you would type them on LinkedIn, e.g. "python developer", "London".
date_postedany24h, week or month.
easy_applyfalseOnly 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_results5Jobs to collect (1–1,000). LinkedIn shows at most about 1,000 jobs per search; split bigger searches by location or filter.
include_company_detailstrueAdds 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.

FieldDescription
title, location, company_nameJob title, location and employer
description_text, description_htmlFull job description
seniority_level, employment_type, job_function, industriesLinkedIn's job criteria, when the job lists them
posted_time_ago, posted_datetime, posted_date, valid_throughWhen it was posted and until when it is listed
applicants, base_salary, additional_compensationApplicant count; salary text when the employer publishes one
salary_min, salary_max, salary_currency, salary_periodThe salary as numbers, e.g. 85000, 100000, GBP, YEAR (HOUR, MONTH…)
job_urn, job_url, apply_type, apply_urlLinkedIn job ID and links
recruiter_name, recruiter_detail, recruiter_profile, recruiter_imageThe job poster, when LinkedIn shows one
company_profile, company_id, company_logoThe 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 fieldsCompany details (with include_company_details), including every office
input_urlThe search the job came from
error, error_descriptionOnly 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:

EventPrice 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, plus company_* fields.
  • Errors: rows with error are not charged. not_available means the job was removed (don't retry); scrape-failed means 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 maxTotalChargeUsd to 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.

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.