See llms.txt for all machine-readable content.

Back to Templates

Alert sales to LinkedIn hiring spikes with Apify, OpenAI and Slack

Quick overview

Every Monday this asks LinkedIn how many jobs each target account posted in the past week, compares it with last week's count in Google Sheets, and flags the jumps. For each spike, AI reads new postings and company facts and writes a why-now note. Good fits go to Slack.

How it works

  1. A schedule starts the workflow every Monday at eight.
  2. The Weekly counts tab of your sheet is read back, so each company is paired with its last count and its saved LinkedIn company id.
  3. LinkedIn Job Scraper matches each company name to its LinkedIn company page. An id saved in the sheet, or one you pin, always wins.
  4. A second call to the same Actor asks LinkedIn how many jobs each company posted in the past seven days, one search per company, and keeps a few listings as a sample.
  5. A Code node compares each count with the last one and marks it Spike, Steady, Slowdown or Baseline, or No count when LinkedIn returned none. Every row is logged to the Weekly counts tab.
  6. Spikes only: LinkedIn Company API reads each company page (size, people on LinkedIn, industry, HQ), and LinkedIn Jobs API reads the full sample postings.
  7. The Information Extractor names the teams that are hiring, explains why now, links it to what you sell and scores the fit from 1 to 5, using only those facts.
  8. Every spike is logged to the Spike alerts tab, and fits at or above your bar go to Slack.

Setup

  1. Create a free Apify account, copy the API token from Settings, Integrations, and add it as an Apify credential on the four Actor nodes.
  2. Add an OpenAI credential on the chat model node, or swap in any other chat model.
  3. In one spreadsheet, make two tabs named Weekly counts and Spike alerts. Point "Read earlier weeks' counts" and "Log this week's counts" at the first, and "Log the spike alerts" at the second. Columns are created from the first row.
  4. Connect Slack, invite the bot to a channel, and pick the channel.
  5. Edit the Set node: your companies, a line about what you sell, and the spike rules if the defaults don't suit you.
  6. Run it once by hand to set the baseline, then activate it. Alerts start the following week.

Requirements

  • An Apify account; the free tier covers a weekly run for a few dozen companies
  • An OpenAI API key, or any chat model credential n8n supports
  • A Google account for Sheets
  • A Slack bot token with chat:write
  • No LinkedIn account, login or cookies

Customization

  • companies takes names, or Name|id to pin a LinkedIn company id when several pages share a name
  • spikePercent and minIncrease must both be met, so a big company's normal week and a tiny company's two new jobs don't alert
  • Set keywords to sales, engineer or nurse to count only one team's postings
  • location narrows the count to a country or city; leave it blank for every location
  • minFit decides what reaches Slack; every spike is still logged
  • Slowdown rows flag accounts that suddenly stopped hiring, often as telling as a spike
  • Use the optional Employees node to find the buyers at each spiking company
  • Send alerts to Microsoft Teams with the optional node instead of Slack

Additional info

How do I track hiring trends at a company on LinkedIn? Count how many jobs the company posts each week and watch the change. This template does that with LinkedIn's own count for jobs posted in the past seven days, the same number you see above a filtered LinkedIn job search. It stores one row per company per week, so the sheet builds a hiring history you can chart.

What counts as a hiring spike? By default, a company is a spike when it posted at least 10 more jobs than last time and at least 30% more. Both rules have to hold: a large company swings by a dozen postings every week, while a small one going from 2 to 4 is not news. A company that drops by 30% or more is marked Slowdown.

Why did my first run send no alerts? The first run has nothing to compare with, so every company is marked Baseline. Alerts start the next week. To see one right away, lower a count in the Weekly counts tab and run the workflow again.

How do I find a LinkedIn company id? You don't need to. The template matches each name to its LinkedIn company page and saves the id in your sheet, then reuses it every week, so the count never jumps to a different page with the same name. The ID source column shows how each one was picked. If it picked the wrong page, write the name as Name|id.

Can the AI make up a reason? The model only sees the counts, the company facts and this week's sample postings, and it is told not to mention anything else. Its note says which teams are hiring and why that matters for what you sell. When nothing connects, it says No clear fit and scores 1, which keeps the alert out of Slack.

Do I need a LinkedIn account? No. The three Actors read public LinkedIn job and company pages, with no login and no cookies, so your own account is never involved.

What does it cost? The Actors cost a fraction of a cent per company per week: the count row is free, and listings, suggestions, postings and company pages are $0.00001 each. The model is called only for spikes. A run takes about 20 seconds per company, because each company gets its own LinkedIn search.

What else can these Actors do? LinkedIn Job Scraper searches LinkedIn jobs by keyword, place, company id and date. It returns the total results count, full job pages, and title, company and location autocomplete. LinkedIn Jobs API returns full job postings with salary, seniority and applicant counts. LinkedIn Company API returns company data enrichment from LinkedIn: size, people on LinkedIn, industry, headquarters and similar companies. If you self-host n8n, n8n-nodes-linkedin-jobs-api and n8n-nodes-linkedin-company-api wrap two of them as community nodes.

About Apify. LinkedIn Job Scraper runs on Apify, a platform of ready-made scrapers and APIs for sources that have no usable public API. Actors are pay per use with no subscription, and they run in the cloud, so nothing runs on your machine and nothing breaks when the source changes its markup.

New to Apify? You can set up a free account and get the API token this template needs in a couple of minutes.