# 🛠️ Linkedin Job Scraper (Ultimate) (`forge-api/linkedin-scraper`) Actor

LinkedIn Job Scraper takes job search parameters as input and returns detailed job information from LinkedIn's job search results, making it useful for job market research, recruitment analysis, or building job recommendation systems.

- **URL**: https://apify.com/forge-api/linkedin-scraper.md
- **Developed by:** [Forge Api](https://apify.com/forge-api) (community)
- **Categories:** Jobs, Automation
- **Stats:** 21 total users, 0 monthly users, 100.0% runs succeeded, 1 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/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## 🧠 LinkedIn Job Scraper (Apify Actor)

### 📋 Overview

The **LinkedIn Job Scraper** is an Apify actor that automates the process of collecting job listings directly from [LinkedIn Jobs](https://www.linkedin.com/jobs/). It’s designed for recruiters, job seekers, and data analysts who want structured, exportable job data without the time-consuming manual search.

Simply provide the job title, location, and other optional filters — and the scraper will return a clean, structured dataset containing detailed job information.

---

### ⚙️ Input Parameters

You can control how and what the scraper collects using the following input options:

| Parameter            | Type                | Description                                                                                           | Example              |
| -------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | -------------------- |
| **Job Keywords**     | `string`            | The job title or keywords to search for on LinkedIn.                                                  | `"Python Developer"` |
| **Location**         | `string`            | The target location for job listings.                                                                 | `"New York, USA"`    |
| **Maximum Pages**    | `number` (optional) | The maximum number of pages to scrape. Defaults to *all available pages*.                             | `10`                 |
| **Experience Level** | `string` (optional) | Filter by seniority level (e.g., *Internship*, *Entry level*, *Associate*, *Mid-Senior*, *Director*). | `"Entry level"`      |
| **Job Type**         | `string` (optional) | Filter by type of employment (e.g., *Full-time*, *Part-time*, *Contract*, *Temporary*).               | `"Full-time"`        |
| **Company Size**      | `string` (optional) | Filter by company size (e.g., n-employees, Self-Employed, Government, Non-profit).                 | `"Government"`        |
| **Date Posted**      | `string` (optional) | Filter by when the job was posted (e.g., *Past 24 hours*, *Past week*, *Past month*).                 | `"Past week"`        |
| **Remote Work**      | `string` (optional) | Filter by work arrangement (e.g., *Any*, *Remote*, *On-site*, *Hybrid*).                              | `"On-site"`          |
| **Minimum Salary**   | `String` (optional) | Filter jobs based on minimum annual salary ($40K+, $60K+, $80K+, $100K+ if available on LinkedIn).                                | `$40K+`              |


---

### 📤 Output Data

After execution, the scraper produces a structured dataset for each job listing, containing fields such as:

| Field                | Description                                             |
| -------------------- | ------------------------------------------------------- |
| **job_url**          | Direct link to the job posting on LinkedIn.             |
| **applicant_number** | Number of applicants who have applied for the job.      |
| **job_title**        | Title of the job posting.                               |
| **company_name**     | Name of the hiring company.                             |
| **company_url**      | Link to the company’s LinkedIn page.                    |
| **location**         | Location of the job.                                    |
| **experience_level** | Level of experience required for the role.              |
| **employment_type**  | Type of job (Full-time, Contract, etc.).                |
| **job_function**     | Main job function or department.                        |
| **industries**       | Relevant industries or sectors associated with the job. |
| **job_description**  | Full text of the job description.                       |
| **date_posted**      | When the job was posted on LinkedIn.                    |

````

Output:
{
"job\_url": "https://www.linkedin.com/jobs/view/cyber-security-specialist-at-sotalent-4313373592",
"applicant\_number": "82",
"job\_title": "Cyber Security Specialist",
"company\_name": "SoTalent",
"company\_url": "https://www.linkedin.com/company/sotalentjobs?trk=public\_jobs\_topcard-org-name",
"location": "New York, NY",
"experience\_level": "Mid-Senior level",
"employment\_type": "Full-time",
"job\_function": "Information Technology",
"industries": "Financial Services",
"job\_description": "Job Title: Cyber Security SpecialistLocation: New York, NYType: Full timeOur client is looking for an experienced professional to support and strengthen our cyber governance function. In this role, you’ll help design, communicate, and deliver effective governance materials that bring clarity and insight to cyber risk management across the organization.Key ResponsibilitiesDevelop and maintain high-quality governance materials, including reports, dashboards, and presentations, for technology teams, executives, and board-level audiences.Translate complex cybersecurity and risk topics into clear, actionable insights that support informed decision-making.Support the development and maintenance of cyber risk metrics, KPIs, and performance indicators to measure program effectiveness.Monitor the performance of controls and identify areas for improvement or escalation.Partner with cross-functional teams — Cybersecurity, Risk, and Technology — to ensure consistent messaging and alignment with business priorities.Prepare executive and board-level updates that connect cyber activities to organizational objectives and risk strategy.Enhance governance reporting frameworks, data quality, and visualization methods to improve transparency and maturity.Contribute to the continuous improvement of the cyber governance and data reporting program.QualificationsBachelor’s degree in Cybersecurity, Risk Management, Marketing, or a related field.5+ years of experience in cyber governance, risk reporting, or cybersecurity communications.Strong analytical, problem-solving, and critical thinking abilities.Excellent communication and presentation skills, with the ability to simplify complex information.Proficiency in PowerPoint, Keynote, and data visualization tools such as Tableau or Power BI.Proven experience in stakeholder management and cross-functional collaboration.Preferred Certifications:PMP (Project Management Professional)Vendor or cybersecurity-related certifications",
"date\_posted": "October 17, 2025"
}

````
All results are saved to the Apify dataset and can be exported in **JSON**, **CSV**, or **Excel** formats for further analysis or automation workflows.

---

### 🚀 Why Use This Instead of Manual Searching?

Searching jobs manually on LinkedIn can be **slow, repetitive, and inconsistent** — especially when you’re trying to track hundreds of listings across different roles or locations.
This scraper eliminates that hassle by:

* 🔍 **Automating repetitive searches** — no need to click through dozens of pages manually.
* ⚡ **Gathering large amounts of data quickly** — collect hundreds of job postings in minutes.
* 🧾 **Exporting structured results** — perfect for filtering, analysis, or tracking applications.
* 🕒 **Saving time** — focus on applying, not searching.

Whether you’re building a job dashboard, researching market trends, or finding your next opportunity, this tool provides accurate, up-to-date job data straight from LinkedIn — automatically.

---

# Actor input Schema

## `keywords` (type: `string`):

Job title or keywords to search for (e.g., 'Python Developer', 'Data Scientist')
## `location` (type: `string`):

Location to search in (e.g., 'New York, NY', 'Remote', 'San Francisco Bay Area')
## `max_pages` (type: `integer`):

Maximum number of pages to scrape (default: 3)
## `experience_level` (type: `string`):

Experience level filter
## `job_type` (type: `string`):

Job type filter
## `company_size` (type: `string`):

Company size filter
## `date_posted` (type: `string`):

When the job was posted
## `remote` (type: `string`):

Remote work preference
## `salary` (type: `string`):

Minimum salary filter

## Actor input object example

```json
{
  "keywords": "Python Developer",
  "location": "New York, NY",
  "max_pages": 3
}
````

# 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 = {
    "keywords": "Python Developer",
    "location": "New York, NY",
    "max_pages": 3,
    "experience_level": "",
    "job_type": "",
    "company_size": "",
    "date_posted": "",
    "remote": "",
    "salary": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("forge-api/linkedin-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 = {
    "keywords": "Python Developer",
    "location": "New York, NY",
    "max_pages": 3,
    "experience_level": "",
    "job_type": "",
    "company_size": "",
    "date_posted": "",
    "remote": "",
    "salary": "",
}

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

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

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

```

## CLI example

```bash
echo '{
  "keywords": "Python Developer",
  "location": "New York, NY",
  "max_pages": 3,
  "experience_level": "",
  "job_type": "",
  "company_size": "",
  "date_posted": "",
  "remote": "",
  "salary": ""
}' |
apify call forge-api/linkedin-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=forge-api/linkedin-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🛠️ Linkedin Job Scraper (Ultimate)",
        "description": "LinkedIn Job Scraper takes job search parameters as input and returns detailed job information from LinkedIn's job search results, making it useful for job market research, recruitment analysis, or building job recommendation systems.",
        "version": "0.0",
        "x-build-id": "TUmdDNCNH1h4LXJ9p"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/forge-api~linkedin-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-forge-api-linkedin-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/forge-api~linkedin-scraper/runs": {
            "post": {
                "operationId": "runs-sync-forge-api-linkedin-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/forge-api~linkedin-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-forge-api-linkedin-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keywords",
                    "location"
                ],
                "properties": {
                    "keywords": {
                        "title": "Job Keywords",
                        "type": "string",
                        "description": "Job title or keywords to search for (e.g., 'Python Developer', 'Data Scientist')"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Location to search in (e.g., 'New York, NY', 'Remote', 'San Francisco Bay Area')"
                    },
                    "max_pages": {
                        "title": "Maximum Pages",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of pages to scrape (default: 3)"
                    },
                    "experience_level": {
                        "title": "Experience Level",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "3",
                            "4",
                            "5",
                            "6"
                        ],
                        "type": "string",
                        "description": "Experience level filter"
                    },
                    "job_type": {
                        "title": "Job Type",
                        "enum": [
                            "",
                            "F",
                            "C",
                            "P",
                            "T",
                            "I",
                            "V"
                        ],
                        "type": "string",
                        "description": "Job type filter"
                    },
                    "company_size": {
                        "title": "Company Size",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "3",
                            "4",
                            "5",
                            "6",
                            "7",
                            "8",
                            "9",
                            "10",
                            "11"
                        ],
                        "type": "string",
                        "description": "Company size filter"
                    },
                    "date_posted": {
                        "title": "Date Posted",
                        "enum": [
                            "",
                            "r86400",
                            "r604800",
                            "r2592000",
                            "r7776000"
                        ],
                        "type": "string",
                        "description": "When the job was posted"
                    },
                    "remote": {
                        "title": "Remote Work",
                        "enum": [
                            "",
                            "2",
                            "1",
                            "3"
                        ],
                        "type": "string",
                        "description": "Remote work preference"
                    },
                    "salary": {
                        "title": "Minimum Salary",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "3",
                            "4"
                        ],
                        "type": "string",
                        "description": "Minimum salary filter"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
