hireping
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.
Viewing readonly version of main branch: v41View latest version
Tracks new AI jobs.
HirePing is a small Val Town app that watches:
- Anthropic jobs from Greenhouse's public Job Board API
- OpenAI jobs from Ashby's public postings API
On each run it:
- fetches the latest job listings
- compares them to the current snapshot
- detects new jobs and archived jobs
- records job observations
- stores full payloads only for newly discovered jobs
- emails a summary when there are new or archived jobs
src/cron.ts: main app flow, diffing, logging, and email sendingsrc/anthropic/source.ts: Anthropic source backed by Greenhouse's public APIsrc/openai/source.ts: OpenAI source backed by Ashby's public APIsrc/db.ts: SQLite schema and writessrc/jobs.ts: shared job type and snapshot helperssrc/test/app_test.ts: local end-to-end app test
Current lightweight snapshot of active jobs.
url- primary keysourcelast_seen_at
This table no longer stores full payload blobs.
Full payloads for newly discovered jobs only.
url- primary keysourceraw_jsoncaptured_at
Jobs that disappeared from the latest snapshot.
url- primary keyraw_jsonarchived_at
Append-only history of jobs seen on each run.
urlseen_at
When there are changes, HirePing sends an email with:
- new jobs
- archived jobs
The current subject format is:
New AI Jobs: <newCount> | Archived: <archivedCount>
- Anthropic uses
https://boards-api.greenhouse.io/v1/boards/anthropic/jobs?content=true - OpenAI uses Ashby's public posting API behind
https://openai.com/careers/search/ jobsis intentionally small so snapshot syncs stay cheap- full payloads are only stored for
newJobs, and those writes are batched in groups of 10 - the app logs each major run step to make production failures easier to localize
Local verification:
deno task check deno test -A src/test/app_test.ts
