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.
Daily cron val that watches Anthropic's Singapore office openings and emails the val owner whenever a role is added or removed.
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:
- Fetches all offices, picks office
4063231008(Singapore). - Flattens its departments into a list of
{ id, title, department, location, url }. - Loads the previous list from blob storage (
anthropic_sg_jobs_v1). - 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).
- Push to Val Town:
vt push - In the Val Town UI, set the cron schedule to run daily
(e.g.
0 9 * * *for 9am UTC). - Use Run in the UI to trigger it once — the first run saves the baseline and sends a confirmation email.
- Different office: change
OFFICE_ID/OFFICE_NAME(find IDs via the/officesAPI above). - Reset the baseline: delete the blob key
anthropic_sg_jobs_v1; the next run re-seeds it.