# Job Scraper Linkedin by Albinor (`believable_fork/job-scraper-linkedin-by-albinor`) Actor

LinkedIn jobs scraper with bulk title input, clean exports, flexible filters, and no LinkedIn login required.

- **URL**: https://apify.com/believable\_fork/job-scraper-linkedin-by-albinor.md
- **Developed by:** [Chris](https://apify.com/believable_fork) (community)
- **Categories:** Jobs, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## 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

## Job Scraper Linkedin by Albinor

LinkedIn jobs scraper for Apify designed for fast job discovery, clean exports, and simple multi-title searches without requiring LinkedIn passwords or personal cookies.

This actor is not affiliated with, endorsed by, or sponsored by LinkedIn.

### What You Can Do

- Search one job title or many job titles in a single run
- Leave location blank to search broadly across all available locations
- Filter by company, posting date, work style, contract type, and experience level
- Export structured datasets for job research, outreach, recruiting workflows, and market analysis
- Run it from the Apify UI or API with a simple input structure

### Key Features

- Bulk-edit job titles directly in the actor input form
- Cookie-free and password-free workflow
- Broad search or filtered search from the same actor
- Clean downloadable output in dataset format
- Useful fields for titles, companies, locations, links, apply information, salary data when available, and reposted status when available

### How To Use

Use either:

- `titles` with an optional `location` for one or many job titles using the bulk-edit list in the Apify UI
- `startUrls` if you want to provide your own LinkedIn search links

If you leave `location` empty, the actor searches all locations.

Example job titles:

- `CISO, CSO, Chief Information Security Officer`

Optional filters:

- `companyName`
- `companyId`
- `publishedAt`
- `workType`
- `contractType`
- `experienceLevel`
- `rows`
- `proxy` for heavier or more rate-sensitive runs

Additional options:

- `saveOnlyUniqueItems`
- `strictLocationMatch`
- `enrichCompanyData`

### Output

The default dataset contains public job data such as:

- job title
- company name
- location
- job URL
- apply URL
- apply type
- reposted status when available
- salary fields when available
- job poster details when available

The key-value store also includes:

- `OUTPUT`: dataset link metadata for API and automation use

### Privacy Note

This actor is designed to run without the user's personal LinkedIn password or personal LinkedIn cookie.

# Actor input Schema

## `titles` (type: `array`):

Add one or more job title options. Use Add or Bulk edit for searches like CISO, CSO, and Chief Information Security Officer.
## `location` (type: `string`):

Optional location input. Leave blank to search all locations. Example: London, Paris, New York, or United States.
## `companyName` (type: `array`):

Optional company-name filters. Results are post-filtered so only matching companies are saved.
## `companyId` (type: `array`):

Optional LinkedIn company ID filters. Enter only the numeric IDs, for example 76987811 or 1815218.
## `publishedAt` (type: `string`):

Optional recency filter.
## `rows` (type: `integer`):

Maximum number of rows to save, matching the Bebity actor style.
## `workType` (type: `string`):

Optional LinkedIn work-type filter. 1 = On-site, 2 = Remote, 3 = Hybrid.
## `contractType` (type: `string`):

Optional LinkedIn contract-type filter. F = Full-time, P = Part-time, C = Contract, T = Temporary, I = Internship, V = Volunteer.
## `experienceLevel` (type: `string`):

Optional LinkedIn experience-level filter. 1 = Internship, 2 = Entry level, 3 = Associate, 4 = Mid-Senior, 5 = Director.
## `proxy` (type: `object`):

Optional Apify proxy settings. This actor does not require or accept your own LinkedIn cookie.
## `startUrls` (type: `array`):

Optional advanced mode. Paste one or more LinkedIn job-search URLs and the actor will sanitize them into the public guest search endpoint.
## `keyword` (type: `array`):

Optional advanced keyword list. If provided, these are used in addition to or instead of `titles`. Comma-separated entries are split automatically.
## `locations` (type: `array`):

Optional advanced location list for multi-search runs.
## `countries` (type: `array`):

Optional advanced country list for multi-search runs.
## `distance` (type: `string`):

Optional LinkedIn distance filter for keyword searches.
## `salaryBase` (type: `string`):

Optional post-scrape salary floor. Results without salary data are filtered out when this is used.
## `saveOnlyUniqueItems` (type: `boolean`):

Deduplicate jobs across searches before saving.
## `strictLocationMatch` (type: `boolean`):

Post-filter results to reduce wrong-country and wrong-location leakage from LinkedIn guest search.
## `enrichCompanyData` (type: `boolean`):

Fetch public LinkedIn company pages for richer company metadata.
## `enableKeywordFallback` (type: `boolean`):

When enabled, the actor may try one fallback keyword token to catch additional results. Leave off for the closest match to the Bebity actor.
## `maxItems` (type: `integer`):

Alias for `rows`. If both are present, `maxItems` wins.
## `maxConcurrency` (type: `integer`):

How many job details to fetch at the same time.
## `proxyConfiguration` (type: `object`):

Alias for `proxy` for backward compatibility.

## Actor input object example

```json
{
  "publishedAt": "any",
  "rows": 10,
  "startUrls": [
    {
      "url": "https://www.linkedin.com/jobs/search/?keywords=software%20engineer&location=London"
    }
  ],
  "saveOnlyUniqueItems": true,
  "strictLocationMatch": true,
  "enrichCompanyData": false,
  "enableKeywordFallback": false,
  "maxConcurrency": 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 = {
    "startUrls": [
        {
            "url": "https://www.linkedin.com/jobs/search/?keywords=software%20engineer&location=London"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("believable_fork/job-scraper-linkedin-by-albinor").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 = { "startUrls": [{ "url": "https://www.linkedin.com/jobs/search/?keywords=software%20engineer&location=London" }] }

# Run the Actor and wait for it to finish
run = client.actor("believable_fork/job-scraper-linkedin-by-albinor").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 '{
  "startUrls": [
    {
      "url": "https://www.linkedin.com/jobs/search/?keywords=software%20engineer&location=London"
    }
  ]
}' |
apify call believable_fork/job-scraper-linkedin-by-albinor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Job Scraper Linkedin by Albinor",
        "description": "LinkedIn jobs scraper with bulk title input, clean exports, flexible filters, and no LinkedIn login required.",
        "version": "0.15",
        "x-build-id": "PoWZNflohYnnmYfer"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/believable_fork~job-scraper-linkedin-by-albinor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-believable_fork-job-scraper-linkedin-by-albinor",
                "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/believable_fork~job-scraper-linkedin-by-albinor/runs": {
            "post": {
                "operationId": "runs-sync-believable_fork-job-scraper-linkedin-by-albinor",
                "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/believable_fork~job-scraper-linkedin-by-albinor/run-sync": {
            "post": {
                "operationId": "run-sync-believable_fork-job-scraper-linkedin-by-albinor",
                "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",
                "properties": {
                    "titles": {
                        "title": "Job titles",
                        "type": "array",
                        "description": "Add one or more job title options. Use Add or Bulk edit for searches like CISO, CSO, and Chief Information Security Officer.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Job location",
                        "type": "string",
                        "description": "Optional location input. Leave blank to search all locations. Example: London, Paris, New York, or United States."
                    },
                    "companyName": {
                        "title": "Company name",
                        "type": "array",
                        "description": "Optional company-name filters. Results are post-filtered so only matching companies are saved.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "companyId": {
                        "title": "Company ID",
                        "type": "array",
                        "description": "Optional LinkedIn company ID filters. Enter only the numeric IDs, for example 76987811 or 1815218.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "publishedAt": {
                        "title": "Published at",
                        "enum": [
                            "any",
                            "r2592000",
                            "r604800",
                            "r86400"
                        ],
                        "type": "string",
                        "description": "Optional recency filter.",
                        "default": "any"
                    },
                    "rows": {
                        "title": "Total rows",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of rows to save, matching the Bebity actor style.",
                        "default": 10
                    },
                    "workType": {
                        "title": "On-site / remote",
                        "enum": [
                            "1",
                            "2",
                            "3"
                        ],
                        "type": "string",
                        "description": "Optional LinkedIn work-type filter. 1 = On-site, 2 = Remote, 3 = Hybrid."
                    },
                    "contractType": {
                        "title": "Job type",
                        "enum": [
                            "F",
                            "P",
                            "C",
                            "T",
                            "I",
                            "V"
                        ],
                        "type": "string",
                        "description": "Optional LinkedIn contract-type filter. F = Full-time, P = Part-time, C = Contract, T = Temporary, I = Internship, V = Volunteer."
                    },
                    "experienceLevel": {
                        "title": "Experience level",
                        "enum": [
                            "1",
                            "2",
                            "3",
                            "4",
                            "5"
                        ],
                        "type": "string",
                        "description": "Optional LinkedIn experience-level filter. 1 = Internship, 2 = Entry level, 3 = Associate, 4 = Mid-Senior, 5 = Director."
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional Apify proxy settings. This actor does not require or accept your own LinkedIn cookie."
                    },
                    "startUrls": {
                        "title": "Advanced: LinkedIn search URLs",
                        "type": "array",
                        "description": "Optional advanced mode. Paste one or more LinkedIn job-search URLs and the actor will sanitize them into the public guest search endpoint.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "keyword": {
                        "title": "Advanced: multiple keywords",
                        "type": "array",
                        "description": "Optional advanced keyword list. If provided, these are used in addition to or instead of `titles`. Comma-separated entries are split automatically.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "locations": {
                        "title": "Advanced: specific locations",
                        "type": "array",
                        "description": "Optional advanced location list for multi-search runs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "countries": {
                        "title": "Advanced: countries",
                        "type": "array",
                        "description": "Optional advanced country list for multi-search runs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "distance": {
                        "title": "Advanced: distance",
                        "enum": [
                            "5",
                            "10",
                            "25",
                            "50",
                            "100"
                        ],
                        "type": "string",
                        "description": "Optional LinkedIn distance filter for keyword searches."
                    },
                    "salaryBase": {
                        "title": "Advanced: minimum salary",
                        "enum": [
                            "40000",
                            "60000",
                            "80000",
                            "100000",
                            "120000"
                        ],
                        "type": "string",
                        "description": "Optional post-scrape salary floor. Results without salary data are filtered out when this is used."
                    },
                    "saveOnlyUniqueItems": {
                        "title": "Remove duplicates",
                        "type": "boolean",
                        "description": "Deduplicate jobs across searches before saving.",
                        "default": true
                    },
                    "strictLocationMatch": {
                        "title": "Strict location cleanup",
                        "type": "boolean",
                        "description": "Post-filter results to reduce wrong-country and wrong-location leakage from LinkedIn guest search.",
                        "default": true
                    },
                    "enrichCompanyData": {
                        "title": "Enrich company data",
                        "type": "boolean",
                        "description": "Fetch public LinkedIn company pages for richer company metadata.",
                        "default": false
                    },
                    "enableKeywordFallback": {
                        "title": "Broaden keyword matching",
                        "type": "boolean",
                        "description": "When enabled, the actor may try one fallback keyword token to catch additional results. Leave off for the closest match to the Bebity actor.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Advanced: maximum results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Alias for `rows`. If both are present, `maxItems` wins."
                    },
                    "maxConcurrency": {
                        "title": "Advanced: max concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many job details to fetch at the same time.",
                        "default": 3
                    },
                    "proxyConfiguration": {
                        "title": "Advanced: proxy alias",
                        "type": "object",
                        "description": "Alias for `proxy` for backward compatibility."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
