π©πͺ Dein persΓΆnlicher KI-Bewerbungsassistent Β |Β π¬π§ Your personal AI job application assistant
π©πͺ Deutsche Version Β |Β π¬π§ English Version
JobRadar ist ein vollstΓ€ndig lokaler Bewerbungsassistent mit KI-UnterstΓΌtzung. Stellensuche, KI-Anschreiben via Ollama, Bewerbungs-Tracking, Dokumenten-Verwaltung und Erfahrungsprofil β alles lΓ€uft auf deinem Rechner, keine Cloud, keine Datenweitergabe.
- 7 Quellen gleichzeitig: Arbeitnow, Jobicy, Arbeitsagentur, The Muse, Remotive, Adzuna π, Jooble π
- Automatischer Match-Score basierend auf Keywords und Blacklist aus deinem Profil
- Umkreissuche nach Ort / PLZ (10β200 km)
- Dublettencheck β bereits beworbene Stellen werden direkt markiert
- Stellen ausblenden mit Grund-Auswahl (Ausbildung, kein Homeoffice, zu weit entfernt β¦)
- VollstΓ€ndig lokal β keine Cloud, keine Kosten, keine Datenweitergabe
- Kontext enthΓ€lt: Stellentitel, Firma, Tags, Beschreibung, Profil und dein Erfahrungsprofil
- Modell-Auswahl direkt in der UI (alle lokal installierten Modelle)
- KI-Stile: eigene Vorlagen mit Ton, LΓ€nge, Sprache und freien Hinweisen
- KI-Feedback: Analyse deines Anschreibens mit VerbesserungsvorschlΓ€gen
- PDF-Export, E-Mail-Button, Kopieren
Dein persΓΆnliches Kompetenzprofil β die KI nutzt es automatisch.
| Bereich | Inhalt |
|---|---|
| π Skills & Technologien | Name + Niveau (AnfΓ€nger / Fortgeschritten / Experte) |
| π’ Berufsstationen | Firma, Rolle, Zeitraum, TΓ€tigkeiten |
| π Ausbildung & Zertifikate | Titel, Jahr, Institution |
- Dokumente pro Bewerbung hochladen (PDF, DOCX, PNG, JPEG β max. 10 MB)
- Lebenslauf-Vault: zentrale Ablage fΓΌr LebenslΓ€ufe, die beim Erstellen von Anschreiben referenziert werden kΓΆnnen
- Path-Traversal-Schutz bei allen Datei-Downloads
- SQLite-Datenbank β Daten bleiben dauerhaft lokal erhalten
- Status-Badges: Beworben / Interview / Angenommen / Abgelehnt
- Kommentar-Zeitstrahl pro Bewerbung
- Inline-Editor fΓΌr Notizen, Follow-up-Datum und Sterne-Bewertung
- Follow-up-Erinnerungen: π΄ ΓΌberfΓ€llig / π‘ fΓ€llig bald
- Filter nach Status, Firma, aktiv / archiviert
- CSV-Export
- 5 Kennzahlen-Kacheln: Gesamt, ΓberfΓ€llig, Interview, Angenommen, Abgelehnt
- Erweiterte Statistiken: Erfolgsquote, Γ Reaktionszeit, Wochentags-Heatmap, Streak
- Automatisches Nachladen alle 5 Minuten
- HTTP Security Headers via
helmet - Rate-Limiting: 200 req/15min (API), 20 req/5min (KI)
- Input-Validierung via
express-validatorauf allen Endpunkten - Path-Traversal-Schutz bei Datei-Downloads
- Stack-Traces werden in Production nie nach auΓen gegeben
- Responsible Disclosure: siehe SECURITY.md
- PWA β als Desktop-App installierbar, offline-fΓ€hig
- Dark / Light Mode mit automatischer System-Erkennung
- Browser-Notifications fΓΌr fΓ€llige Follow-ups
- Docker Compose β ein Befehl zum Starten
- VollstΓ€ndig responsiv
git clone https://github.com/freddykrueger88/JobRadar.git
cd JobRadar
npm install
cp .env.example .env
npm startIm Browser ΓΆffnen: http://localhost:3000
git clone https://github.com/freddykrueger88/JobRadar.git
cd JobRadar
cp .env.example .env
docker compose up -dPORT=3000
DB_PATH=./data/bewerbungen.sqlite
NODE_ENV=production
# Ollama KI (lokal)
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=mistral
# Adzuna (kostenlos β https://developer.adzuna.com)
ADZUNA_APP_ID=
ADZUNA_APP_KEY=
# Jooble (kostenlos β https://jooble.org/api/about)
JOOBLE_API_KEY=# Empfohlen fΓΌr Anschreiben auf Deutsch
ollama pull mistral
# Alternativ: kleiner und schneller
ollama pull llama3.2
# PrΓΌfen ob Modell lΓ€uft
curl http://localhost:11434/api/tags| Kriterium | Mistral 7B | Llama 3.2 (3B) | Phi-4 (14B) |
|---|---|---|---|
| Deutsch | β Sehr gut | β Sehr gut | |
| Formeller Stil | β NatΓΌrlich | β Exzellent | |
| GrΓΆΓe | ~4 GB | ~2 GB | ~9 GB |
| RAM-Bedarf | Ab 8 GB | Ab 4 GB | Ab 16 GB |
| Geschwindigkeit | β Schnell | β Sehr schnell |
Empfehlung: Mistral 7B ist der beste Kompromiss. Wer 16+ GB RAM hat, kann
phi4fΓΌr noch bessere QualitΓ€t nutzen.
JobRadar/
βββ public/ # Frontend (HTML, CSS, JS, PWA)
β βββ index.html
β βββ css/style.css
β βββ js/
β β βββ app.js
β β βββ erfahrungen.js
β βββ manifest.json
β βββ sw.js
βββ src/
β βββ index.js # Express-Server + helmet + Rate-Limiting
β βββ db/ # SQLite-Datenbank
β βββ middleware/
β β βββ errorHandler.js
β β βββ validate.js
β βββ routes/
β βββ bewerbungen.js # Tracking + Stats + CSV-Export
β βββ dokumente.js # Datei-Upload pro Bewerbung
β βββ erfahrungen.js # Skills, Berufsstationen, Zertifikate
β βββ ki.js # Ollama-Integration
β βββ profil.js # Nutzerprofil
β βββ suche.js # 7 Jobquellen
β βββ vault.js # Lebenslauf-Vault
β βββ vorlagen.js # KI-Stile
βββ tests/
β βββ api.test.js
βββ docker-compose.yml
βββ Dockerfile
βββ SECURITY.md
βββ .env.example
BeitrΓ€ge sind willkommen! Bitte lies zuerst CONTRIBUTING.md.
git checkout -b feature/mein-feature
# Γnderungen machen
npm test
git commit -m "feat: mein Feature"
git push origin feature/mein-feature
# Pull Request ΓΆffnenMIT β also ja, mach damit was du willst. Wirklich.
Fork es. Verkauf es. Bau eine millionenschwere SaaS draus. Nenn es um, gib dir selbst einen GrΓΌnder-Hoodie und tu so als wΓ€re es deine Idee gewesen β kein Problem, null Stress.
Du musst mich nicht nennen. Aber falls du es tust, irgendwo in einem kleinen Changelog-Eintrag oder einem versteckten About-Screen, freue ich mich natΓΌrlich trotzdem. Bin halt auch nur ein Mensch.
β οΈ Die eine Bedingung β und die ist ernst gemeint:Sollte aus diesem Projekt jemals ein kommerzielles Produkt mit bezahltem Zugang entstehen β egal ob von dir, deinem Cousin, einem VC-finanzierten Startup das den Code gefunden hat, oder irgendjemand anderem β erhΓ€lt freddykrueger88 lebenslang, unwiderruflich und kostenlos Zugang zum besten verfΓΌgbaren Abo-Tier.
Nicht das mittlere. Nicht das gΓΌnstigste mit βJobRadar-Freundβ-Badge. Das beste.
Ja, das ist die einzige Bedingung. Nein, ich werde es wahrscheinlich nie einfordern mΓΌssen. Aber falls doch: du weiΓt es, ich weiΓ es, GitHub weiΓ es. Das Internet vergisst nicht. π€
Idee & Original: freddykrueger88 β gebaut mit KI, Koffein und der Hoffnung dass es irgendwann jemand anderem nΓΌtzt.
JobRadar is a fully local job application assistant with AI support. Job search, AI cover letters via Ollama, application tracking, document management and experience profile β everything runs on your machine, no cloud, no data sharing.
- 7 sources simultaneously: Arbeitnow, Jobicy, Arbeitsagentur, The Muse, Remotive, Adzuna π, Jooble π
- Automatic match score based on keywords and blacklist from your profile
- Radius search by city / ZIP code (10β200 km)
- Duplicate check β jobs you've already applied to are highlighted
- Hide jobs with reason selection (requires degree, no remote, too far away β¦)
- Fully local β no cloud, no cost, no data sharing
- Context includes: job title, company, tags, description, profile and your experience profile
- Model selection directly in the UI (all locally installed models)
- AI styles: custom templates with tone, length, language and free-text hints
- AI feedback: analysis of your cover letter with improvement suggestions
- PDF export, email button, copy to clipboard
Your personal competency profile β the AI uses it automatically.
| Section | Content |
|---|---|
| π Skills & Technologies | Name + level (Beginner / Intermediate / Expert) |
| π’ Work History | Company, role, period, activities |
| π Education & Certificates | Title, year, institution |
- Upload documents per application (PDF, DOCX, PNG, JPEG β max. 10 MB)
- CV Vault: central storage for rΓ©sumΓ©s, referenceable when generating cover letters
- Path traversal protection on all file downloads
- SQLite database β data stays permanently local
- Status badges: Applied / Interview / Accepted / Rejected
- Comment timeline per application
- Inline editor for notes, follow-up date and star rating
- Follow-up reminders: π΄ overdue / π‘ due soon
- Filter by status, company, active / archived
- CSV export
- 5 KPI tiles: Total, Overdue, Interview, Accepted, Rejected
- Extended statistics: success rate, avg. response time, weekday heatmap, streak
- Auto-refresh every 5 minutes
- HTTP security headers via
helmet - Rate limiting: 200 req/15min (API), 20 req/5min (AI)
- Input validation via
express-validatoron all endpoints - Path traversal protection on file downloads
- Stack traces are never exposed in production
- Responsible disclosure: see SECURITY.md
- PWA β installable as a desktop app, offline capable
- Dark / Light mode with automatic system detection
- Browser notifications for due follow-ups
- Docker Compose β one command to start
- Fully responsive
git clone https://github.com/freddykrueger88/JobRadar.git
cd JobRadar
npm install
cp .env.example .env
npm startOpen in browser: http://localhost:3000
git clone https://github.com/freddykrueger88/JobRadar.git
cd JobRadar
cp .env.example .env
docker compose up -dPORT=3000
DB_PATH=./data/bewerbungen.sqlite
NODE_ENV=production
# Ollama AI (local)
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=mistral
# Adzuna (free β https://developer.adzuna.com)
ADZUNA_APP_ID=
ADZUNA_APP_KEY=
# Jooble (free β https://jooble.org/api/about)
JOOBLE_API_KEY=# Recommended for German cover letters
ollama pull mistral
# Alternative: smaller and faster
ollama pull llama3.2
# Verify model is running
curl http://localhost:11434/api/tags| Criterion | Mistral 7B | Llama 3.2 (3B) | Phi-4 (14B) |
|---|---|---|---|
| German quality | β Excellent | β Excellent | |
| Formal style | β Natural | β Outstanding | |
| Size | ~4 GB | ~2 GB | ~9 GB |
| RAM required | 8 GB+ | 4 GB+ | 16 GB+ |
| Speed | β Fast | β Very fast |
Recommendation: Mistral 7B is the best trade-off for most systems. If you have 16+ GB RAM, try
phi4for even better quality.
JobRadar/
βββ public/ # Frontend (HTML, CSS, JS, PWA)
β βββ index.html
β βββ css/style.css
β βββ js/
β β βββ app.js
β β βββ erfahrungen.js
β βββ manifest.json
β βββ sw.js
βββ src/
β βββ index.js # Express server + helmet + rate limiting
β βββ db/ # SQLite database
β βββ middleware/
β β βββ errorHandler.js
β β βββ validate.js
β βββ routes/
β βββ bewerbungen.js # Tracking + stats + CSV export
β βββ dokumente.js # File upload per application
β βββ erfahrungen.js # Skills, work history, certificates
β βββ ki.js # Ollama integration
β βββ profil.js # User profile
β βββ suche.js # 7 job sources
β βββ vault.js # CV vault
β βββ vorlagen.js # AI styles
βββ tests/
β βββ api.test.js
βββ docker-compose.yml
βββ Dockerfile
βββ SECURITY.md
βββ .env.example
Contributions are welcome! Please read CONTRIBUTING.md first.
git checkout -b feature/my-feature
# Make your changes
npm test
git commit -m "feat: my feature"
git push origin feature/my-feature
# Open a Pull RequestMIT β so yes, do whatever you want with this. Seriously.
Fork it. Sell it. Build a million-dollar SaaS out of it. Rebrand it, give yourself a founder hoodie and pretend it was your idea all along β no problem, zero stress.
You don't have to credit me. But if you do, somewhere in a tiny changelog entry or a hidden about screen, I won't complain. I'm only human.
β οΈ The one condition β and this is dead serious:If this project ever becomes a commercial product with paid access β whether by you, your cousin, a VC-funded startup that stumbled across the code, or literally anyone else β freddykrueger88 gets lifetime, irrevocable, completely free access to the best available subscription tier.
Not the middle one. Not the cheapest with a cute "Friend of JobRadar" badge. The best one.
Yes, that's the only condition. No, I'll probably never need to enforce it. But if I do: you know it, I know it, GitHub knows it. The internet doesn't forget. π€
Original idea & concept: freddykrueger88 β built with AI, caffeine, and the quiet hope that someone out there finds it useful.
