# Turbo Linkedin Jobs Scraper (No Cookies) (`perfectscrape/turbo-linkedin-jobs-scraper`) Actor

Scrape LinkedIn jobs instantly - no logins or cookies! Super fast https scraping upto 300+ listings/minute! Geo, distance and time targeting with proxy support. Extract salaries, locations, company insights, and more fields at lightning speed. Perfect for recruiters, applicants, or job dashboards.

- **URL**: https://apify.com/perfectscrape/turbo-linkedin-jobs-scraper.md
- **Developed by:** [Sadnan](https://apify.com/perfectscrape) (community)
- **Categories:** Jobs, Lead generation, Social media
- **Stats:** 42 total users, 4 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: No ratings yet

## Pricing

$15.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Turbo LinkedIn Jobs Scraper - No Login/cookies Required

The **Turbo LinkedIn Jobs Scraper** is a high-performance tool designed to extract public job data from LinkedIn—**fast**, **efficiently**, and **at scale**. Scrape linkedin data at scale! Advanced filters to extract targeted linkedin jobs data.

Unlike traditional scrapers that rely on cookies or browser automation, this scraper operates **without cookies**, **no login required**, and **no browser automation**. This means:

✅ **90% Faster performance**\
✅ **Highly targeted results with filters**
✅ **Lower operational costs**\
✅ **Easier to maintain and scale**

With advanced scraping techniques, no-login access, and high-speed extraction, this tool is perfect for:

- 📌 **Market researchers** looking to gather job market insights
- 📊 **Recruiters** searching for job postings and candidate trends
- 🤖 **Automation workflows** that need real-time job data
- 📈 **Competitive analysts** studying job listings and hiring patterns

You can collect **thousands of listings per minute**, helping you save time and get real-time job market intelligence.

***

### ⚡ Why Choose This Scraper?

✅ **Lightning-fast scraping** - Upto 500+ listings/minute\
✅ **Zero account requirements** - No cookies/logins\
✅ **Military-grade efficiency** - Optimized parallel processing\
✅ **Geo-targeting ready** - Location-based scraping\
✅ **Enterprise-scale** - Built for million-record datasets
✅ **Highly targeted** - Target location, distance, posting date and more

***

### 📽️ Demo Video

Take a quick look at how the project works in action! This video walkthrough highlights the key features and shows how everything comes together.

[![Watch the demo](https://img.youtube.com/vi/u0ioixccs6g/hqdefault.jpg)](https://www.youtube.com/watch?v=u0ioixccs6g)

***

### 🔧 Input Configuration

This LinkedIn Jobs Scraper is built to give you precise control over how you gather job listings from LinkedIn. Here's a detailed breakdown of each input option and how to use it effectively:

#### 1️⃣ **Job Keyword** (Required)

Examples: "AI Engineer", "Healthcare Manager"

Supports Boolean search: "Java AND (Developer OR Engineer)"

#### 2️⃣ **Location** (Required)

Formats: City, State, Country, or ZIP

Precision geocoding: "San Francisco Bay Area" → 37.7749°N, 122.4194°W

#### 3️⃣ **Search Radius** (Optional)

- 10mi (Hyper-local)
- 25mi (Metro)
- 50mi (Regional)

#### 4️⃣ **Posting Date** (Time Filters)

- Fresh data: 24hr • 7d • 30d • All historical

#### 5️⃣ **Results Limit** (Safety Control)

- Default: 20
- Max: Unlimited (with proxy)

#### 6️⃣ **Proxy Setup** (Mandatory)

- Residential IPs recommended
- Automatic rotation

***

These input settings give you complete flexibility to scrape LinkedIn Jobs safely and effectively. Make sure to test with smaller batches first to fine-tune your configuration!

***

### 🌟 Key Features

#### ✅ **Zero Login Required**

- No LinkedIn accounts needed
- No cookie management
- Completely anonymous scraping

***

#### ✅ **Smart Filters Built-In**

- Location-based radius targeting
- Time-based posting filters
- Keyword combination support

***

#### ✅ **Bulletproof Design**

- Automatic retries for failed requests
- IP rotation via proxies
- Lightweight HTML parsing

***

#### ✅ **Analysis-Ready Output**

- Clean CSV/JSON formats
- Standardized date formats
- Consistent field structure

***

#### ✅ **Anti-Block Technology**

Built with stealth and scale in mind:

- ⚡ Uses HTTPS requests, not a browser (faster and safer)
- 🔁 Auto-scrolls and paginates through listings
- 🕒 Smart delay logic to simulate human browsing patterns
- 🛡️ Avoids detection using cookie-based login and random delays

***

Want to scrape smarter, not harder? This actor is all you need to unlock LinkedIn’s job listings at scale.

***

### 📦 Output

The final output of the LinkedIn job scraper is a structured JSON object containing detailed job information. This object can be used for storage, display, or further processing. Below is an explanation of each field along with a sample structure (placeholder values used):

#### 🔧 Fields Description

- **title**: Job title as listed on LinkedIn.
- **company**: An object with:
  - `name`: Name of the company.
  - `url`: LinkedIn URL of the company.
  - `logo`: URL of the company logo.
- **location**: An object describing the job location.
  - `text`: Readable location string.
  - `latitude`: Geographic latitude.
  - `longitude`: Geographic longitude.
- **posted**: Date details.
  - `date`: ISO timestamp when job was posted.
  - `text`: Relative posting time (e.g. “1 week ago”).
- **applicants**: Applicant stats.
  - `count`: Number of applicants.
  - `text`: Readable applicant string.
- **employmentType**: Type of employment (e.g. FULL\_TIME, CONTRACT).
- **seniorityLevel**: Job seniority level.
- **jobFunction**: Area(s) of responsibility (e.g. Engineering).
- **industries**: Related industries.
- **description**: Full HTML-formatted job description.
- **salary**: Salary range if available.
- **requirements**: Object for standard requirements.
  - `education`: Expected education level.
- **metadata**:
  - `jobId`: Internal/external job identifier.
  - `companyId`: LinkedIn company ID.
  - `industryIds`: Array of industry type IDs.
  - `validThrough`: Expiry date of the listing.
- **url**: Direct LinkedIn job listing URL.
- **application**: Application methods.
  - `url`: Apply URL (if any).
  - `directApply`: Boolean for direct application support.
- **benefits**: Array of mentioned job benefits.
- **skills**: Array of required skills (if extracted).
- **hiringManager**: Hiring manager's name (if available).
- **similarJobs**: An array of similar jobs listed in the job listing.

***

#### Example Output

```json
{
    "title": "Software Engineer - Backend",
    "company": {
        "name": "Plaid",
        "url": "https://www.linkedin.com/company/plaid-",
        "logo": "https://media.licdn.com/dms/image/.../plaid__logo"
    },
    "location": {
        "text": "San Francisco",
        "latitude": 37.78008,
        "longitude": -122.42016
    },
    "posted": {
        "date": "2025-04-30T11:17:34.000Z",
        "text": "1 week ago"
    },
    "applicants": {
        "count": 159,
        "text": "159 applicants"
    },
    "employmentType": "FULL_TIME",
    "seniorityLevel": "Mid-Senior level",
    "jobFunction": "Engineering and Information Technology",
    "industries": "Software Development, Technology, Information and Internet, and Financial Services",
    "description": "<p>Full job description here...</p>",
    "salary": "$163,200 - $223,200",
    "requirements": {
        "education": "bachelor degree"
    },
    "metadata": {
        "jobId": "9",
        "companyId": "2684737",
        "industryIds": ["4", "6", "43"],
        "validThrough": "2025-06-24T13:31:51.000Z"
    },
    "url": "https://www.linkedin.com/jobs/view/software-engineer-backend-at-plaid-4204412244",
    "application": {
        "url": "",
        "directApply": false
    },
    "benefits": [],
    "skills": [],
    "hiringManager": "",
    "similarJobs": [
        {
            "similarJobTitle": "Software Engineer [Level/Role]",
            "similarJobUrl": "https://www.linkedin.com/jobs/view/[job-id]",
            "similarJobcompanyName": "[Company Name]",
            "similarJobcompanyUrl": "https://www.linkedin.com/company/[company-name]",
            "similarJobpostedDate": "[YYYY-MM-DD]"
        },
        {
            "similarJobTitle": "Software Engineer [Specialization]",
            "similarJobUrl": "https://www.linkedin.com/jobs/view/[job-id]",
            "similarJobcompanyName": "[Company Name]",
            "similarJobcompanyUrl": "https://www.linkedin.com/company/[company-name]",
            "similarJobpostedDate": "[YYYY-MM-DD]"
        },
        ...
    ]
}
```

**Save time, skip the manual work, and get the LinkedIn job data you need — quickly and reliably.**

🎉 Thanks for choosing **Turbo LinkedIn Jobs Scraper**!

We’re thrilled to have you onboard. **Turbo LinkedIn Scraper** is crafted to deliver clean, structured, and ready-to-use job data directly from LinkedIn — so you can focus on what matters.

Whether you're building automations, launching a job board, or just digging into job market trends, we hope this tool saves you hours and powers up your project.

Have feedback, feature requests, or need help?\
📬 **Let’s chat:** <perfectscrape@gmail.com> — or open an issue anytime. We're here for you.

Thanks again,\
— *Turbo LinkedIn Scraper Team* ✨

# Actor input Schema

## `keyword` (type: `string`):

Enter job title or keywords to search (e.g., 'Software Engineer')

## `location` (type: `string`):

Enter location for job search (e.g., 'New York')

## `distance` (type: `string`):

Select maximum distance from location (miles)

## `postedTime` (type: `string`):

Filter by posting date

## `maxResults` (type: `integer`):

Maximum number of jobs to scrape

## `proxyConfiguration` (type: `object`):

Select proxy configuration (required)

## Actor input object example

```json
{
  "keyword": "developer",
  "location": "United States",
  "distance": "50",
  "postedTime": "",
  "maxResults": 20
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("perfectscrape/turbo-linkedin-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("perfectscrape/turbo-linkedin-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call perfectscrape/turbo-linkedin-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,perfectscrape/turbo-linkedin-jobs-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/tA2Gxe5l3y4oRmalt/builds/WNjJvry8igLXyGe9w/openapi.json
