Job Monkey

Held closures and closing_since

Boards go dark for a day: a bad harvest run, a site that timed out, a board being moved. If we closed every job we could not see, you would get a closed and a reopened for thousands of jobs that never changed. So a closure is held first.

What you see

  • While a closure is held, the job is still open in the ledger and in your pages, with closing_since set to the time it was last missing. Keep such a job out of matching and search while the field is set; do not drop it yet.
  • When the job comes back, closing_since goes back to null. No event is written for the hold or the return: for you, nothing happened.
  • When it does not come back inside the hold (up to 48 hours), one closed event is written. Its at is when the closure was published; its closed_at is when the job last left its board.

In numbers

GET /v1/jobs/count answers jobs (open jobs in your cut, held ones included) and held (how many of them are held right now). The home page's "jobs live" leaves held closures out.

What to do

for job in page["jobs"]:
    upsert(job)
    if job["closing_since"]:
        hide(job["job_guid"])          # out of search and matching, still in the store
    else:
        show(job["job_guid"])

On a closed event, drop the job. On a reopened event, fetch it again by GUID (it may have changed while closed): the GUID is the same one it had before.

curl -s 'https://api.jobmonkey.ai/v1/events?event=closed,reopened&country=Canada&cursor=9600000' \
  -H 'Authorization: Bearer cb_live_XXXXXXXX'

Closed jobs are never served by the full feed: a closed GUID in POST /v1/jobs comes back in missing with status: closed and its closed_at, free.