PeelJobs¶
PeelJobs is an open-source job board. Recruiters post openings, job seekers search and apply, and platform staff moderate what gets published. It is free software under the MIT License, and it is built to be self-hosted.
The platform is three deployable pieces:
| Component | Directory | What it is |
|---|---|---|
| Backend | backend/ |
Django + Django REST Framework, PostgreSQL, Celery. Serves the REST API at /api/v1/. |
| Job seeker site | site/ |
SvelteKit app. Public job search, applications, alerts. |
| Recruiter dashboard | recruiter/ |
SvelteKit app. Job posting and applicant management. |
The two SvelteKit apps never talk to the database. They call the Django API server-side and render HTML, which keeps job listings indexable and keeps authentication tokens out of the browser.
Start here¶
-
Get the backend and both frontends running locally.
-
Environment variables, and which ones you actually need.
-
How the pieces fit, and why the API is called server-side.
-
Branching, code standards, and running the test suite.
Who it is for¶
Self-hosters want Installation and Deployment.
Contributors want Architecture — particularly Authentication, which is the part of the system most likely to trip you up.
API consumers should read Authentication for the token flow. PeelJobs does not maintain a hand-written endpoint reference; the running server publishes a live OpenAPI schema instead. See Consuming the API.
Job seekers and recruiters using a hosted PeelJobs instance want the User Guides.
Project status¶
PeelJobs began as a Django application that rendered its own HTML templates. It is partway through a migration to the split architecture above: the REST API and both SvelteKit frontends are the actively developed surface, while the remaining Django templates serve the platform-admin dashboard and are being retired.
If you are contributing, that distinction matters — see Backend for what is current and what is on its way out.