Workable Jobs Scraper avatar

Workable Jobs Scraper

Pricing

from $0.02 / 1,000 job results

Go to Apify Store
Workable Jobs Scraper

Workable Jobs Scraper

Scrape public Workable career boards by company slug or URL. Export job titles, locations, departments, workplace type, remote flags, dates, URLs, and optional descriptions.

Pricing

from $0.02 / 1,000 job results

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Export public Workable career-board jobs by company slug or URL, including job titles, locations, departments, workplace type, remote flags, posting dates, job URLs, application URLs, and optional descriptions.

Use this Actor when you need a repeatable CSV, JSON, Excel, API, or AI-agent export of Workable-hosted job boards for recruiting intelligence, hiring-signal monitoring, sales research, or job-market analysis.

What Does Workable Jobs Scraper Do?

Workable Jobs Scraper turns public Workable career pages into structured job listing rows.

  • Scrape by company slug: use recurly from https://apply.workable.com/recurly/.
  • Scrape by URL: paste Workable company career pages or job URLs.
  • Filter jobs: use keyword, location, department, work type, and remote filters.
  • Collect job details: export titles, locations, departments, workplace labels, remote flags, posting dates, job URLs, and Workable IDs.
  • Optionally include descriptions: fetch job detail data for description, requirements, and benefits HTML.

Input recipes

  • Small test: Start with the default input and a low result limit.
  • Focused run: Use one specific public URL, query, profile, or location before expanding the input.
  • Scheduled monitoring: Save the input as a task and schedule repeat runs when you need fresh data.

Input Example

{
"companySlugs": ["recurly"],
"query": "engineer",
"remote": true,
"maxItems": 20,
"includeDescription": false
}

You can also paste Workable URLs:

{
"startUrls": [
{
"url": "https://apply.workable.com/recurly/"
}
],
"maxItems": 20
}

Output Example

{
"companySlug": "recurly",
"jobTitle": "Senior Software Engineer",
"location": "United States",
"departments": ["Engineering"],
"workplace": "Remote",
"remote": true,
"publishedAt": "2026-07-01",
"url": "https://apply.workable.com/recurly/j/example/",
"jobId": 123456,
"shortcode": "ABC123",
"city": null,
"region": null,
"country": "United States",
"workType": "Full-time",
"applicationUrl": "https://apply.workable.com/recurly/j/example/apply/",
"descriptionHtml": null
}

Who Is It For?

UserUse case
RecruitersMonitor Workable-hosted boards for new roles and remote openings.
Sales teamsFind companies actively hiring by department, role, or region.
Market researchersTrack hiring activity across company lists and job categories.
Job-board operatorsExport public Workable listings into a normalized dataset.
AI agentsRun Workable board checks through Apify API or MCP and summarize hiring signals.

Input settings

SettingJSON keyType / defaultDescription
Company slugscompanySlugsarray, default ["recurly"]Workable company slugs from apply.workable.com URLs, for example recurly from https://apply.workable.com/recurly/.
Start URLsstartUrlsarray, default [{"url":"https://apply.workable.com/recurly/"}]Workable career page URLs or job URLs. The actor extracts the company slug from each URL.
Search queryquerystringOptional keyword query sent to Workable, such as engineer, marketing, or sales.
LocationslocationsarrayOptional location filters, for example London, United States, or Remote.
DepartmentsdepartmentsarrayOptional department filters, for example Engineering, Product, or Sales.
Work typesworkTypesarrayOptional Workable job type or workplace filters, for example full, hybrid, or remote.
Remote onlyremotebooleanSet to true to keep only jobs marked as remote, or false to keep only non-remote jobs. Leave empty for both.
Maximum jobsmaxItemsinteger, default 20Maximum number of job listings to save across all company boards.
Include job descriptionsincludeDescriptionboolean, default falseFetch each job detail page through Workable's public API and include description, requirements, and benefits HTML. This is slower but richer.

Output fields

JSON keyLabelTypeDescription
companySlugCompanySlugstringOutput field for companyslug.
jobTitleJobTitlestringOutput field for jobtitle.
locationLocationstring / nullOutput field for location.
departmentsDepartmentsarrayOutput field for departments.
workplaceWorkplacestring / nullOutput field for workplace.
remoteRemotebooleanOutput field for remote.
publishedAtPublishedAtstring / nullOutput field for publishedat.
urlUrlstringOutput field for url.
jobIdJobIdintegerOutput field for jobid.
shortcodeShortcodestringOutput field for shortcode.
cityCitystring / nullOutput field for city.
regionRegionstring / nullOutput field for region.
countryCountrystring / nullOutput field for country.
countryCodeCountryCodestring / nullOutput field for countrycode.
workTypeWorkTypestring / nullOutput field for worktype.
applicationUrlApplicationUrlstringOutput field for applicationurl.
employmentTypeEmploymentTypestring / nullOutput field for employmenttype.
languageLanguagestring / nullOutput field for language.
descriptionHtmlDescriptionHtmlstring / nullOutput field for descriptionhtml.
requirementsHtmlRequirementsHtmlstring / nullOutput field for requirementshtml.
benefitsHtmlBenefitsHtmlstring / nullOutput field for benefitshtml.
rawRawobjectOutput field for raw.

Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

EventWhat is chargedPrice
startOne-time fee charged when a run starts. Covers fixed startup cost.$0.005
EventWhat is chargedFree / no discountStarter / BronzeScale / SilverBusiness / GoldCustom / PlatinumCustom / Diamond
itemPer Workable job listing saved to the dataset.$0.03638 / 1,000$0.03163 / 1,000$0.02467 / 1,000$0.01898 / 1,000$0.01265 / 1,000$0.01 / 1,000

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

Tips For Better Results

  • Use company slugs for clean inputs: they are shorter and less fragile than copied URLs.
  • Start with a small maxItems: confirm the board and filters before scheduling large runs.
  • Use includeDescription only when needed: it adds richer fields but requests more detail data.
  • Leave filters empty for full board exports: filters can exclude roles if company naming differs.
  • Check board availability: not every company uses Workable or keeps old postings public.

API usage

Run Workable Jobs Scraper from your own code with the Apify API.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
"companySlugs": [
"recurly"
],
"startUrls": [
{
"url": "https://apply.workable.com/recurly/"
}
],
"query": "example search",
"locations": [],
"departments": []
};
const run = await client.actor('fetch_cat/workable-jobs-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/workable-jobs-scraper").call(run_input={
"companySlugs": [
"recurly"
],
"startUrls": [
{
"url": "https://apply.workable.com/recurly/"
}
],
"query": "example search",
"locations": [],
"departments": []
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~workable-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companySlugs":["recurly"],"startUrls":[{"url":"https://apply.workable.com/recurly/"}],"query":"example search","locations":[],"departments":[]}'

Use with AI agents via MCP

Workable Jobs Scraper can be used by AI assistants through the hosted Apify MCP server.

Claude Code setup

$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/workable-jobs-scraper"

Claude Desktop, Cursor, or VS Code JSON config

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/workable-jobs-scraper"
}
}
}

Example prompts

  • "Run Workable Jobs Scraper with this input JSON and summarize the dataset."
  • "Export the latest Workable Jobs Scraper results to a table I can review."
  • "Schedule this Actor for monitoring and tell me what changed between runs."

Limits And Notes

  • The Actor extracts public Workable career-board data; it does not access private applicant systems.
  • Filters depend on how each company configures its Workable board.
  • Descriptions, requirements, and benefits are only included when includeDescription is enabled and available.
  • Some older job URLs may be closed or redirected by Workable.

FAQ

Can I scrape multiple Workable companies in one run?

Yes. Add multiple values to companySlugs or multiple URLs to startUrls.

Can I export Workable jobs to CSV or Excel?

Yes. Export the Apify dataset as CSV, Excel, JSON, XML, or RSS after the run.

Why did I get zero jobs?

Check that the company slug exists on apply.workable.com, remove strict filters, and try a small run without query, locations, or departments.

Why are descriptions missing?

Set includeDescription to true. Some boards or jobs still may not expose all detail fields.

Is this a Workable API alternative?

It can be used as an API-style export for public Workable career boards through Apify API, datasets, schedules, webhooks, and MCP.

Support

Report bugs, wrong output, blocked runs, or missing fields from the Actor page. Include the Apify run ID or run URL, your input JSON, what you expected, what the Actor returned, and one reproducible public URL so the issue can be tested quickly.