Indeed Company Jobs Monitor — Hiring Signals & Alerts avatar

Indeed Company Jobs Monitor — Hiring Signals & Alerts

Pricing

from $0.50 / 1,000 job row scrapeds

Go to Apify Store
Indeed Company Jobs Monitor — Hiring Signals & Alerts

Indeed Company Jobs Monitor — Hiring Signals & Alerts

From $0.005 per company snapshot + $0.0005 per job — monitor any employer's newest Indeed postings, diff runs to flag new & closed roles, and get Slack/email/webhook hiring-signal alerts. Salary, location, remote flag, dates & company rating included. No login or API key.

Pricing

from $0.50 / 1,000 job row scrapeds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

📡 Indeed Company Jobs Monitor — Hiring Signals & Alerts

Point this actor at your target companies and it watches their Indeed job postings for you: every run snapshots each employer's newest open roles (title, location, salary, dates, link), diffs them against the previous run, and emits clean NEW-posting and CLOSED-posting hiring signals — with Slack, email, and webhook alerts. A new job posting is the cleanest "this company is investing in X right now" buying signal there is, and Indeed covers the employers that never publish a Greenhouse/Lever board: retail, logistics, healthcare, manufacturing, SMBs — everyone.

No login or API key — built on Indeed's public job-search pages.


How it compares

This actorLeading Indeed scraperCheapest Indeed scraper
Price per 1,000 jobs$0.50 (lot-scraped @ $0.0005)$6.00 per 1,000 results~$0.08 per 1,000 (pay-per-event)
Company-watch / monitor modeYes — run-over-run diff, new + verified-closed signalsNo (one-shot scrape)No (one-shot scrape)
Alerts (Slack / email / webhook)Yes, built inNoNo
Parsed salary min/max/period/currencyYessalary textsalary fields
Remote flag, urgently-hiring, company ratingYespartialpartial
Full description enrichmentOptional (+$0.002/job)YesYes
Raw source record keptYes (raw sub-object)NoNo
Failure handlingPer-company isolation + 4x retry with fresh proxy session — one bad company never kills the run27.3% of recent runs failed (store stats)
Designed forRecurring hiring-signal feeds (GTM/intent)bulk one-shot search scrapesbulk one-shot search scrapes

The big scrapers are built to bulk-export search results. This actor is built to be scheduled: a cheap per-company snapshot plus a diff, so your CRM/Clay/n8n gets only the postings that actually changed.


Why hiring is an intent signal

  • 🧑‍💼 A new "Salesforce Administrator" posting → they run Salesforce. Sell them Salesforce tooling.
  • 📈 A wave of "Account Executive" reqs → they're scaling GTM. Sell them sales tech, data, enablement.
  • 🏗️ A "Plant Manager — 2nd shift" in a new city → expansion, new facility, new budget.
  • 📉 A posting closing → the role is filled (time to congratulate the new hire) or the budget moved.

GTM platforms charge thousands for this feed. Indeed already publishes it — this actor turns it into structured rows for the exact companies you care about. It's the perfect complement to ATS-board monitors (Greenhouse/Lever/Ashby): most of the economy doesn't use those ATSs, but almost everyone posts to Indeed.


What you get (per posting)

  • 🏷️ Role: title, norm_title, snippet, job_types, optional full description_html/description_text + benefits
  • 🏢 Employer: company (exact, fuzzy matches filtered out), company_rating, company_review_count, company_overview_url, advertiser_id, featured_employer
  • 📍 Location: location, city, state, postal, remote flag
  • 💰 Salary (parsed): salary_text, salary_min, salary_max, salary_currency, salary_period, salary_source
  • 📅 Dates: posted_at & pub_date (ISO), posted_relative, expired
  • 🚨 Hiring urgency: urgently_hiring, hiring_multiple_candidates, new_on_indeed, sponsored
  • 🔗 Links: direct url (viewjob), third_party_apply_url, indeed_apply_enabled
  • 📶 Signal fields (monitor mode): signal = new-posting / closed-posting / baseline-snapshot, is_new, first_seen, last_seen
  • 🧾 raw — the complete source record (minus ad-tracking blobs), so nothing Indeed returns is lost

Export to JSON, CSV, Excel, HTML, RSS, or pull via the Apify API straight into your CRM, Clay, n8n, Make, or warehouse.


How to use it

  1. Click Try for free.
  2. Enter your target companies — plain names like Walmart, Netflix, Chewy.
  3. (Optional) filter by title keyword, location (server-side locationQuery or client-side locationFilter), remote only, or last N days.
  4. Click Start → open the Dataset tab. That's a snapshot of each company's newest open roles.
  5. For a live hiring-signal feed: turn on Monitor mode, add an Apify Schedule (e.g. daily), and a Slack/email/webhook. The first run seeds a baseline; every run after that outputs and alerts only what changed.

Quick start (snapshot)

{ "companies": ["Walmart"], "maxJobsPerCompany": 50 }

Daily hiring-signal monitor

{
"companies": ["Netflix", "Stripe", "Chewy", "Datadog"],
"monitorMode": true,
"alertOnNewPosting": true,
"slackWebhookUrl": "https://hooks.slack.com/services/…"
}

Sales-team watcher (only AE roles, remote)

{ "companies": ["Snowflake", "MongoDB"], "keyword": "account executive", "remoteOnly": true, "monitorMode": true }

Pricing (pay-per-event)

EventWhat it coversPrice
monitor-run-completedone company snapshot — charged once per company per run (snapshot and monitor runs)$0.005 / company
lot-scrapedeach job/signal row in your dataset$0.0005 / row ($0.50 per 1,000)
new-lot-detectedeach NEW posting detected in monitor mode$0.02 / new posting
lot-detail-enrichedeach full-description detail fetch (opt-in)~$0.002 / job
alert-deliveredeach Slack/email/webhook alert sent~$0.005 / alert

Example: watching 50 target accounts daily ≈ 50 × $0.005 = $0.25/day for the snapshots, plus $0.02 per actual new posting found. A month of monitoring 50 companies costs less than a single bulk scrape elsewhere. (Final prices are set on the actor's pricing page.)


Scope, notes & limits (honest version)

  • Newest-jobs window: the no-login surface is each company's first results page — the ~15-20 newest postings. That is exactly what a change-monitor needs (new postings always enter through page 1), but this is not a bulk exporter of a 10,000-req employer's entire backlog. For very high-volume employers, narrow with locationQuery/keyword to keep the window relevant.
  • Closed-posting detection is verified, not guessed. Indeed rotates sponsored slots on every page load, so "missing from the page" proves nothing. When a previously-seen posting disappears, the actor checks that posting's own Indeed page and reports closed-posting only if it's marked expired there. Jobs that merely scrolled off the window are left alone. (Verification fetches are capped per run — maxCloseChecksPerRun, default 25 — and re-queued across runs.)
  • No duplicate "new" alerts ever: the monitor keeps a cumulative per-company seen-set, so a posting that rotates out of view and back in is never re-flagged. For a tight alert feed on very high-volume employers, pair with newWithinDays (e.g. 3) so only freshly-posted roles enter the feed at all.
  • Fuzzy search, exact filter: Indeed's company: search is fuzzy full-text ("Stripe" also returns "Stripe-A-Zone"), so the actor filters by the exact employer field — companyMatch = contains (default, catches "Walmart Supply Chain"), exact, or off.
  • First monitor run = baseline. You get the full snapshot, but nothing is flagged/charged/alerted as "new" — diffs start on run two. No double-alerting: state lives in a named key-value store (indeed-company-hiring-monitor-state) that persists across scheduled runs.
  • ToS note (gray area): this actor accesses only public, no-login job-listing pages and collects no personal data — but Indeed's Terms of Service restrict automated access. Review them and applicable law; you are responsible for your use.
  • A failed company (network blip, challenge) is logged and skipped — it never crashes the run or your schedule.

FAQ

Which companies can I track? Any employer with jobs on indeed.com — by far the broadest job surface there is. Use plain names ("Walmart"). Power users can pass an Indeed company-page slug ("cmp:Walmart" or the /cmp/... URL) for exact employer scoping; note that page embeds a Cloudflare challenge widget, so plain names are the recommended, more reliable path.

How is this different from the big Indeed scrapers? They bulk-export search results once. This one is a monitor: cheap per-company snapshots, run-over-run diffing, and only-what-changed output + alerts. Different job (and ~12x cheaper per row).

How fresh are the signals? Schedule it daily (or hourly for hot accounts) — a new posting is detected on the first run after it appears in the company's newest-jobs window.

Will it double-alert? No. Monitor state is keyed per company + filter scope and persists in a named key-value store.

Can I get full job descriptions? Yes — set fetchDescriptions: true. One extra request per posting, charged as lot-detail-enriched.

Does it parse salaries? Yes — salary_min / salary_max / salary_period / salary_currency, plus whether the figure came from the employer or Indeed's estimate (salary_source).

Remote roles? remote boolean on every row, plus a remoteOnly input filter.

What's in raw? The complete source record for each job card (minus ad-tracking blobs) — if Indeed exposes it, you have it, even fields we didn't flatten.

What about pagination / all postings? Page 2+ of Indeed search requires a login, so the no-login scope is the newest-jobs window per company. For monitoring that's a feature: new postings always pass through it.

Do I need proxies? Apify's default datacenter proxy worked reliably in testing. If you ever see challenge retries in the log, switch the proxy input to RESIDENTIAL.

Can it feed Clay / n8n / Make / my CRM? Yes — webhook alerts per signal, or pull the dataset via the Apify API/integrations.

Is this legal? It reads public, no-login pages and collects no personal data, but scraping Indeed is against their ToS preferences — see the ToS note above. You decide your own risk tolerance and compliance.