Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.

Anthropic Singapore jobs watcher

Daily cron val that watches Anthropic's Singapore office openings and emails the val owner whenever a role is added or removed.

How it works

Anthropic's careers page is a client-rendered app backed by Greenhouse, so instead of scraping HTML we query Greenhouse's public job-board API:

https://boards-api.greenhouse.io/v1/boards/anthropic/offices

singapore_jobs.cron.ts:

  1. Fetches all offices, picks office 4063231008 (Singapore).
  2. Flattens its departments into a list of { id, title, department, location, url }.
  3. Loads the previous list from blob storage (anthropic_sg_jobs_v1).
  4. Diffs by job id:
    • First run → saves a baseline and sends a one-time "now watching" email.
    • Changes → saves the new list and emails the new/closed roles.
    • No changes → does nothing.

Email goes to the val owner via std/email (no recipient config needed).

Setup

  1. Push to Val Town: vt push
  2. In the Val Town UI, set the cron schedule to run daily (e.g. 0 9 * * * for 9am UTC).
  3. Use Run in the UI to trigger it once — the first run saves the baseline and sends a confirmation email.

Customizing

  • Different office: change OFFICE_ID / OFFICE_NAME (find IDs via the /offices API above).
  • Reset the baseline: delete the blob key anthropic_sg_jobs_v1; the next run re-seeds it.