Recruitment Tracker starter kit: Django + MySQL Docker stack with Prometheus, Grafana and Loki

Recruitment Tracker (ATS) - Django + MySQL Docker Stack with Prometheus, Grafana & Loki

Personal
$29.00
Skip to product information
Recruitment Tracker starter kit: Django + MySQL Docker stack with Prometheus, Grafana and Loki

Recruitment Tracker (ATS) - Django + MySQL Docker Stack with Prometheus, Grafana & Loki

$29.00
License

Pick Personal or Commercial. Your order confirmation names the license you bought.

Specs

Version
1.0.0
Last updated
Stack
  • Django 5.2
  • Python 3.12
  • MySQL 8.4
  • Nginx
  • Docker Compose
  • Prometheus 3.13
  • Grafana 12.4
  • Loki 3.7
  • Promtail 3.6
Includes
  • 11-service Docker Compose stack
  • Django admin app (English UI)
  • Hiring pipeline and interview rules
  • Offer and headcount rules
  • Grafana dashboard
  • Loki log pipeline
  • Setup and check scripts
  • Automated tests
File format
.zip: source code only
File size
74 KB
Compatibility
  • Linux host with Docker Engine and Compose v2
  • About 4 GB RAM (8 GB recommended)

A complete, self-hosted applicant tracking stack: a Django 5.2 admin app for job openings, candidates, interviews and offers on MySQL 8.4, behind Nginx, monitored with Prometheus + Grafana and with centralised logs in Loki + Promtail. 11 Docker Compose services in three layers you can bring up one by one.

What you get

  • Django admin with CRUD for departments, job openings, candidates, applications, interviews and offers, with search and filters (stage, opening, status)
  • Hiring pipeline rules in the data model: one application per candidate and opening, stages that only move forward one step at a time (rejection from any open stage, hired and rejected are final), and closed openings that accept no new applications
  • Interview rules: no double-booking for the same interviewer, interviews only for applications in the interview stage, and scores from 1 to 5
  • Offer rules: an offer needs a passed interview, accepting it marks the candidate hired and fills the opening, and hiring beyond the headcount is blocked
  • Protected deletes, so a candidate with applications cannot be removed by accident
  • Bulk actions to advance applications one stage or reject them with a reason
  • Overview dashboard with open positions, the pipeline funnel per stage, interviews in the next 7 days, offers waiting for an answer and the average days to hire
  • /healthz endpoint with a database check, and a restyled, fully English admin UI
  • Scripts that generate secrets (.env with mode 600, never overwritten)
  • Hardened containers: non-root app, read-only root filesystem, dropped capabilities, internal-only database network, ports bound to localhost, Nginx security headers
  • Pre-provisioned Grafana datasources and an overview dashboard (containers, Nginx, MySQL)
  • Log pipeline with an end-to-end check script
  • Demo data command (safe to run again, fake people only) and automated tests

Good to know

  • This is an internal, admin-only system for your recruiting team. There is no public careers page and no candidate portal.
  • Needs a Linux host with Docker Engine and Compose v2, and about 4 GB RAM (8 GB recommended).
  • No HTTPS out of the box. Add TLS before any public deployment.
  • Language and time zone are set in settings.py (English, UTC by default).

Download: one .zip with the source code only (Python, templates, CSS/JS, Docker Compose, Dockerfile, Nginx, Prometheus, Grafana, Loki and Promtail configuration, scripts and tests). No documentation files are included.

You may also like