AIS Hiring Snapshot

Method and limits

Where the data comes from

Roles come straight from each organization's hiring system: public applicant-tracking feeds (Greenhouse, Lever, Ashby) where they exist, and a hand-kept supplement for orgs that publish no feed we can read. Every role is tagged with how it was collected (api or manual), so the two never blur together. This snapshot (2026-08-10) holds 75 concrete vacancies, 65 from feeds and 10 captured by hand. Four orgs with no usable machine-readable feed (GovAI, Apart, Redwood, Palisade) were read off their careers pages in a browser that runs the page's scripts.

Hiring systems move, and a feed that has gone quiet looks exactly like an org that has stopped hiring, so each collection is checked against the previous one for any org that drops to zero. That check earned its keep on 2026-07-26: the Center for AI Safety's Lever feed still answered normally but had gone empty, because the org had moved to Greenhouse some time after the 2026-07-20 snapshot, which still read seven roles from Lever. Their six open roles would otherwise have been recorded as none. Palisade also moved, from a Notion page to a Gusto board, and is still read by hand.

The hand-kept rows are only as fresh as the last capture. Between captures they carry forward unchanged into each scheduled snapshot, so for those four orgs a value that does not move may mean nobody has looked recently rather than that nothing has changed. The manual supplement was last re-captured on 2026-08-10.

Expressions of interest are set aside

Some listings are standing "expression of interest" or "general interest" invitations rather than posted openings. There are 12 of them in this snapshot. They are kept in the dataset but left out of the vacancy counts, since they are a way to register rather than a job to fill.

How roles are sorted

Two plain rules, both readable in classify.py:

These rules have checks in test_classify.py, each one a real posting phrasing, so a future change cannot quietly undo them. Run python test_classify.py.

What to keep in mind