LinkedIn Job Monitor & Hiring Signal Alerts avatar

LinkedIn Job Monitor & Hiring Signal Alerts

Pricing

from $10.00 / 1,000 qualified job signals

Go to Apify Store
LinkedIn Job Monitor & Hiring Signal Alerts

LinkedIn Job Monitor & Hiring Signal Alerts

Monitor LinkedIn job changes, new hiring and closed roles. Get scored B2B hiring signals and daily job alerts for recruiting, sales and market research.

Pricing

from $10.00 / 1,000 qualified job signals

Rating

0.0

(0)

Developer

Marielise

Marielise

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

LinkedIn Job Monitor & Hiring Signal Alerts — Not Another CSV

Find out when a company starts hiring, changes a role, or stops advertising it on LinkedIn. This LinkedIn job monitor turns public job-search results into a recurring hiring-signal feed for recruiters, staffing firms, sales teams, and competitive-intelligence analysts. It is a LinkedIn job alert and change tracker for teams that need actionable hiring signals rather than another one-off CSV export.

A raw LinkedIn job scraper is useful once. A saved job search that tells you only what changed is useful every day. Search for account executive in London, set a stable watchId, and put the actor on an Apify daily schedule. The first run stores a clean baseline. Each later run emits only new_job, job_changed, and (optionally) job_closed records. That means fewer duplicate rows, simpler Make/Zapier/CRM automations, and a dataset that points directly to action.

No LinkedIn login, cookie, or browser automation is required. The actor reads LinkedIn's server-rendered public guest-job endpoints with inexpensive HTTP requests, so it is substantially lighter than running Playwright for the same public search.

Who uses this

  • Recruiting and staffing teams: be the first to contact a hiring manager when a target role appears.
  • B2B sales and sales-ops: detect headcount investment, GTM expansion, and software-buying triggers at target accounts.
  • Market researchers: watch a competitor's role mix, locations, and seniority requirements over time.
  • Job-market analysts: retain a dated, structured record of vacancy activity without repeatedly exporting the same jobs.

Quick start

Use once first to confirm your keywords and location:

{
"mode": "once",
"keywords": "account executive",
"location": "London, England, United Kingdom",
"datePosted": "pastWeek",
"maxJobs": 50
}

Then create a recurring monitor. Run the same input daily or weekly on an Apify schedule:

{
"mode": "watch",
"watchId": "uk-saas-account-executives",
"keywords": "account executive SaaS",
"location": "United Kingdom",
"datePosted": "pastWeek",
"maxJobs": 100,
"notifyOnClosed": true
}

The first watch run is intentionally a baseline. Later runs push only changes. Each result includes a stable LinkedIn job ID and URL, title, company, location, listing date, detected timestamp, job criteria when publicly available, and changedFields for updates. A closed event means a job that was in the saved search is no longer returned by that same search; it can indicate expiry, removal, or a ranking/filter change, so treat it as a signal rather than a claim that the role was filled.

Watch state is stored in a named key-value store, so it survives between runs. Keep watchId identical across scheduled runs of the same saved search, and give each distinct search its own ID.

Input parameters

FieldTypeDefaultWhat it does
modeselectonceonce exports the current vacancy list, watch emits only changes, reset clears a saved watch.
watchIdstringderivedStable name for the saved search. Keep it identical across scheduled runs.
keywordsstringaccount executiveRole or skill to search for.
locationstringemptyCity, region or country. Blank searches all locations.
datePostedselectpastWeekRestrict the public search to recently posted roles.
remoteOnlybooleanfalseAsk LinkedIn's public search for remote roles only.
employmentTypesarray[]Keep only the selected employment types.
maxJobsinteger50Job cards to collect and inspect per run, 10–200.
verticalselectautoKeep only roles with evidence for a named market. Auto-detects from your watch ID and keywords.
targetCompaniesarray[]Exact company names to watch.
includeKeywords / excludeKeywordsarray[]Keep or drop jobs by term across title, company, location and public description.
minFitScoreinteger0Minimum 0–100 hiring-signal score.
excludeIntermediariesbooleantrueDrop staffing, recruitment and executive-search postings.
notifyOnClosedbooleantrueEmit an event when a tracked role leaves the search results.
includeFullDescriptionbooleanfalseInclude the complete public description instead of a 600-character excerpt.
proxyobjectdirect HTTPEnable an Apify proxy only if your runs are being rate-limited.

Output example

{
"eventType": "new_job",
"status": "ok",
"watchId": "saas-sales-london",
"jobId": "4450637001",
"title": "Account Executive",
"companyName": "Klue",
"location": "London, England, United Kingdom",
"jobUrl": "https://uk.linkedin.com/jobs/view/account-executive-at-klue-4450637001",
"postedAt": "2026-08-06",
"detectedAt": "2026-08-13T09:41:22.104Z",
"employmentType": "Full-time",
"seniorityLevel": "Not Applicable",
"applicantCount": "63 applicants",
"fitScore": 65,
"signalTags": ["market_expansion", "software_company", "new_business_motion"],
"signalSummary": "Klue is hiring Account Executive in London, England, United Kingdom; signals: market expansion, software company, new business motion.",
"companyOpenRoleCount": 2,
"descriptionExcerpt": "At Klue, we're building the future of competitive intelligence..."
}

Two dataset views are provided: Hiring changes for watch events and Current jobs for one-time and baseline exports.

FAQ

Do I need a LinkedIn account or cookie? No. The actor reads LinkedIn's public guest job endpoints only.

Why did my first watch run return every job? That run is the baseline. Schedule the identical input and later runs emit only new_job, job_changed and job_closed.

Why did a watch run return nothing? Nothing changed. An empty dataset in watch mode is the normal healthy result.

What happens if LinkedIn blocks the run? The run still succeeds and writes a single record with status: "blocked" and eventType: "search_unavailable". Saved watch state is left untouched so you never get a wave of false closed-job events.

Why do some results look loosely related to my keywords? LinkedIn's public index widens narrow queries rather than returning an empty page. Use vertical, includeKeywords, minFitScore and targetCompanies to tighten the result set.

Can I change the search and keep the same watch ID? Yes, but the actor detects the changed search profile and re-baselines instead of reporting the difference as real hiring activity.

Data quality and responsible use

Job title, company, location, URL, and listing date come directly from public search cards. Description, workplace type, employment type, seniority, and applicant count are extracted only when a public job-detail response provides them; unavailable values are omitted instead of invented. Public sites can rate-limit or alter markup, so enable an Apify proxy only if your scheduled environment is rate-limited. The actor uses bounded sequential HTTP requests, delays, retries, and a maximum of 200 jobs per run to stay economical and polite.

Use the resulting data in accordance with LinkedIn's terms, applicable privacy law, and your team's lawful-basis and outreach policies.

Turn job rows into client-ready signals

The default output is deliberately compact: it does not repeat multi-page job descriptions in every scheduled run. Instead, each role has a 0–100 deterministic signal score, tags such as founding_sales_team, market_expansion, enterprise_motion, software_company, and new_business_motion, plus a short explanation of why the opening matters. Use minFitScore, includeKeywords, excludeKeywords, and targetCompanies to make a saved search specific to one client or territory. Set includeFullDescription only when a downstream AI workflow genuinely needs the full public text.