No description
  • JavaScript 61.2%
  • CSS 26.4%
  • HTML 12.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-03 08:09:53 +00:00
.github Remove desy jobs 2026-08-24 13:29:14 +02:00
data 🔄 Update jobs data (InspireHEP + AJO) - 2026-09-03 08:09 UTC 2026-09-03 08:09:53 +00:00
src Remove desy jobs 2026-08-24 13:29:14 +02:00
.gitignore Add site directory to .gitignore 2025-11-11 09:20:55 +09:00
.sanad.toml Remove desy jobs 2026-08-24 13:29:14 +02:00
build-modular.js Add responsive design, clickable header, dark/light mode toggle, and modular architecture to HEP Jobs Tracker (#1) 2025-07-30 03:40:11 +02:00
README.md Remove desy jobs 2026-08-24 13:29:14 +02:00

HEP Jobs Tracker

A job aggregator for Experimental High Energy Physics positions, pulling from InspireHEP and AcademicJobsOnline. The site updates daily via GitHub Actions and displays only jobs posted in the last 30 days, filtering out stale postings even when deadlines remain open. Direct DESY postings are excluded.

Live site: melashri.net/hep-jobs

Why This Exists

Job boards in HEP often show positions posted months ago because people don't update deadlines properly. This tracker filters by posting date instead of deadline, so you only see genuinely recent opportunities. It aggregates multiple sources into one place and updates automatically without requiring a backend server, GitHub Actions handles everything. This is just another application of me abusing GitHub actions as a backend.

How It Works

The build system fetches jobs from two sources: InspireHEP's API for experimental HEP positions and AcademicJobsOnline's RSS feed. It intelligently stops fetching from InspireHEP when it encounters old jobs (typically after just one page instead of thousands), respecting their API limits. Jobs are filtered to the last 30 days based on posting date, direct DESY postings are excluded, and the remaining records are merged with existing data and rendered into a static site deployed to GitHub Pages.

Run node build-modular.js to build locally. The modular architecture in src/ separates data fetching, storage, and HTML generation. See src/README.md for details.