LinkedIn job alerts in Slack without logging in to LinkedIn
LinkedIn's own job alerts live in your LinkedIn inbox, need an account, and are hard to share with a team. If you want new postings for a few searches dropped into a Slack channel (a recruiting team, a job-board newsletter, a sales team watching who hires), you need three things: the public job search, a memory of what you already saw, and a Slack webhook. This guide sets that up with no LinkedIn…
LinkedIn offers job alerts directly in your LinkedIn inbox, but they are limited to personal use and difficult to share with teams. To share new postings in a Slack channel, you need a public job search, a memory of previous results, and a Slack webhook. This guide demonstrates how to set up the system without logging into LinkedIn, using either no code or Python.
To begin, create a Slack incoming webhook URL by setting up a Slack app, enabling Incoming Webhooks, and adding a webhook for your desired channel. The URL will look like this: https://hooks.slack.com/services/T000/B000/XXXX.
Next, obtain an Apify account (free plan suffices) to run the LinkedIn Jobs Scraper. This tool scrapes LinkedIn's public job search without requiring a login or cookies, ensuring no account blocking occurs.
Option 1: Using no code, input the following into the Apify tool:
```
{
"keywords": ["data engineer", "analytics engineer"],
"country": "CA",
"datePosted": "past24h",
"maxResultsPerSearch": 100,
"incremental": true,
"stateKey": "ca-data-jobs",
"slackWebhookUrl": "https://hooks.slack.com/services/T000/B000/XXXX"
}
```
This configuration specifies the job titles, country, date range, maximum results per search, incremental mode, state key, and Slack webhook URL. It also enables only new jobs since the last run.
Schedule the tool to run on a regular basis (e.g., every weekday at 8:00) through the Apify Console. The first run will retrieve all matching jobs, while subsequent runs will post only new postings.
Option 2: For a custom message format, run the scraper from Python using the following steps:
1. Install the required packages: `pip install apify-client requests`.
2. Import the necessary modules: `os`, `defaultdict`, `requests`, `requests`, and `apify_client`.
3. Initialize the ApifyClient with your Apify token.
4. Call the LinkedIn Jobs Scraper actor with your desired input parameters.
5. Process the returned jobs and organize them by company.
6. Format the job information into a desired message structure.
7. Post the formatted message to the Slack webhook using the `requests.post()` function.
Run the script using cron, GitHub Actions, or an Apify schedule. The incremental mode ensures that the scraper only stores new job information, without retaining any data locally.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.