Indeed Company Jobs Monitor — Hiring Signals & Alerts
Pricing
from $0.50 / 1,000 job row scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
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 actor | Leading Indeed scraper | Cheapest 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 mode | Yes — run-over-run diff, new + verified-closed signals | No (one-shot scrape) | No (one-shot scrape) |
| Alerts (Slack / email / webhook) | Yes, built in | No | No |
| Parsed salary min/max/period/currency | Yes | salary text | salary fields |
| Remote flag, urgently-hiring, company rating | Yes | partial | partial |
| Full description enrichment | Optional (+$0.002/job) | Yes | Yes |
| Raw source record kept | Yes (raw sub-object) | No | No |
| Failure handling | Per-company isolation + 4x retry with fresh proxy session — one bad company never kills the run | 27.3% of recent runs failed (store stats) | — |
| Designed for | Recurring hiring-signal feeds (GTM/intent) | bulk one-shot search scrapes | bulk 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 fulldescription_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,remoteflag - 💰 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
- Click Try for free.
- Enter your target companies — plain names like
Walmart,Netflix,Chewy. - (Optional) filter by title keyword, location (server-side
locationQueryor client-sidelocationFilter), remote only, or last N days. - Click Start → open the Dataset tab. That's a snapshot of each company's newest open roles.
- 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)
| Event | What it covers | Price |
|---|---|---|
monitor-run-completed | one company snapshot — charged once per company per run (snapshot and monitor runs) | $0.005 / company |
lot-scraped | each job/signal row in your dataset | $0.0005 / row ($0.50 per 1,000) |
new-lot-detected | each NEW posting detected in monitor mode | $0.02 / new posting |
lot-detail-enriched | each full-description detail fetch (opt-in) | ~$0.002 / job |
alert-delivered | each 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/keywordto 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-postingonly 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, oroff. - 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.