# Dr_Linkedln_Scrappy (`inexhaustible_clasp/linkedln-job-scrapper`) Actor

- **URL**: https://apify.com/inexhaustible_clasp/linkedln-job-scrapper.md
- **Developed by:** [kamal Tripathi](https://apify.com/inexhaustible_clasp) (community)
- **Categories:** Jobs, Agents, AI
- **Stats:** 53 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## 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/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## LinkedIn Job Scraper

A powerful Apify Actor that scrapes job listings from LinkedIn with comprehensive job details. Extract job postings, company information, and employment details at scale.

### Features

✨ **Comprehensive Job Data**

- Job title, location, and company information
- Posted time and publication date
- Job descriptions and salary information
- Application count and engagement metrics
- Employment type, experience level, and work schedule
- Job URLs for direct linking

🔄 **Smart Scraping**

- Automatic duplicate removal
- Masked content filtering (prevents extraction of LinkedIn-blocked data)
- Proper pagination support for large result sets
- Browser-based automation for dynamic content loading
- Proxy support for reliable scraping

🎯 **Flexible Filtering**

- Filter by job title keywords
- Filter by location (any geographic region)
- Filter by company names (single or multiple)
- Filter by experience level (Internship, Entry level, Associate, Mid-Senior, Director, Executive)
- Filter by employment type (Full-time, Part-time, Contract, Temporary, Volunteer)
- Filter by work schedule (On-site, Remote, Hybrid)
- Filter by posting time (24 hours, past week, past month)

📊 **Output Format**
The actor outputs complete job data with the following fields:

```json
{
  "title": "Job Title",
  "location": "Location",
  "postedTime": "2025-12-16",
  "publishedAt": "2025-12-16T00:00:00.000Z",
  "jobUrl": "https://linkedin.com/jobs/view/...",
  "companyName": "Company Name",
  "companyUrl": "https://linkedin.com/company/...",
  "description": "Job description snippet",
  "applicationsCount": 42,
  "contractType": "Full-time",
  "experienceLevel": "Mid-Senior level",
  "workType": "Hybrid",
  "sector": "Technology",
  "salary": "Competitive",
  "posterFullName": "Recruiter Name",
  "posterProfileUrl": "https://linkedin.com/in/...",
  "companyId": "company-id",
  "applyUrl": "https://linkedin.com/jobs/view/...",
  "applyType": "LinkedIn",
  "benefits": "Health Insurance, 401k, Remote Work",
  "scrapedAt": "2025-12-16T10:30:00.000Z"
}
```

### Usage

#### Input Parameters

```json
{
  "jobTitle": "Full Stack Developer",
  "location": "Mumbai, India",
  "maxJobs": 100,
  "companyNames": ["Company1", "Company2"],
  "experienceLevel": "Mid-Senior level",
  "jobType": "Full-time",
  "workSchedule": "Hybrid",
  "jobPostingTime": "Past week"
}
```

**Parameters:**

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `jobTitle` | string | "" | Search for specific job titles (optional) |
| `location` | string | "United States" | Job location or country to search in |
| `maxJobs` | integer | 100 | Maximum number of job listings to extract |
| `companyNames` | array | \[] | Filter by specific company names (JSON array format) |
| `experienceLevel` | string | "Any" | Required experience level |
| `jobType` | string | "Any" | Type of employment |
| `workSchedule` | string | "Any" | Work schedule type |
| `jobPostingTime` | string | "Any Time" | How recently the job was posted |

#### Example Queries

**Search for React developers in Mumbai:**

```json
{
  "jobTitle": "React Developer",
  "location": "Mumbai, India",
  "maxJobs": 50,
  "experienceLevel": "Mid-Senior level",
  "jobType": "Full-time"
}
```

**Search specific companies:**

```json
{
  "jobTitle": "Software Engineer",
  "location": "San Francisco, USA",
  "companyNames": ["Google", "Facebook", "Uber"],
  "maxJobs": 100
}
```

**Recent job postings:**

```json
{
  "jobTitle": "Data Scientist",
  "location": "New York, USA",
  "jobPostingTime": "Past 24 hours",
  "maxJobs": 25
}
```

### Output

The actor outputs data in the Apify Dataset format. You can export results as:

- **JSON** - Raw JSON array of job objects
- **CSV** - Spreadsheet-compatible format
- **Excel** - Direct Excel download
- **XML** - XML format for integration

### Performance

- **Typical run time**: 5-15 minutes for 100 jobs
- **Success rate**: 95%+ with proper proxy configuration
- **Data freshness**: Real-time from LinkedIn

### Important Notes

⚠️ **Rate Limiting**: LinkedIn enforces rate limiting. For large-scale scraping, use Apify's proxy service.

⚠️ **Data Accuracy**: Some fields like `posterFullName`, `posterProfileUrl`, `sector`, and `benefits` may show "Not specified" if LinkedIn blocks the content. This is LinkedIn's anti-scraping measure.

⚠️ **Terms of Service**: Ensure you comply with LinkedIn's Terms of Service when using this actor.

### Troubleshooting

**No results returned?**

- Check your search parameters - job title and location are recommended
- Increase `maxJobs` value
- Try broader search terms

**Masked content (asterisks)?**

- This is LinkedIn's anti-scraping protection
- The actor filters these entries automatically
- Consider using Apify's proxy service for better results

**Slow execution?**

- LinkedIn has rate limiting - the actor adds strategic delays
- Use maxConcurrency of 1 (default) to avoid blocking
- Consider running during off-peak hours

### Support

For issues or feature requests, please contact the developer.

### Changelog

#### Version 0.0.1

- Initial release
- Full job scraping functionality
- Support for multiple filters
- Duplicate removal
- Masked content filtering
- Browser-based automation for reliable scraping

### License

ISC License

***

**Maintained by**: Apify Developer Community
**Last Updated**: December 16, 2025

# Actor input Schema

## `jobTitle` (type: `string`):

Search for specific job titles (optional)

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

Job location or country to search in

## `maxJobs` (type: `integer`):

Maximum number of job listings to extract. Warning: High numbers increase risk of being blocked as each job requires a separate request.

## `companyNames` (type: `array`):

Filter by specific company names (enter as JSON array, e.g. \["Company 1", "Company 2"] or leave empty \[])

## `experienceLevel` (type: `string`):

Filter by experience level required

## `jobType` (type: `string`):

Type of employment

## `workSchedule` (type: `string`):

Work schedule type

## `jobPostingTime` (type: `string`):

How recently the job was posted

## `searchAfterJobs` (type: `integer`):

Skip number of jobs in results

## Actor input object example

```json
{
  "location": "United States",
  "maxJobs": 50,
  "companyNames": [],
  "experienceLevel": "Any",
  "jobType": "Any",
  "workSchedule": "Any",
  "jobPostingTime": "Any Time",
  "searchAfterJobs": 0
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `jobListings` (type: `string`):

No description

# 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("inexhaustible_clasp/linkedln-job-scrapper").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("inexhaustible_clasp/linkedln-job-scrapper").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 inexhaustible_clasp/linkedln-job-scrapper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,inexhaustible_clasp/linkedln-job-scrapper"
        }
    }
}
```

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/ImEoHosy5szOFhKQ6/builds/0bWsKy0e4zmoMLfNB/openapi.json
