Company Jobs Watcher: New & Closed Roles by Company avatar

Company Jobs Watcher: New & Closed Roles by Company

Pricing

$10.00 / 1,000 changed company or first baselines

Go to Apify Store
Company Jobs Watcher: New & Closed Roles by Company

Company Jobs Watcher: New & Closed Roles by Company

Watch up to 50 company job boards for new and closed roles. Bring previous job IDs or save snapshots for daily monitoring. Pay $0.01 per changed company or first baseline; unchanged and no-board checks are free.

Pricing

$10.00 / 1,000 changed company or first baselines

Rating

0.0

(0)

Developer

HirePulse

HirePulse

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

Company Jobs Watcher

Monitor up to 50 company job boards and see which job IDs appeared or disappeared since your last successful check. Use it for recruiting research, account monitoring, or a daily n8n/Make workflow.

Pay $0.01 per changed company or first baseline. An unchanged company or a company with no supported board is free. There is no Actor start fee or dataset-item fee, and this Actor does not pass platform usage charges to the user. Your separate storage, integrations, or other account services may have their own costs.

First run

{
"domains": ["ramp.com", "linear.app", "stripe.com"]
}

Each found board produces a baseline. Current listings are in baseline_jobs, and the full ID list is in current_job_ids. new_jobs is empty on a baseline: a first observation does not prove that a role just opened.

The default dataset contains one result per normalized company domain. The NEXT_INPUT record in the default key-value store contains the complete input for the next check, including the correct known_job_ids map. Copy that whole record, rather than a shortened display example. An explicit empty ID array means the previous board was empty; an absent domain key means no baseline yet.

Real captured output

Selected summary fields from Apify validation run 9V4K5sBt1rwVU5cg7, captured 2026-10-30T21:35:04.648808+00:00. The full record also contains current_job_ids and job objects with source IDs, titles, locations, and application links. Counts change over time; this is a dated example, not a current measurement.

{
"domain": "linear.app",
"status": "baseline",
"ats_type": "ashby",
"board_slug": "Linear",
"checked_at": "2026-10-30T21:35:04.648808+00:00",
"total_jobs": 31,
"new_jobs_count": 0,
"closed_jobs_count": 0,
"new_jobs": [],
"closed_jobs": [],
"charged": true
}

Scheduled daily monitoring

Use saved state so a fixed scheduled input does not create a new baseline every day:

{
"domains": ["ramp.com", "linear.app", "stripe.com"],
"state_key": "daily-company-watch"
}

Save this input as a Task. In Apify Console, create a daily schedule at 09:00 in your chosen timezone and enable exclusive execution. Keep the same state_key and run under the same account. Do not run the same watch concurrently. Snapshots are kept in a named key-value store scoped to the Actor, running account and watch name. A failed source check leaves the last successful snapshot untouched. If you delete that saved store, the next check creates a new paid baseline.

An explicit known_job_ids entry overrides saved state for that domain. For automatic schedules, omit the explicit map so each run uses the last successful saved snapshot. A fresh watch name creates a fresh baseline.

An example public Task and a disabled daily schedule are provided with this Actor. Review the domains, spending cap and timezone before enabling the schedule in your account. The disabled example does not run automatically.

Results and alerts

StatusMeaningCharge per company
baselineFirst successful snapshot, including a verified empty board$0.01
changedOne or more job IDs appeared or disappeared$0.01
unchangedSame set of job IDs as the supplied/saved snapshot$0.00
not_foundNo supported board found on the inspected company pages$0.00
errorBlocked source, timeout, malformed/incomplete data, or spending limit$0.00

The custom billing event is company-changed. It is charged at most once per company per run. At 50 companies the maximum event charge is $0.50. Set Apify's maximum total charge before starting. If that cap prevents a charge, the affected result is withheld, an uncharged diagnostic is returned, and saved state is not advanced.

On changed, new_jobs contains the current source records for newly observed IDs and closed_jobs contains disappeared IDs. Saved-state mode can also retain their previous titles and links; when you provide only IDs, missing metadata cannot be reconstructed. A disappeared listing may have been removed, migrated or reposted; it does not prove that the position was filled. Title or salary edits with the same ID do not trigger a change.

For notifications, connect Apify's completed-run integration to n8n or Make, read the dataset, and continue only for rows where status == "changed". Send alerts to a destination you configure there. This Actor writes structured changes; it does not send emails or messages itself. SUMMARY contains per-status counts and the charged-company count; NEXT_INPUT helps stateless clients continue the comparison.

API

Use Apify Console, the official Apify client, or start a run with your own Apify token:

curl -X POST \
'https://api.apify.com/v2/acts/hirepulse~company-jobs-watcher/runs?maxTotalChargeUsd=0.50' \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
--data '{"domains":["ramp.com","linear.app","stripe.com"],"state_key":"daily-company-watch"}'

This starts an asynchronous run. Poll its run ID, then fetch items from defaultDatasetId and the NEXT_INPUT record from defaultKeyValueStoreId. Keep the token private. Do not blindly repeat start requests after a network timeout; first check whether a run was created.

Input and limits

  • domains: required, 1–50 public company domains or HTTPS URLs. Duplicate normalized domains are checked once. Local/private targets and IP addresses are rejected.
  • known_job_ids: optional object mapping input domains to arrays of at most 5,000 string IDs (1–128 characters each). Use a complete previous snapshot; a truncated list produces misleading differences.
  • state_key: optional watch name, up to 64 letters, digits, hyphens or underscores. Omit or leave empty for stateless runs.
  • Supported boards: Greenhouse, Lever, Ashby, Workable, Recruitee and SmartRecruiters. Discovery requires a link from the company pages; a same-name board alone is insufficient. Stripe's company index is matched to Greenhouse IDs before accepting its board.
  • No Workday support, browser rendering, proxy service, login, or external paid data provider. not_found does not mean the company has no jobs; its board may be unsupported or invisible in fetched HTML.
  • Source requests and each company check have time limits. Oversized, malformed or detectably incomplete snapshots return an error instead of claiming mass closures. Third-party sources can still change without notice.
  • Typical runtime depends on the source and number of companies; there is no fixed runtime guarantee. Each company has a 75-second detection limit and up to three companies are processed concurrently.

Use ATS Job Pulse for richer job extraction and filtering. Company Jobs Watcher is focused on recurring ID-set changes and charges only for a baseline or a change.