Skip to content

0.9.0: an unpaid role can say so

Choose a tag to compare

@ralyodio ralyodio released this 09 Sep 12:05
f2d36f6

An unpaid role can say so

There was no way to post an unpaid internship.

Leaving the salary range empty already meant "the employer did not fill this in", so an honest unpaid listing was indistinguishable from a careless one. Putting 0 in the range was worse: it sorts and filters as a paid job worth nothing.

salary.unpaid is a boolean for that reason. When it is set the range stays null, so every salary filter and the salary sort keep excluding these listings with no special case anywhere, and the page prints Unpaid instead of nothing.

Unpaid wins over any number that arrives with it. A form can post a stale range alongside a ticked box, and "unpaid, $40k - $60k a year" is not a listing anybody can act on.

Posting one

Surface How
/post a checkbox in the Pay fieldset
REST salaryUnpaid: true
CLI agenticjobs post --salary-unpaid
Job file front matter salary_unpaid: true

schema.org has no vocabulary for unpaid work, so baseSalary is absent, which is what it already did for a null range. docs/openjob.md documents the field.

Also in this release

CI could not fail on a failing test. The step ran node --test | tee output.txt under a shell without pipefail, so the exit code came from tee, and the script ended in exit 0. Fixed in #39 by @KennerMiner. Every check on this release is the first one that could actually have gone red.

Full changelog: v0.8.0...v0.9.0