Build1 distinct publisher3 min readUpdated
A dev.to census of 1,551,977 job postings across 12 open ATS endpoints found BambooHR's isRemote flag empty in all 50,616 it saw. Having a field and having data in it are separate claims.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
A missing key throws an error somewhere you can see it. A key that is present and always empty returns cleanly and gets believed. BambooHR's `isRemote` is the second kind: the field ships in the payload, and across 50,616 postings drawn from 9,711 live BambooHR boards the census found it set exactly zero times [3]. That works out to roughly 5.2 postings per board [19], so this is not a few employers leaving a toggle alone. It is every employer on the platform, and the client that reads the field inherits a confident false negative with no error attached [3].
The thresholds the writeup uses are worth copying into your own audit. "Yes" means a fill rate of 99.5% or better, and "no" means the endpoint carries no such field at all, as opposed to the field being blank [23]. Those are different failures, and only one of them shows up in a schema dump.
Compensation is where shape beats rate. Four of the twelve carry it, which leaves eight with nothing to read [5][21]. Among the four, Pinpoint and Recruitee return minimum, maximum, currency and period as separate values, while Breezy and Ashby return prose, Ashby's with equity possibly folded into the top number [7][8]. The structured half has its own traps: Recruitee keeps the salary object populated with zeros when the employer skipped the field, so a naive reader publishes "0 USD hour" as a pay range [9], and European employers quote monthly, where normalising by twelve is a guess about holiday allowance and 13th-month pay [10].
The date arithmetic is small and unforgiving. Workday's `postedOn` converts "Posted Today" and "Posted 5 Days Ago" but not "30+" [12], which leaves 21.8% of its rows holding a phrase that cannot become a timestamp without invention [20]. Add the four platforms that publish no posting date at all [11] and the undated share is a property of the sources, not a gap you can backfill. On work arrangement, seven of the twelve give you nothing to read, so you are matching location strings, which misses "Anywhere" and fires happily on "Remote Support Engineer, London office" [14].
Collection has hazards before field measurement even starts. Workday's `total` saturates at 2000 while the API keeps serving rows past the end of the list, so the obvious loop, probing offsets until a page comes back empty, does not terminate [18]. Breezy answers 403 rather than 404 for a subdomain with no board [17]: read that as rate limiting and you back off from dead subdomains permanently, read it as fatal and you drop live boards [17].
The useful artefact here is not the endpoint list, which plenty of posts already publish [1]. It is a fill rate per field per platform, measured on live boards, with the measurement date attached. Put the rate next to the field name in your own schema and the silent false negative becomes a documented gap, which is the only version a downstream consumer can plan around.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
The author read every live board found on each of the twelve platforms, between 17,000 and 179,000 postings per platform, 1,551,977 postings in total, and counted which fields came back populated.
Twelve applicant tracking systems publish an open JSON endpoint that their customers' careers pages read, requiring no key, no login and no HTML parsing; plenty of articles already list these endpoints.
BambooHR's public job endpoint has an isRemote field; across 50,616 postings from 9,711 live BambooHR boards, not one had it set. A client that trusts the field will conclude no company using BambooHR is hiring remotely, with no error message to indicate the mistake.
Title, company, location and an apply URL come back on all twelve platforms.
Only four of the twelve platforms publish compensation, and none of the four fills it most of the time.
Breezy has the highest compensation fill rate of the four, at 45.7%, and returns it as a single string such as "$28 - $100 / hour".
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Large specific census, single unreplicated source
The claims are unusually concrete for this genre: named platforms, named fields, exact counts (50,616 postings, 9,711 boards, 1,551,977 total) and stated table semantics (yes = 99.5%+ fill, no = field absent). Mechanism-level claims such as SmartRecruiters' 100-row cap, Breezy's 403 and Workday's saturating total are directly checkable against public endpoints by any reader, which raises credibility. What holds the score down is that all of it comes from one self-reported measurement with no published dataset, code, collection window or per-platform table in the supplied text, and no independent corroboration in the cluster.
Endpoints widely live, findings not yet taken up
There is real deployment evidence for the subject matter: thousands of production customer boards across BambooHR (9,711), Greenhouse (2,996), Lever (1,917) and Recruitee (1,126) serve these open endpoints today, so the data-quality gaps described affect live systems. What is absent is any evidence of adoption of the author's work itself — no third-party users, no published schema or library that others consume, no citations or vendor acknowledgement in the supplied material — so the score reflects the endpoints' usage rather than uptake of the census.
Framing slightly under-sells the measurement
The post consistently narrows rather than inflates its claims: it separates 'has the field' from 'the field has data', refuses to parse ambiguous compensation strings instead of asserting normalised salaries, declines to invent timestamps for 'Posted 30+ Days Ago', flags Lever's remote share as inferred, and attributes cross-platform remote spreads to customer mix rather than the labour market. It also volunteers its own errors (720,000 phantom postings, 1,644 wrongly discarded Workable boards). Set against a 1.55M-posting census, the presentation is modestly understated. The small residual overstatement risk is the unverifiable 'every number is the full population' assertion and the absence of a stated measurement window.
Practitioner promoting own pipeline, no vendor stake
The author writes from inside a job-data project they are building — repeated first-person schema decisions ('I do not parse them', 'the schema says so', 'my first pass') indicate a product or pipeline whose design the post implicitly validates, and a developer-platform post also carries reputational upside. Against that, the supplied text contains no product link, pricing, sponsorship, vendor affiliation or funding disclosure, and the findings are unflattering to several named ATS vendors rather than favourable to any, so the incentive pressure reads as mild self-promotion rather than a commercial conflict.
Mechanisms trustworthy, aggregates unverified
Confidence is split by claim type. The endpoint-behaviour claims — 100-row caps, 403 versus 404, saturating totals, prose dates, zeroed salary objects, structured versus string compensation — are specific, falsifiable and cheap for a reader to verify, so they warrant fairly high confidence. The aggregate percentages and the 1,551,977 total depend entirely on one author's unpublished crawl with no stated date or methodology artefacts, and fill rates drift as employers and vendors change behaviour, so those figures should be treated as directional. With a single publisher and no corroborating source in the cluster, the overall rating sits just above the midpoint.
build
Four of six steps can bin a resume before a human sees it, and the worst is an image-only PDF1 distinct publisher
build
A 200 OK that means zero: Workday's job API empties out above limit 201 distinct publisher
build
Three manual interventions in a month, and every guard was working as designed1 distinct publisher
build
Six MariaDB versions, one real difference: the only reason to leave 10.6 is the July 2026 clock1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 23, 2026