Files
santifer--career-ops/docs/SUPPORTED_JOB_BOARDS.md
T
wehub-resource-sync d083df1fdb
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 2s
Web CI / web typecheck + build (push) Failing after 1s
Release Please / release-please (push) Failing after 1s
CodeQL Analysis / Analyze (go) (push) Failing after 16s
chore: import upstream snapshot with attribution
2026-07-13 12:02:43 +08:00

11 KiB

Supported Job Boards

Career-Ops scans job sources through provider modules in providers/. Each non-helper *.mjs file maps to one supported source. Files prefixed with _ are shared helpers and are not loaded as providers.

Board Type (API / RSS / parser) Notes
4 Day Week API Reads the public https://4dayweek.io/api/jobs JSON feed (4-day-week / reduced-hours roles). Configure with provider: 4dayweek; paginates ?page=N up to max_pages (default 3), drops expired postings, then scanner filters apply.
Amazon / AWS API Auto-detects amazon.jobs careers URLs and queries the public amazon.jobs search API. The board is one global endpoint, so narrow it with an amazon: config block (loc_query, base_query, category, …) whose keys pass through as query params. Configure with provider: amazon.
Arbeitnow API Reads the public https://www.arbeitnow.com/api/job-board-api JSON feed (EU/DACH-heavy, newest-first). Configure with provider: arbeitnow; paginates ?page=N up to max_pages (default 3), then scanner filters apply.
Arbeitsagentur API Uses the public Bundesagentur fuer Arbeit Jobsuche REST API. Configure with provider: arbeitsagentur; title, location, and dedup filters run after fetch.
Ashby API Auto-detects https://jobs.ashbyhq.com/<slug> boards and uses Ashby's public posting API.
Avature Parser Auto-detects <tenant>.avature.net career sites and parses the public server-rendered job list (/careers/SearchJobs?jobOffset=N, 6 results/page). A branded custom domain that proxies Avature needs provider: avature + api: pointing at the Avature origin. Paginates up to max_pages (default 50).
BambooHR API Auto-detects <tenant>.bamboohr.com careers pages, reads /careers/list, and follows public detail endpoints for job URLs.
BeeSite API Auto-detects <tenant>.app.beesite.de boards — the milch & zucker search backend behind branded portals like jobs.mercedes-benz.com — and reads their public no-auth JSON search endpoint. Point careers_url/api at the beesite host (or set provider: beesite).
Breezy HR API Auto-detects <tenant>.breezy.hr boards and reads the public JSON position feed.
Comeet / Spark Hire Recruit API Uses Comeet's public careers API. Provide the full API URL with api: or careers_url; it cannot derive the endpoint from a branded careers page.
Cornerstone OnDemand API Reads hosted CSOD career sites (<tenant>.csod.com/ux/ats/careersite/...). The search API wants a bearer token, but the career-site home page embeds an anonymous JWT (no login), so each fetch bootstraps that token then pages the public search API. Point careers_url at the csod.com URL (or set provider: csod).
Dassault Systèmes Parser Single-company provider for www.3ds.com/careers/jobs via the public Exalead card-search API (returns Exalead XML, not JSON). Global to 3ds.com, so no per-tenant config. Select with provider: dassault.
Deutsche Bahn Parser Single-company provider for DB's db.jobs careers portal (an Avature front; jobs.deutschebahngroup.careers 302-redirects into it) via its server-rendered search endpoint, paginated over plain HTTP. Select with provider: deutschebahn.
EchoJobs API Reads the board-wide https://echojobs.io/api/jobs JSON feed (tech jobs aggregated from company ATS boards). Configure with provider: echojobs; paginates ?page=N up to max_pages (default 3), then scanner filters apply. Job URLs point at the original ATS posting.
Get on Board API Reads the public https://www.getonbrd.com/api/v0/categories/programming/jobs JSON:API feed (remote/LatAm-heavy tech roles). Configure with provider: getonbrd; paginates ?page=N up to max_pages (default 3) over the programming category (expand[]=company), then scanner filters apply.
Glints API Uses Glints' public GraphQL job search endpoint. Configure with provider: glints; query and filters can be set on the portal entry.
Greenhouse API Handles explicit api: URLs and auto-detects public Greenhouse board URLs for the boards API.
Heckler & Koch Parser Single-company provider for heckler-koch.com/…/Stellenangebote — a Nuxt page that server-renders every posting in one bare-HTTP GET (small board); job links point at the karriere.heckler-koch.com apply backend. Select with provider: hecklerkoch.
HigherEdJobs RSS Reads the public https://www.higheredjobs.com/rss/categoryFeed.cfm?catID={catID} feed and parses it in-process. Configure with provider: higheredjobs and optional cat_id (default 68 = Higher Education). Not auto-detected — requires explicit provider: config.
IBM Careers API Posts to IBM's public careers search API and supports optional IBM facet filters in the portal entry.
JibeApply API Auto-detects https://<slug>.jibeapply.com/jobs careers URLs (rewriting /jobs to the public /api/jobs endpoint); paginates ?page=N up to max_pages (default 50), warning if a tenant's postings exceed the cap. Also supports branded/iCIMS-hosted sites at their own /jobs path via an explicit provider: jibeapply + api: URL.
Jobstreet / SEEK API Uses the public SEEK chalice-search JSON API for Jobstreet and SEEK sites. Configure explicitly with provider: jobstreet.
JustJoin.it API Auto-detects justjoin.it/job-offers/... URLs and reads the public justjoin.it/api/candidate-api/offers API (Polish/EU tech board); paginates up to max_pages (default 50).
Landing.jobs API Reads the board-wide https://landing.jobs/api/v1/jobs JSON feed (tech, Europe). Configure with provider: landingjobs; company is derived from the posting URL slug.
LaraJobs RSS Reads the board-wide https://larajobs.com/feed RSS feed (Laravel / PHP jobs) and parses it in-process. Configure with provider: larajobs; company and location come from the feed's job: namespace.
Lever API Auto-detects https://jobs.(eu.)?lever.co/<slug> boards and uses Lever's public postings endpoint.
Local parser Parser Runs an in-repo parser command from portals.yml. Use this for stable SSR or HTML pages that need a custom extractor.
No Fluff Jobs API Auto-detects nofluffjobs.com and reads its public /api/search/posting API (Polish/EU tech board); paginates up to max_pages (default 5).
NoDesk RSS Reads the public https://nodesk.co/remote-jobs/index.xml feed and parses it in-process. Configure with provider: nodesk.
Personio RSS Auto-detects <slug>.jobs.personio.de or .com hosts and parses the public XML jobs feed.
Phenom People API Reads Phenom "CareerConnect" career sites (e.g. careers.allianz.com) via the public no-auth POST {origin}/widgets JSON endpoint on the branded host. Point careers_url/api at the Phenom host (or set provider: phenom).
Pinpoint API Auto-detects <slug>.pinpointhq.com boards and reads the public zero-auth /postings.json per-tenant feed.
Radancy Parser Reads Radancy (TalentBrew) career sites (e.g. careers.munichre.com) via the server-rendered /{lang}/search-jobs?p={N} results page (1-based pagination). Select with provider: radancy.
Recruitee API Auto-detects <slug>.recruitee.com boards and uses the public per-tenant offers API.
RemoteOK API Reads the board-wide https://remoteok.com/api JSON feed; scanner filters decide which rows are relevant.
Remotive API Reads the board-wide https://remotive.com/api/remote-jobs JSON feed, then applies local scanner filters.
Rheinmetall Parser Single-company provider for www.rheinmetall.com/<lang>/career/vacancies — the Nuxt page server-renders its job cards, so plain ?page=N pagination works over bare HTTP (no XHR API is exposed). Select with provider: rheinmetall.
Rippling API Auto-detects https://ats.rippling.com/<slug>/jobs careers pages and reads the public zero-auth board API (api.rippling.com/platform/api/ats/v1/board/<slug>/jobs).
SAP SuccessFactors Parser Reads SF Recruiting Marketing (RMK) career sites — branded boards like jobs.sap.com, jobs.zf.com, jobs.schaeffler.com — via the public no-auth /tile-search-results/?startrow=N HTML fragment. Branded hosts carry no "successfactors" string, so select with provider: successfactors + api: the board origin.
SmartRecruiters API Auto-detects SmartRecruiters careers URLs or uses provider: smartrecruiters for branded custom domains.
softgarden Parser Reads the hosted softgarden job widgets at <tenant>.softgarden.io/<lang>/widgets/jobs — a server-rendered page listing every posting (no auth, no JS, no pagination). Select with provider: softgarden.
SolidJobs API Auto-detects https://solid.jobs/public-api/offers/<division> and reads the public offers API.
Teamtailor RSS Auto-detects <slug>.teamtailor.com career sites and reads the public zero-auth /jobs.rss per-tenant feed. For a branded careers domain, set provider: teamtailor and it reads /jobs.rss off that host. Job links may point at a branded custom domain; location comes from the tt: city/country tags, falling back to Remote when a posting carries no tt:city/tt:country but its remoteStatus is remote (fully or temporary).
Tencent Careers API Auto-detects https://careers.tencent.com URLs (host-matched, HTTPS-only) and reads the public zero-auth Query JSON API (zh-CN listings with title, BG, category, JD text, last-update date). Each keywords: entry is queried server-side separately and results are deduped; omit keywords: to pull the whole board. Paginates up to max_pages per keyword (default 20, 100 posts/page).
The Hub API Reads the board-wide https://thehub.io/api/jobs JSON feed (Nordic/EU startups). Configure with provider: thehub; paginates ?page=N up to max_pages (default 3), then scanner filters apply.
TKMS (thyssenkrupp Marine Systems) API Single-employer provider for jobs.tkmsgroup.com via the public POST /api/filter/query endpoint; the subclient and locale come from a config block. Select with provider: tkms.
We Work Remotely RSS Reads the public https://weworkremotely.com/remote-jobs.rss feed and parses it in-process.
Workable Parser Auto-detects https://apply.workable.com/<slug> and parses Workable's public markdown jobs feed.
Workday API Auto-detects <tenant>.<instance>.myworkdayjobs.com[/<locale>]/<site> careers URLs and posts to the public CXS jobs endpoint; paginates via offset up to max_pages (default 100), warning if a tenant's postings exceed the cap.
Working Nomads API Reads the board-wide https://www.workingnomads.com/api/exposed_jobs/ JSON feed, then applies scanner filters.

When adding a new provider, add a new non-helper module under providers/ and update this table in the same PR.