# LinkedIn Jobs Scraper - Customized Filters with Notifications (`mabdulmoghni/linkedin-jobs-scraper---customized-filters-with-notifications`) Actor

Designed to help job seekers and HR professionals track job vacancies posted on LinkedIn in real-time. With Apify's power and flexibility, you can run the actor, specify search parameters like job title, location, and keywords, and receive instant notifications through Telegram.

- **URL**: https://apify.com/mabdulmoghni/linkedin-jobs-scraper---customized-filters-with-notifications.md
- **Developed by:** [Mohamed Moo](https://apify.com/mabdulmoghni) (community)
- **Categories:** Agents, Jobs, Automation
- **Stats:** 31 total users, 0 monthly users, 100.0% runs succeeded, 2 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/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 Jobs Scraper (Apify Actor)

### 🚀 Getting Started

Welcome to the LinkedIn Job Scraper! This tool is designed to help job seekers and HR professionals track job vacancies posted on LinkedIn in real-time. With Apify's power and flexibility, you can run the actor, specify search parameters like job title, location, and keywords, and receive instant notifications through Telegram. You can also export the results in various formats such as CSV, JSON, and HTML.

***

#### Prerequisites

Before running this actor, ensure you have the following:

- An Apify account
- Access to Apify actor interface
- A Telegram bot for receiving notifications (optional)

### 🔍 What does LinkedIn Jobs Scraper do?

The LinkedIn Jobs Scraper is a powerful automation tool designed for job seekers, recruiters, and HR professionals. It scrapes job listings from LinkedIn based on:

This actor scrapes LinkedIn job listings and processes them based on several user-defined filters:

- **Job title**: Search for jobs based on specific titles.
- **Location**: Support up to 3 locations to filter the job search.
- **Keywords**: Filter job titles based on specific keywords.
- **Published At**: Filter jobs based on how recently they were posted (e.g., last hour, last 3 hours, last day, etc.).
- **Telegram notifications**: Get real-time job updates on Telegram.

It pushes the filtered jobs to the Apify dataset for further processing or integration and optionally sends instant notifications to Telegram.

***

### 📊 What job vacancies data can I extract?

For each job found, this actor extracts the following:

- ✅ Job title
- ✅ Company name
- ✅ Location
- ✅ Posted date and posted time (relative)
- ✅ Direct link to job posting

***

### 💡 Why You Should Use Our LinkedIn Jobs Scraper?

- 🔁 **Multiple Location Support**: Search up to 3 locations in a single run.
- 🎯 **Keyword Filtering**: Receive only jobs relevant to your skills or industry.
- ⏱️ **Time Filters**: Target jobs posted recently (e.g., within the last 3 hours) to be an early applicant.
- 📲 **Instant Telegram Notifications**: Get notified in real-time when a job matches your criteria.
- 📂 **Data Export Formats**: Scraped jobs are saved as CSV, JSON, HTML, and pushed to Apify datasets.
- 💼 **Valuable for Job Seekers and Recruiters**: Never miss an opportunity or new talent again!

***

### 🧪 How do I use LinkedIn Jobs Scraper?

This actor runs on the [Apify platform](https://apify.com/). To use:

1. Go to the actor's page on Apify.

2. Click "Try actor" or use the API.

3. Fill in the input fields:
   - `job_title` (string, required): Title or role you're searching for.
   - `location_1`, `location_2`, `location_3` (string): Up to 3 LinkedIn-supported locations.
   - `keywords` (string, optional): Comma-separated words to filter job titles. Ex. software,python,developer
   - `published_at` (string, optional): Choose from:
     - `last 1 hour`
     - `last 3 hours`
     - `last 6 hours`
     - `last 12 hours`
     - `last day`
     - `last week`
     - `last month`
   - `token` and `chat_id` (optional): Telegram bot token and chat ID to receive instant alerts.

4. Run the actor.

5. View results in the Dataset tab, or receive them via Telegram.

***

### How do I use LinkedIn Jobs Scraper?

1. **Create a Telegram bot** (optional, for notifications):
   - Go to [@BotFather](https://telegram.me/BotFather) on Telegram.
   - Type `/newbot` and follow the instructions to create your bot. You will receive a **Bot Token**.
   - Add your **chat ID** by starting a conversation with your bot and then visiting `https://api.telegram.org/bot<YourBotToken>/getUpdates` to find the `chat_id`.
2. **Allow Telegram Notifications**
   - If you want to receive job notifications directly to Telegram, make sure to set up the `--token` (Telegram Bot Token) and `--chat_id` (your Telegram chat ID) arguments in the actor's input configuration.
   - If no job matching filters, will not send any notifications.

***

### 📦 Sample Output Data

Here’s an example of what the actor returns in the dataset:

| Title           | Company        | Location       | Posted Time | Posted Date | Link                              |
|----------------|----------------|----------------|-------------|-------------|-----------------------------------|
| DevOps Engineer | Acme Inc.      | Berlin, Germany| 1 hour ago  | 2025-05-04  | https://linkedin.com/jobs/view/… |
| Cloud Architect | Cloudy Corp.   | Paris, France  | 3 hours ago | 2025-05-04  | https://linkedin.com/jobs/view/… |

All matched jobs will also be available in:

- 📁 `linkedin_jobs_<location>_<timestamp>.csv`
- 📁 `linkedin_jobs_<location>_<timestamp>.json`
- 📁 `linkedin_jobs_<location>_<timestamp>.html`

***

### Conclusion

This LinkedIn Job Scraper actor is an essential tool for job seekers and HR professionals alike. With powerful filtering options, multiple location support, and instant notifications, you can track the most relevant job opportunities efficiently. The actor is fully customizable to meet your job search needs.

**Start using the LinkedIn Jobs Scraper today and be an early applicant for your dream job!**

# Actor input Schema

## `job_title` (type: `string`):

Job title to search for

## `location_1` (type: `string`):

Primary job location

## `location_2` (type: `string`):

Optional second job location

## `location_3` (type: `string`):

Optional third job location

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

Filter Job Titles matches specific kewywords. Ex. software,cloud,python

## `token` (type: `string`):

Telegram bot token

## `chat_id` (type: `string`):

Telegram chat ID

## `published_at` (type: `string`):

Filter jobs posted within this time range

## Actor input object example

```json
{
  "job_title": "Software Engineer",
  "location_1": "United Arab Emirates",
  "keywords": "Software,python",
  "published_at": "last day"
}
```

# 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 = {
    "job_title": "Software Engineer",
    "location_2": "",
    "location_3": "",
    "keywords": "Software,python",
    "published_at": "last day"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mabdulmoghni/linkedin-jobs-scraper---customized-filters-with-notifications").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 = {
    "job_title": "Software Engineer",
    "location_2": "",
    "location_3": "",
    "keywords": "Software,python",
    "published_at": "last day",
}

# Run the Actor and wait for it to finish
run = client.actor("mabdulmoghni/linkedin-jobs-scraper---customized-filters-with-notifications").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 '{
  "job_title": "Software Engineer",
  "location_2": "",
  "location_3": "",
  "keywords": "Software,python",
  "published_at": "last day"
}' |
apify call mabdulmoghni/linkedin-jobs-scraper---customized-filters-with-notifications --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mabdulmoghni/linkedin-jobs-scraper---customized-filters-with-notifications"
        }
    }
}
```

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/EsKB534YBM0GHnNRu/builds/asMPi8JpFHgQ4hSUX/openapi.json
