No description
Find a file
2025-12-10 08:04:56 +00:00
.github/workflows feat: add automatic deployment on src changes to main 2025-11-11 10:09:03 +09:00
data 🔄 Update jobs data (InspireHEP + AJO + DESY) - 2025-12-10 08:04 UTC 2025-12-10 08:04:56 +00:00
src feat: add new job highlighting and legend to UI 2025-11-20 12:12:08 +01:00
.gitignore Add site directory to .gitignore 2025-11-11 09:20:55 +09: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 docs: clarify focus on experimental HEP positions 2025-11-11 15:37:38 +09:00

HEP Jobs Tracker

A job aggregator for Experimental High Energy Physics positions, pulling from InspireHEP, AcademicJobsOnline, and DESY. 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.

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 three sources: InspireHEP's API for experimental HEP positions, AcademicJobsOnline's RSS feed, and DESY's job board. 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, 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.