Workable Jobs Scraper & Change Monitor avatar

Workable Jobs Scraper & Change Monitor

Pricing

from $0.90 / 1,000 job records

Go to Apify Store
Workable Jobs Scraper & Change Monitor

Workable Jobs Scraper & Change Monitor

Find public Workable jobs by role and location, export complete job details, and track changes across repeat searches and company watch lists.

Pricing

from $0.90 / 1,000 job records

Rating

0.0

(0)

Developer

Luka

Luka

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Turn Workable searches and company job pages into a useful job catalogue, then keep it current with repeat checks.

  • Find jobs: search by role, location, posting date and work arrangement.
  • Export the details: employer, locations, description, requirements, benefits and application link.
  • See what changed: stable job IDs and separate new, updated and verified absence records.

You receive job, change and coverage rows. A job identifies the role and employer; a coverage row tells you how much of the requested source was checked.

🚀 Start in 60 seconds

  1. Keep Get current jobs, or enter a role and location.
  2. Leave Maximum current jobs at 20 for a small first export.
  3. Start the Actor, then open Jobs, changes and coverage.

A successful 20-job collection costs $0.0225: $0.0045 for the verified collection plus $0.0009 for each current job. The same prices apply across plans. Export as JSON, CSV, Excel or XML.

🎯 Choose the right workflow

GoalWorkflowInput
Find current rolesGet current jobsRole and location, or public Workable search/company URLs
Inspect specific rolesGet job detailsIndividual https://jobs.workable.com/view/... URLs
Compare repeat checksTrack changesThe same searches or company URLs and watch name, run sequentially

Pasted URLs take priority over the default keyword search. Search filters apply to searches; explicit company pages retain the company's complete public job scope. The Actor supports jobs.workable.com search, company and job pages. A company watch list is supplied by you; the Actor does not discover every employer using Workable.

📦 What you get

Current job rows include stableId, jobId, title, company, employer URLs, location components, work arrangement, employment type, posting/update dates, source publication state, full HTML/plain text content, requirements, benefits and application URL. Optional fields are null when not published.

Change rows add changeId, changeKind and the previous content fingerprint. NEW means first observed in this watch, not necessarily first published today. UPDATED means a source-published job field changed. NO_LONGER_LISTED means a saved job left a completely checked company listing. LEFT_SEARCH_RESULTS means it left a fully checked search scope; neither event claims that someone was hired. An inaccessible source or a cap cannot produce an absence event.

Coverage rows show sourceJobs, matchedJobs, deliveredJobs and coverageStatus for each target. Keep these rows when assessing completeness. Filter recordType=job in downstream tools when you only need current jobs.

Workable jobs output sample

🎛️ Input guide

SettingUse
Role or keywordsWorkable's public content search; matches can occur in the description
LocationCountry, region or city; remote selects remote roles
Workable URLsUp to 50 public search, company or job URLs; overrides the default search
Posting date / Work arrangement / Employment typeNarrow search results
Include full textControls export size; it does not change the per-job price
Watch nameKeeps independent repeat-monitoring baselines separate
First monitoring runSave a starting list, or also emit current jobs as NEW
Maximum current jobs1–10,000 unique current jobs across the run
Collection time limit10–210 seconds; allow at least 60 more seconds for final delivery
Maximum buyer chargeGuard for the requested workload; also respect the platform spending limit

For monitoring, repeat runs sequentially with the same watch name, URLs, filters and full-text setting. A new scope starts a new baseline. The saved state supports up to 10,000 jobs. Current rows are still returned and charged on unchanged checks; the change rows make comparison easier. An interrupted delivery must be recovered in its original run before the watch continues.

💰 Pricing

EventPrice
Verified collection, once per run$0.0045
Each verified current job$0.0009
Each verified saved absence$0.0009
NEW and UPDATED change rows, coverage rowsIncluded

Examples: 1 job $0.0054; 20 jobs $0.0225; 100 jobs $0.0945; 1,000 jobs $0.9045. A trustworthy empty collection costs $0.0045. A source failure with no verified result is free. If other targets succeed, their verified jobs and the one collection fee apply. Platform usage pass-through is off; no additional source or platform usage charge is added by this Actor.

Monitoring can return current jobs plus saved absences, so set the spending cap for both. At the maximum, 10,000 current jobs plus 10,000 distinct absences cost $18.0045. This is an upper bound, not an expected run. Optional description fields do not add an event.

✅ Coverage you can trust

COMPLETE means the requested target was exhausted and its records verified. EMPTY_CONFIRMED means a valid source returned no matching jobs. CAPPED means a result, time or output-size limit stopped collection. PARTIAL combines trusted results with unsuccessful targets. FAILED means that target could not be verified; NOT_VISITED means an earlier run limit prevented its check.

The export has a 30 MB data limit and a 256 KB limit per normalized job. Large descriptions may reach a limit before the job-count maximum. A collection may change while it is being read; inconsistent totals keep absence reporting disabled. No query is silently broadened when it returns zero jobs.

🔌 API and automation

Use the Actor's API tab to run luminar/workable-jobs-change-monitor and read its Dataset. A small input is:

{"keyword":"software","location":"United States","maxJobs":20}

For sequential monitoring:

{"workflow":"monitor","keyword":"product manager","location":"remote","stateNamespace":"remote-product-jobs","maxJobs":100,"maxBuyerChargeUsd":1}

Use stableId to update a current-job table and changeId to deduplicate change observations. Keep coverage separate from job records in your destination. Apify integrations can connect the Dataset to your own workflow; no preconfigured destination or public template is included.

⚠️ Not yet supported

  • Private hiring pipelines, applicant information, application submission or account data.
  • apply.workable.com career pages, employer subdomains, or other applicant-tracking systems. Use the corresponding public jobs.workable.com company/job page.
  • Guaranteed collection of the entire Workable catalogue, inference of hires or salaries, or absence claims from incomplete searches.
  • Simultaneous runs sharing one watch. Use sequential checks and inspect coverage before relying on changes.

❓ FAQ and support

Why do I see a matching job without the keyword in its title? Workable searches job content too. Review the description and source link.

Are unchanged jobs free? Current verified job observations are charged on every run. NEW/UPDATED change rows are included, and saved absences have their own small result charge.

Why is an optional field empty? Employers do not publish every field. Empty secondary metadata stays null; the Actor does not invent it.

Can a missing job prove a hire? No. Source absence is a listing observation, not evidence of a hire.

For support, share the run ID and expected public job/search URL through the Actor's Issues tab. Do not include credentials or applicant information.