elliottdehn/open-jobs

~3M live jobs from 36 ATS, enriched with LLM-extracted fields + embeddings, released CC0. Includes agent tooling to search them (hull -> learn -> rank).

What it solves

Open Jobs addresses the problem of "ghost jobs" and stale listings on job boards. Many job boards keep dead listings active to appear successful, making it difficult for applicants to know which roles are actually open. This project identifies real, active listings by crawling company career sites directly and grading them based on their actual age and behavior.

How it works

The system uses a large-scale crawler (utilizing Cloudflare Durable Objects) to monitor 65,000 company career sites daily. It records the exact date a posting is first seen to prevent "re-stamping" (where a company claims a job is newer than it is).

A nightly batch process trains estimators for salary, seniority, and work arrangement, and creates a search index. This index organizes 3.1 million postings into groups of similar jobs using embeddings (1536-dimensional vectors). When a user searches, their request is embedded, and the nearest groups of jobs are downloaded to the user's machine for local ranking and filtering, ensuring privacy.

Who it’s for

Job seekers who want to avoid wasting time on stale or fake listings, and AI agents (like Claude Code or Cursor) that can be used to automate the job search and shortlisting process.

Highlights

  • Job Grading: Categorizes listings as Fresh, Stale, Re-stamped, or Ghost based on empirical data.
  • Privacy-First Search: Ranking and learning happen locally on the user's machine; resumes and labels never leave the device.
  • Agent Integration: Designed to be used as a plugin for AI agents to interview the user and generate a curated shortlist of matches.
  • Massive Dataset: Crawled 3.1 million postings from 65,000 sites with full text and embeddings provided in a downloadable snapshot.

Related

  • Project
  • Project
  • Project
  • Project
  • Project