Workable Jobs Scraper: Any Company's Workable Careers Page
Pricing
from $1.20 / 1,000 job listings
Workable Jobs Scraper: Any Company's Workable Careers Page
Get every open job from any company's Workable careers page through Workable's public jobs widget feed: title, department, location, remote flag, employment type, posting date and description. Filter by keyword and location, and schedule it to get only new jobs. USD 1.50 per 1,000 jobs.
Pricing
from $1.20 / 1,000 job listings
Rating
0.0
(0)
Developer
JT Palms
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
Workable Jobs Scraper: every open job from any company on Workable
Give it a list of companies that hire with Workable and get back every open job as clean rows: title, department, location, remote flag, employment type, posting date, job and apply links and the description as plain text. It reads the public jobs feed that Workable's own "embed jobs on your website" widget uses, so there is no browser, no proxy and no blocking. A company's jobs take well under a second.
USD 1.50 per 1,000 jobs. Companies that cannot be found are reported free.
What people use it for
- Sales signals from hiring. A company opening several engineering or sales roles is growing and buying. Pull the open jobs of your target accounts every week, filter by department or keyword, and send new roles to your CRM, Clay or Slack.
- Job boards and newsletters. Fill a niche job board or a weekly jobs newsletter straight from the source, with a direct apply link for every job.
- Recruiting market research. Compare hiring across competitors by department, location and seniority keywords, and track how open headcount changes over time.
- Job alerts. Schedule it with Only new jobs turned on and receive only postings that appeared since the last run.
Sample output
A real row (description trimmed):
{"source": "workable","company": "blueground","companyName": "Blueground","jobId": "B02DA69C8F","title": "Senior Software Engineer, iOS","department": "Shared Services","team": null,"location": "Athens, Attica, Greece","locations": ["Athens, Attica, Greece"],"workplaceType": null,"isRemote": false,"employmentType": "full_time","compensation": null,"postedAt": "2026-09-24T00:00:00.000Z","updatedAt": null,"jobUrl": "https://apply.workable.com/j/B02DA69C8F","applyUrl": "https://apply.workable.com/j/B02DA69C8F/apply","descriptionText": "At Blueground, we believe that when your base is reliable, the world opens up. ...","scrapedAt": "2026-09-29T03:20:16.393Z"}
Real runs: Blueground returned 10 jobs, Skroutz 11 and Epignosis 8, each in under a second.
How to use it
- Add companies to Companies, one per line. Any of these work:
- an account name:
blueground - a careers page URL:
https://apply.workable.com/bluegroundorhttps://blueground.workable.com - a job URL that contains the account name:
https://apply.workable.com/blueground/j/B02DA69C8F/
- an account name:
- Optionally narrow the results:
- Title keywords:
engineer,AI,/product (manager|owner)/ - Locations:
Athens,Greece,Remote - Remote jobs only
- Departments:
Engineering,Sales(the job function counts too) - Posted within (days):
7 - Max jobs per company: newest first
- Title keywords:
- Click Start, then export as CSV, JSON or Excel, or read the dataset through the Apify API.
Finding the account name. Open the company's careers page and click a job. If the address is apply.workable.com/<name>/... or <name>.workable.com, that is the account name. Short links like apply.workable.com/j/<code> do not contain it; open the careers page instead. If the company shows its jobs on its own website and you cannot find the Workable name, use Career Page Jobs Scraper, which finds the job board by itself.
Job alerts on a schedule
- Turn on Only new jobs and set your filters.
- Save the input as a task and add a schedule (daily or weekly).
- Connect the results to email, Slack, Google Sheets or a webhook in the task's Integrations tab.
The first run returns all matching jobs. Every later run returns only jobs that were not delivered before.
Input
| Field | What it does |
|---|---|
companies | Account names or careers page URLs. Required. |
keywords | Keep jobs whose title matches any keyword. Words match at their start (engineer finds "Engineering"); keywords of 3 letters or fewer must be a whole word (AI does not match "Chair"). /regex/ is supported. |
locations | Keep jobs whose location contains any of these texts. Every listed location counts. |
remoteOnly | Keep only jobs that can be done remotely. |
departments | Keep jobs whose department or job function contains any of these texts. |
postedWithinDays | Keep jobs published in the last N days. 0 = any date. |
maxJobsPerCompany | Newest jobs first, at most this many per company. 0 = no limit. |
onlyNewJobs | Output only jobs not delivered by an earlier run (see FAQ). |
includeDescription | Add the description as plain text, up to 5,000 characters. Default on. |
maxConcurrency | Companies processed in parallel. Default 5. |
Output fields
| Field | Notes |
|---|---|
company, companyName | Workable account name and the company's display name. |
jobId, title | Workable job code (shortcode) and title. |
department | The job's department. team is always null. |
location, locations | Main location, and every listed location. |
workplaceType, isRemote | remote when Workable marks the job as remote (telecommuting). The feed does not tell hybrid from on-site, so those are null unless the location or title says so. |
employmentType | full_time, part_time, contract, temporary, internship or null. |
compensation | Always null: Workable's public feed has no pay ranges. |
postedAt, updatedAt | Publication date (a date, shown at midnight UTC). updatedAt is null. |
jobUrl, applyUrl | The job page and the application form on Workable. |
descriptionText | Plain text, HTML removed, capped at 5,000 characters. |
error | Only on rows for companies that could not be read. These rows are free. |
A SUMMARY record in the run's key-value store lists every company with its number of open jobs, matches, new jobs and errors.
Pricing
| What | Price |
|---|---|
| Job listing in the results | USD 0.0015 (USD 1.50 per 1,000) |
| Company not found, wrong URL, or unreadable board | Free |
Example: 50 companies with 20 open jobs each is 1,000 jobs, USD 1.50. With Only new jobs on a daily schedule you pay only for new postings, usually a few cents a day.
Set a maximum cost per run in the run options and the actor stops cleanly when it gets there; everything saved so far stays in the dataset.
Limits
- The actor identifies itself. Every request carries the user agent
Mozilla/5.0 (compatible; workable-jobs/1.0; +https://apify.com/JTPalms/workable-jobs), with plain request headers. It never pretends to be a browser. Some sites block bots; a blocked request is reported as an error, not hidden. - Only jobs the company publishes on its Workable careers page. Internal or unlisted jobs are not in the feed.
- No pay ranges, and remote is the only workplace type the feed states.
- An account that exists but has no public jobs returns no rows and a note in the
SUMMARY.
Related actors
- Career Site Jobs: ATS Job Postings API for Greenhouse, Lever: Job postings from 17,000+ company career sites, read from the official job-board APIs of Greenhouse, Ashby, Lever, Workable, Teamtailor...
- Career Page Jobs Scraper: Auto-Detects the Job Board (ATS): Give company websites or careers pages and get every open job.
- Hiring Signals: Companies Hiring by Role, Team & Location: Find companies hiring right now, one row per company: open roles by team, seniority and location, roles posted in the last 7 and 30...
- Recruitee Jobs Scraper: Any Company's Careers Site Jobs: Get every open job from any company's Recruitee careers site through the public Careers Site API: title, department, locations, remote...
FAQ
What does it read? Only the public jobs feed (apply.workable.com/api/v1/widget/accounts/<name>) that Workable's own job widget reads when a company embeds its jobs on its website. It sees published job postings only, collects no personal data, and never logs in or submits anything. If you republish jobs, link to jobUrl or applyUrl so candidates apply with the company.
How does Only new jobs work? The actor keeps, per company, the IDs of the jobs it has already delivered, in a key-value store named workable-jobs-monitor in your own Apify account. Each run outputs only matching jobs whose ID is not in that list, then adds them. Jobs left out only by Max jobs per company are marked as seen too, so they do not come back later. Jobs cut off by your cost limit stay new for the next run. Closed jobs are dropped from the list automatically. To start over, delete the store in Storage.
Are there sister actors? Yes. Greenhouse, Lever, Ashby, Recruitee, Personio and Breezy HR Jobs Scrapers give the same row format, and Career Page Jobs Scraper finds the right one from a company's website.
Something missing or wrong? Open an issue with the company name and what you expected.
Is this an official Workable product? No. It is an independent tool that reads Workable's public jobs widget feed. It is not affiliated with or endorsed by Workable.