• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
u

u

hireping

Tracks new AI jobs.
Public
Like
hireping
Home
Code
3
README.md
deno.json
main.tsx
Environment variables
Branches
1
Pull requests
Remixes
History
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.
Sign up now
Code
/
README.md
Code
/
README.md
Search
…
Viewing readonly version of main branch: v7
View latest version
README.md

anthropic-job-tracker-cron.ts

This project contains a Val Town cron job that watches the Anthropic Greenhouse job board and tracks changes over time.

What it does

anthropic-job-tracker-cron.ts:

  • Fetches all pages from https://job-boards.greenhouse.io/anthropic
  • Extracts job post URLs from the page's window.__remixContext data
  • Visits each job post page and stores the raw job payload JSON
  • Compares the latest scrape against previously stored jobs
  • Detects newly added jobs
  • Detects removed jobs and archives them
  • Records each time a job was observed
  • Emails a summary when new jobs are found

How it works

The script runs as an exported async default function, which makes it suitable for use as a Val Town scheduled job.

Its flow is:

  1. Ensure the SQLite schema exists
  2. Load previously known jobs from the jobs table
  3. Scrape the Anthropic Greenhouse board page by page
  4. Hydrate each job with its detailed page payload
  5. Compute:
    • newJobs: jobs now present that were not previously stored
    • removedJobs: jobs previously stored that no longer appear
  6. Insert observation records for all currently visible jobs
  7. Upsert removed jobs into archived_jobs
  8. Replace the current contents of jobs with the latest snapshot
  9. Send an email if any new jobs were found

Data stored

The script creates and uses three SQLite tables:

jobs

Current snapshot of active job postings.

  • url - primary key
  • raw_json - serialized job payload from the job detail page
  • last_seen_at - timestamp of the most recent sync

archived_jobs

Jobs that used to exist on the board but disappeared in a later run.

  • url - primary key
  • raw_json - last known serialized payload
  • archived_at - timestamp when the removal was detected

job_observations

Append-only history of when a job was seen.

  • url
  • seen_at

Notification behavior

When new jobs are detected, the script sends an email with:

  • the number of new jobs
  • each job title, if available
  • each job URL

Return value

At the end of a successful run, the function returns an object like:

{ ok: true, syncedAt: "2026-04-09T00:00:00.000Z", count: 42, newCount: 3, archivedCount: 1 }

Notes

  • The scraper depends on Greenhouse exposing data inside window.__remixContext
  • Job details are cached indirectly by reusing stored raw_json when a known URL already exists
  • syncJobs() replaces the jobs table contents on every run so that table always reflects the latest snapshot
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
AboutAlternativesPricingBlogNewsletterCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.