Job Board Harvester: Multi-Platform avatar

Job Board Harvester: Multi-Platform

Pricing

from $1.28 / 1,000 jobs

Go to Apify Store
Job Board Harvester: Multi-Platform

Job Board Harvester: Multi-Platform

Jobs from 13 career-site systems (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Personio...), AI talent marketplaces and LinkedIn in one clean dataset. Paste a careers page, type a company name or scan 500+ verified boards. Only-new monitoring. From $1.60 per 1,000 jobs.

Pricing

from $1.28 / 1,000 jobs

Rating

0.0

(0)

Developer

Tapaswai Choudhary

Tapaswai Choudhary

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 hours ago

Last modified

Security

Limited permissions

Share

Job Board Harvester - Every Job Board, One Clean Dataset

Pull job postings from company career pages, AI talent marketplaces, and the big job search boards into a single, normalized, deduplicated dataset - ready to export to JSON, CSV, or Excel, push to your database, or feed into another Actor.

Track hiring at the companies you care about, build a jobs feed, power a recruiting tool, or run market research - without wiring up a dozen different sites yourself.

What it does

Ways to source jobs, mixed freely in one run:

  • Company boards - paste a company's careers page (https://www.figma.com/careers) or just its name (Datadog): the job board behind it is found automatically and every open role comes back.
  • The company directory - scan our directory of 500+ verified company boards (about 195,000 open jobs at the last refresh) on the systems you pick, biggest first, and filter by title, location and country. No company list needed.
  • AI & remote talent marketplaces - Mercor, micro1, Turing and Himalayas: expert, AI-training and remote roles, often with hourly rates.
  • Tech and startup job search - Dice, Built In and Wellfound (salary and equity), no login needed.
  • Open job feeds - Remote OK, Jobicy and Working Nomads (remote jobs), Arbeitnow (Germany and Europe) and Y Combinator's startup job board (with salary, equity and YC batch). Every job links back to its original page.
  • Search boards - search by keyword, location, and filters across thousands of companies.

Every posting comes back in the same shape no matter where it came from, enriched with a work-mode (remote / hybrid / on-site), a seniority level, and a parsed salary - so results from Greenhouse, LinkedIn, and Workday all line up in one table.

Why this harvester

  • Fast. A company's whole board typically comes back in about a second - 200 jobs in under 2 seconds on the platform.
  • Costs almost nothing to run. Platform usage for a typical run is a fraction of a cent. You pay for results, not machine time.
  • Starts instantly. A tiny container means runs begin in seconds, and the always-on API mode answers with no start-up wait at all.
  • Handles rate limits for you. When a board says "slow down" (HTTP 429) the Actor waits exactly as long as asked and carries on; server errors, timeouts and dropped downloads are retried automatically, and request speed adapts per site.
  • Never loses or double-bills work. Results are saved as each source finishes. If the platform moves your run to another server it resumes where it stopped without charging twice, and it stops cleanly at your maximum charge, keeping everything collected so far.
  • One clean format for every board. Structured location with ISO country code, remote/hybrid/on-site (only when the posting says so), employment type, seniority, experience, job function, skills and salary annualized for comparison - identical columns whether a job came from Greenhouse, Workday or LinkedIn.
  • 13 job-board systems. Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Rippling, BambooHR, Pinpoint, Breezy, Recruitee, Personio and Teamtailor - more than any other career-site scraper on the Store.
  • Simple setup. Paste career-page links or company names and press Start. No API keys or logins for any of the "works out of the box" boards.

Only need one board? There's a focused, simpler Actor for each: Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Recruitee, Personio, Teamtailor, LinkedIn, Himalayas and AI training jobs (Mercor, micro1, Turing).

Supported sources

Works out of the box - just add the source:

SourceYou provide
Any company on Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Rippling, BambooHR, Pinpoint, Breezy, Recruitee, Personio, TeamtailorIts careers page URL (own site or job board) - or just the company name
The company directory (500+ boards)The systems to scan, plus your title / location / country filters
Mercor, micro1, Turing, HimalayasNothing - optionally a search query
Remote OK, Jobicy, Working Nomads, Arbeitnow, Y CombinatorNothing - optionally a search query
LinkedInSearch query (+ optional location, date, remote)

Open with your own access (see More boards with your own access):

Naukri, Monster and deeper LinkedIn results sit behind logins and anti-bot protection. Bring your own session or access key and this Actor will collect them for you.

Naukri without a login: use our Naukri Jobs Scraper. It reads Naukri like a visitor in a real browser and returns the same standardized job records, with the full description, salary in rupees, experience range and company rating. Likewise Indeed Jobs Scraper and Glassdoor Jobs Scraper for those boards.

Input

Quickest start: paste careers pages into careerPageUrls (a company's own site works too) or names into companyNames - the job board is found for you:

{ "careerPageUrls": ["https://www.figma.com/careers", "https://jobs.lever.co/spotify"], "companyNames": ["Datadog", "Ramp"] }

No company list? Scan the company directory and filter:

{ "directoryAts": ["greenhouse", "ashby", "workday"], "directoryMaxBoards": 300, "titleIncludes": ["data engineer"], "countries": ["US", "CA"] }

For searches, marketplaces, and per-source options, provide a sources array - each entry names a platform and its parameters:

PlatformTypeParameters
greenhouse, lever, ashby, smartrecruiters, workable, rippling, bamboohr, pinpoint, breezy, recruitee, personio, teamtailorCompanycompany (e.g. stripe for boards.greenhouse.io/stripe, acme for acme.bamboohr.com)
workdayCompanyboardUrl (careers page, e.g. https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite), optional query
mercor, micro1, turing, himalayasMarketplaceoptional query, maxPages
remoteok, jobicy, workingnomads, arbeitnow, ycombinatorOpen feedoptional query
linkedinSearchquery, plus optional location, datePosted (day/week/month), remote, maxPages
dice, builtin, wellfoundSearchquery, optional location (Wellfound: a city), remote
naukri, monsterSearch (your access)query, optional location, experience, plus sessionCookies / headers
FieldTypeDefaultDescription
careerPageUrlsarray-Career-page links (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Workday, Personio, Teamtailor); board auto-detected.
sourcesarray-Boards, marketplaces and searches with their options. Give this and/or careerPageUrls.
maxItemsinteger200Maximum total postings across all sources.
maxItemsPerSourceinteger-Optional cap per source, so every source gets its share.
enrichbooleantrueAdd work-mode, seniority, and parsed salary.
dedupebooleantrueDrop duplicate postings.
includeDetailsbooleanfalseOpen each job's own page for extra fields where lists are thin (LinkedIn: full description, level, employment type, applicants). Only for jobs that pass your filters.
titleIncludesarray-Keep jobs whose title contains any of these words.
titleExcludesarray-Drop jobs whose title contains any of these words.
locationIncludesarray-Keep jobs whose location contains any of these (e.g. Berlin, Remote).
countriesarray-Keep jobs in these countries: ISO codes (US, GB) or names.
companyNamesarray-Company names, looked up on every supported job-board system.
directoryAtsarray-Scan the company directory on these systems.
directoryMaxBoardsinteger200Directory boards scanned per run.
directoryMinJobsinteger1Skip directory boards with fewer open jobs.
postedWithinDaysinteger-Keep jobs posted in the last N days (undated jobs are kept).
remoteOnlybooleanfalseKeep only remote jobs.
workModesarray-Keep only remote, hybrid and/or onsite jobs.
employmentTypesarray-Keep only full_time, part_time, contract, internship, temporary, freelance.
senioritiesarray-Keep only intern, junior, mid, senior, lead, principal, director, executive.
jobFunctionsarray-Keep only functions like engineering, data, product, sales, marketing.
descriptionIncludesarray-Keep jobs whose title, description or skills mention any of these (e.g. Kubernetes).
companyExcludesarray-Drop companies whose name contains any of these.
minAnnualSalaryinteger-Minimum yearly pay (posting's currency); unpublished pay is kept unless onlyWithSalary.
onlyWithSalarybooleanfalseKeep only jobs that publish pay.
visaSponsorshipOnlybooleanfalseKeep only jobs offering visa sponsorship.
onlyNewbooleanfalseEmit only jobs no earlier run has delivered - for scheduled monitoring.
monitorNamestringautoName of the onlyNew history (defaults to one per set of sources).
includeReferralLinksbooleantrueAdd a referralUrl where available (see below).
proxyConfigurationobjectoffOptional; Apify Proxy or your own proxy URLs (rotated). Recommended for the search boards.

Filters apply the same way to every board, after normalization - so "senior remote engineering roles from the last week" means the same thing on Greenhouse, Workday, and LinkedIn.

Example input:

{
"sources": [
{ "platform": "greenhouse", "company": "stripe" },
{ "platform": "lever", "company": "spotify" },
{ "platform": "workday", "boardUrl": "https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite", "query": "engineer" },
{ "platform": "linkedin", "query": "backend engineer", "location": "remote", "datePosted": "week" }
],
"maxItems": 500,
"titleIncludes": ["engineer", "developer"],
"titleExcludes": ["intern"],
"postedWithinDays": 14
}

Monitor new jobs on a schedule

Turn on onlyNew and schedule the Actor (e.g. daily). Each run delivers only postings that earlier runs haven't - you're charged only for new jobs. Use a different monitorName per monitor if you run several. Pair it with an Apify integration (Slack, email, Google Sheets, webhooks) to get new jobs delivered automatically.

Changes only goes one step further: each run returns new jobs, jobs whose salary, location, title or work mode changed (with the old and new values), and jobs that were taken down (changeType: "removed"), a ready signal of what a company stopped hiring for. Unchanged jobs are free.

Use it as an instant API

The Actor also runs in Standby mode: an always-ready web endpoint that returns jobs directly in the response - ideal for apps, spreadsheets, and AI agents. Find the endpoint URL on the Actor's Standby tab and call it with your Apify API token:

curl "https://<standby-url>/?platform=greenhouse&company=stripe&titleIncludes=engineer&maxItems=20" \
-H "Authorization: Bearer <YOUR_APIFY_TOKEN>"

Pass any input field as a query parameter (a single source can be given flat, as above), or POST the full input as JSON. The response looks like {"success": true, "count": 20, "items": [ ... ]}. Pricing is the same per job.

Output

Every job comes back in the same shape, whichever board it came from. Board-specific labels are normalized (e.g. FullTime, fulltime_permanent and Full-time all become full_time) and the original is kept in a ...Raw field.

FieldDescription
titleJob title
company / companySlugCompany name, and its board handle for career-page sources
companyLogoCompany logo (when available)
location / locationsLocation as listed, and all listed locations
city / region / country / countryCodeStructured location (ISO country code)
workMode / remoteremote, hybrid or onsite - only when the posting says so
employmentTypefull_time, part_time, contract, internship, temporary, freelance
seniorityintern, junior, mid, senior, lead, principal, director, executive
yearsExperienceMin / yearsExperienceMaxRequired experience, when stated
jobFunctionEngineering, data, AI training, product, design, sales, marketing, ...
skillsSkills listed by the board plus those named in the posting
salary{min, max, currency, period, annualMin, annualMax} - annualized for easy comparison
salaryTextPay as the board shows it
educationLevelHighest degree asked for (bachelor, master, doctorate, ...)
visaSponsorshiptrue / false when the posting says so
department / team / industryOrganization details (when available)
summary / descriptionShort summary and full description
qualificationsRequirements section (some boards, with includeDetails)
jobId / requisitionIdThe posting's identifiers
url / applyUrlPosting and apply links
postedAt / postedAtIso / postedDaysAgoPosting date as listed, normalized, and its age in days
hoursPerWeek / applicantsHours and applicant count (when available)
referralReward / referralUrlReferral details (see below)
source / scrapedAtBoard and collection time

The run's summary (OUTPUT) also reports field coverage - the share of results carrying each field - so you can see data completeness at a glance.

Several talent marketplaces reward members who refer candidates. Where the Actor's maintainer has a referral link for a board, jobs from that board carry an extra referralUrl field - applying through it may credit the maintainer, at no cost to the candidate. The posting itself, url, and applyUrl are never changed, and you can leave the field out entirely with includeReferralLinks: false.

More boards with your own access

Some boards - Naukri, Monster, and LinkedIn beyond public search - guard their listings behind a login or anti-bot protection. You can open them by letting the Actor use your own access. Add either of these to any source:

Using your own sign-in - for boards that only show jobs to signed-in users, pass your own session as sessionCookies. The Actor collects jobs through your authenticated session, exactly as you'd see them.

{ "platform": "naukri", "query": "rust developer", "location": "bangalore",
"sessionCookies": "<what you copied, see below>" }

How to copy it (Chrome, Edge or Firefox):

  1. Sign in to the board in your browser.
  2. Press F12 (Mac: Cmd+Option+I) and open the Network tab.
  3. Reload the page (F5) and click the first request in the list.
  4. Right-click it and choose Copy > Copy as cURL (bash) (Firefox: Copy Value > Copy as cURL).
  5. Paste the whole text as the value of sessionCookies (for one board: {"naukri": "<paste>"} in the secret field, or sessionCookies on a source).

The plain Cookie header (name=value; name2=value2), the JSON export of a cookie extension and a cookies.txt file work too. Cookies for other websites are ignored.

It is a password: use your own account, ideally a separate one. It is stored encrypted, never appears in your results or logs, and signing out in your browser ends that session. We never ask for your password or sign in for you. If what you pasted is a web address, empty, or expired, the run stops at the start and says which, at no cost. The board's terms apply to your account.

Your access key - if you have an API key for the board, or a key from a web-unlock provider, pass it under headers and it's applied to every request for that source.

{ "platform": "monster", "query": "data engineer",
"headers": { "x-api-key": "your-key" } }

Your credentials are used only for your own run to fetch data you already have access to.

Pricing

Pay per result: you're charged per job posting delivered - nothing for filtered-out, duplicate, or (with onlyNew) already-seen jobs. See the Pricing tab for the current rate. Set a maximum charge on the run to cap spend.

On Apify's free plan each run returns up to 500 jobs - plenty to try everything. Any paid Apify plan removes the limit.

Tips

  • Start with a small maxItems to preview results, then scale up.
  • Set a maximum charge on the run to cap spend - the Actor stops cleanly at your limit and keeps everything collected so far.
  • Results are saved as each source finishes, so a long run that times out still keeps its data.
  • For the search boards, enabling a proxy improves reliability.
  • Company sources need the company name exactly as it appears in its jobs-page address.
  • If a run is interrupted by the platform, it picks up where it left off without charging twice.

Support & requests

  • Report a problem - use the Issues tab on this Actor's page. Include the source you ran and what you expected, and it's much quicker to fix.
  • Request a job board or platform - open an issue with a link to the board you want supported. New platforms are prioritised by how often they're asked for, so requests genuinely decide what gets added next.
  • Request a field or filter - if a posting has data you need that isn't in the output yet, say which board and which field and it can usually be mapped.

Feedback is actively monitored - if something's broken or missing, please say so.