An explainable, self-hosted job-search assistant for Belgium.
Product tour · Features · Quick start · Deployment
VacatureRadar follows permitted employer sites, ATS pages, feeds and job-alert mailboxes, removes duplicate or irrelevant results, and ranks the remaining opportunities against your own search profile. It helps you discover, compare and track jobs while keeping the final decision with you. **It never applies automatically.**  ## Product tour These captures use a sanitised local demo; the visible counts are sample data. | Ranked matches | Explainable job detail | | --- | --- | |  |  | | Application tracking | Source health | | --- | --- | |  |  | Also explore the [skills radar](docs/screenshots/readme/skills-light.png), [employer intelligence](docs/screenshots/readme/employers-light.png), [automation center](docs/screenshots/readme/automation-dark.png) and [mobile profile](docs/screenshots/readme/profile-mobile-light.png). ## Features - **Personal radar:** roles, skills, region, travel radius, work model and hard limits. - **Source-aware ingestion:** permitted sources only, URL and redirect validation, normalization and deduplication. - **Explainable ranking:** fit score, data quality, positive evidence and concerns shown separately. - **Market context:** recurring skills and employer activity compared with your profile. - **Application pipeline:** stages, notes, interviews and deadlines, always controlled by the user. - **Operational visibility:** source runs, pipeline status and explicit unknowns when data has not been measured. External HTML, email and model output are treated as untrusted data. The system does not bypass CAPTCHAs or rate limits, crawl denied sources directly, or send applications without a person. ## Run it locally For a local development demo, install Python 3.12 or 3.13 and [`uv`](https://docs.astral.sh/uv/). Copy `.env.example` to `.env`, replace every `CHANGE_ME` value, leave `DATABASE_URL` empty for SQLite, then run: ```bash uv sync --frozen --all-groups uv run python manage.py migrate uv run python manage.py bootstrap_instance --with-demo uv run python manage.py runserver 127.0.0.1:8080 ``` Open