Data & API

As of 2026-10-31, ChainJobs publishes 3,540 live crypto, web3 & blockchain roles from 198 companies as open data, regenerated daily. License: CC BY 4.0 — attribution required (credit “ChainJobs” with a link to chainjobs.io).

Endpoints

URLWhat it is
GET https://chainjobs.io/api/jobs.jsonDocumented machine file for citation and research: every live role with the employer apply URL and the daily last-confirmed timestamp, plus generated_at, licence, attribution, sources and counts. Also reachable at /api/jobs.
GET https://chainjobs.io/jobs-data.jsonThe compact index the site's own filters and the widget read. Same job set, interned for size.
GET https://chainjobs.io/feed.xmlRSS 2.0, newest 50 roles; per-category and per-tag feeds on the feeds index.

All three are static files with Access-Control-Allow-Origin: *, so they can be fetched cross-origin. No key, no rate-limit sign-up.

Source repo + examples: github.com/Mirkie/crypto-jobs-data

/api/jobs.json

Top level: generated_at (ISO 8601 UTC build time), license, license_name, attribution, documentation, sources (one entry per applicant-tracking system: companies and jobs from it), counts (jobs, companies, remote, with_salary), categories (code → label) and jobs. Each job object:

KeyMeaning
idsame stable id as jobs-data.json
titlejob title
companycompany name
company_sitethe company's own domain, as an https URL
apply_urlthe employer's own apply page (its applicant-tracking system)
chainjobs_urlthe ChainJobs listing page
locationlocation as the employer states it
remotetrue when the employer lists the role as remote
categorycategory code (see top-level categories)
date_postedposting date, YYYY-MM-DD
first_seenwhen ChainJobs first saw the role at the source (ISO 8601, UTC)
last_confirmedthe last daily sync at which the role was still open on the employer's own careers page (ISO 8601, UTC)
salary{min, max, currency, period} — only when the employer publishes a band; currency is null when the posting shows a bare "$" outside the US and names no currency

/jobs-data.json

Top level: updated (ISO date), cats / tags / regions / cities / ecos (code → label maps), comps (array of [company name, website domain]), locs (array of location strings) and jobs (array). Each job object:

KeyMeaning
idstable listing id (12 hex chars)
tjob title
cindex into comps — the company is comps[c] = [name, website domain]
lindex into locs — the location string is locs[l]
rremote: 1 if the employer lists the role as remote, else 0
kcategory code (see cats)
dposting date, YYYY-MM-DD
upath to the ChainJobs listing — present only when the title is non-ASCII; otherwise build it as /jobs/{id}-{slug}/ (slug = title lowercased, each run of non-[a-z0-9] → "-", trimmed, max 60 chars)
tgskill/role tag codes (see tags) — optional
eecosystem codes of the company (see ecos) — optional
rgregion code (see regions) — optional
ctcity code (see cities) — optional
snseniority: senior or entry — optional
nw1 = first seen in the last 48 hours — optional
nd1 = first seen in the last 7 days — optional
fsdate ChainJobs first saw the role, YYYY-MM-DD — only for roles first seen in the last 30 days — optional
f1 = featured placement — optional
syformatted salary band, employer-stated only — optional
sksort key: annualised USD maximum of the band, USD bands only — optional

Company and location are interned to keep the file small: read them as comps[job.c] and locs[job.l]. Optional keys are omitted, not null, when they don't apply.

Where the data comes from

Every role is read once a day from the hiring company's own applicant-tracking system — Greenhouse, Lever, Ashby and 7 other applicant-tracking systems (companies per system: Ashby 84 · Greenhouse 61 · Lever 39 · Workable 5 · BambooHR 3 · Recruitee 2 · Workday 1 · Teamtailor 1 · Gem 1 · Rippling 1). Roles leave the files when they close at the source. Salary appears only when the employer publishes a band; nothing is estimated. Full methodology: about the data.

Terms

Data is provided as-is under CC BY 4.0. Attribution is required: name “ChainJobs” and link to chainjobs.io wherever you surface it; please keep each listing's link to the employer's application page. Cite as ChainJobs, chainjobs.io, data as of 2026-10-31. Questions or corrections: the contact form.