LinkedIn Jobs Scraper: No Cookies avatar

LinkedIn Jobs Scraper: No Cookies

Pricing

$3.00 / 1,000 job listings

Go to Apify Store
LinkedIn Jobs Scraper: No Cookies

LinkedIn Jobs Scraper: No Cookies

Scrape public LinkedIn job listings by keyword and location: title, company, seniority, type, applicants, apply URL. No login. $3/1k. MCP ready.

Pricing

$3.00 / 1,000 job listings

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

2

Monthly active users

3 minutes ago

Last modified

Share

💼 LinkedIn Jobs Scraper: Public Listings, No Login

Overview

LinkedIn Jobs Scraper turns a keyword and a location into a structured feed of public LinkedIn job listings. Give it software engineer in United States or product manager in Remote and it returns clean JSON for every listing: title, company, location, posting date, job type, seniority level, applicant count, description snippet, and apply URL. No cookies, no account, no login of any kind.

LinkedIn runs one of the most aggressive anti bot systems on the web, and scraping it while logged in is the fastest way to lose an account. This actor never authenticates: no email, no password, no cookies, no session token. It reads only the public jobs search results LinkedIn already serves to logged out visitors, using a real Chromium browser and residential proxy so the traffic looks human. Your own LinkedIn identity is never involved.

Reliability posture: login walls, empty runs, and failed listings are never charged. You only pay for a job listing that was actually delivered.

✅ No login required | ✅ No cookies | ✅ Pay only for jobs returned | ✅ MCP-ready for AI agents

Features

Keyword and location search. Point the actor at any public LinkedIn job search and paginate up to 500 listings. Full listing record. Title, company, seniority, job type, applicant count, description snippet, and apply URL. Login wall safe. If LinkedIn asks for auth on a query, the actor stops gracefully and does not charge. Real browser fingerprint. Chromium over residential IPs, indistinguishable from a normal visitor. Pay per job. Only successful, deduplicated listings count against your bill.

How it works

The actor opens linkedin.com/jobs/search with your keyword and location in the query string, the same URL a logged out visitor would use. It waits for the results feed to render in a real Chromium browser, scrolls to load the requested maxResults window, and extracts each card. Every listing is then enriched with a lightweight detail fetch to pull seniority, job type, and applicant count where LinkedIn exposes them.

If a query hits LinkedIn's login wall, the actor stops immediately, writes login_wall_hit: true on the summary record, and does not charge for the run. Empty runs and errors are also never charged: you only pay for real, delivered listings. The first 10 jobs on every account are free for life.

🧾 Input configuration

{
"keywords": "software engineer",
"location": "United States",
"maxResults": 25,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

📤 Output format

Real record delivered by a live run against keywords: "software engineer", location: "United States" on 2026-07-15:

{
"job_url": "https://www.linkedin.com/jobs/view/software-engineer-early-career-at-notion-4437461678",
"title": "Software Engineer, Early Career",
"company": "Notion",
"company_url": "https://www.linkedin.com/company/notionhq",
"location": "San Francisco, CA",
"posted_at": "2026-07-06",
"job_type": "Full-time",
"seniority_level": "Not Applicable",
"description": "Who We Are. Notion is the collaborative AI workspace where teams and agents think together. We're building one place where your knowledge, projects, meetings, and AI tools live side by side, so work is faster, clearer, and less fragmented...",
"scraped_at": "2026-07-15T01:12:13.710Z"
}

job_id and applicant_count are included when LinkedIn exposes them on the listing; they were not present on this posting at capture time, so those fields are dropped rather than sent as null. A final _type: "summary" record is appended to every run with counts and a login_wall_hit flag.

Every job record contains these fields:

FieldDescription
🆔 job_idLinkedIn numeric job ID
🔗 job_urlFull URL to the LinkedIn job posting
📌 titleJob title
🏢 companyCompany name
🔗 company_urlLinkedIn company page URL
📍 locationJob location as listed on LinkedIn
📅 posted_atPosting date or relative time (e.g. 2 days ago)
job_typeEmployment type: Full-time, Part-time, Contract, etc.
🎚️ seniority_levelSeniority level: Entry, Mid-Senior, Director, etc.
📝 descriptionJob description snippet, up to 500 characters
👥 applicant_countApplicant count when LinkedIn exposes it
🕒 scraped_atISO timestamp when the record was captured

💼 Common use cases

Recruiting intelligence See which companies are hiring for which roles right now, refreshed on demand. Identify hiring surges as growth signals for account targeting.

Job board ingestion Ingest fresh public LinkedIn listings into your own aggregator or vertical job product. Deduplicate against your existing feed using job_id and job_url.

Salary and talent research Analyse seniority mix, employment type, and applicant counts across cities and roles. Track how demand for a skill shifts across markets and quarters.

Sales prospecting Companies hiring for a function often need related tools and services. Turn open roles into a warm outbound list. Prioritise accounts by hiring velocity in your ICP function.

🚀 Getting started

  1. Enter Job keywords like software engineer or product manager.
  2. Enter a Location like a city, country, or Remote.
  3. Set Max results to cap the number of listings (default 25, up to 500).
  4. Leave Proxy on the default RESIDENTIAL group. LinkedIn blocks datacenter IPs.
  5. Click Start. Export the dataset as JSON, CSV, or Excel, or pull it via API or MCP.

FAQ

Do I need a LinkedIn account? No. The actor scrapes only the public jobs search, the same results anyone can view logged out. Your credentials and cookies are never used, so your account is never at risk.

Will this get my LinkedIn account banned? No. Because the actor never logs in as you, there is no account identity to ban. It behaves like an anonymous public visitor.

Which proxy should I use? Always RESIDENTIAL (the default). LinkedIn rate limits datacenter IPs aggressively.

How many jobs can I get per search? The public jobs page shows up to roughly 500 jobs per search. Use specific keywords for the best coverage.

What if LinkedIn shows a login wall? The actor stops gracefully with login_wall_hit: true in the summary record and does not charge you.

Do I get the full job description? You get a snippet up to 500 characters plus the job_url, from which you can open the full posting.

How is pricing calculated? Pay per event: $0.003 per job successfully scraped, which is $3 per 1,000 jobs. The first 10 jobs per Apify account are free for life. Empty runs, login wall blocks, and errors are never charged.

Use in Claude, ChatGPT & any MCP agent

https://mcp.apify.com/?tools=themineworks/linkedin-jobs-scraper

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/linkedin-jobs-scraper').call({
keywords: 'software engineer',
location: 'United States',
maxResults: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Job listings are the signal. Turn them into people, companies, and outreach with the full LinkedIn wedge:

Typical flow: jobs scraper flags hiring accounts, company and employees scrapers add firmographics and people, profile scraper enriches individuals, and post scraper surfaces what those people are already saying in public.


Disclaimer: This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by LinkedIn Corporation. LinkedIn is a registered trademark of LinkedIn Corporation. All trademarks are the property of their respective owners. Use scraped public data in line with GDPR, CCPA, and your local laws.

Found a bug or have a feature request? Open an issue on the actor's Apify Console page or reach out through the Apify profile.