⚠️ WARNUNG / WARNING
Diese Anwendung verstößt gegen Datenschutzgesetze, da sie Inhalte von Webseiten ohne Zustimmung der Betreiber extrahiert und an eine externe KI (Google Gemini) übermittelt.
Nur für Testzwecke verwenden.
In Zukunft ist geplant, die Analyse entweder über offizielle API-Schnittstellen der Jobportale oder komplett lokal über eine lokale LLM (z. B. Ollama) durchzuführen.
⚠️ Beta-Phase – Dieses Projekt ist aktiv in Entwicklung. Kernfunktionen laufen stabil, aber es kann zu Fehlern kommen. Ich lade Entwickler:innen und Jobsuchende ein, mitzuhelfen, das Add-on zur Release-Qualität zu bringen!
A professional Firefox Extension that analyzes online job postings and compares them against your uploaded resume (PDF). If the match quality meets or exceeds your configured threshold (default 7/10), it automatically generates a customized cover letter (Anschreiben) tailored to the job requirements.
Powered by the Google Gemini API, Job Matcher AI runs completely locally inside your browser, respects your privacy, and utilizes a secure, warning-free implementation compliant with the latest Mozilla Add-on developer standards.
Job Matcher AI ist in der Beta-Phase. Das bedeutet:
- Job-Analyse auf StepStone, Indeed, LinkedIn, XING, Arbeitsagentur, HeyJobs u. a.
- Anschreiben-Generierung (Deutsch) ab konfigurierbarem Score
- Sprach-Assistent (Fragen per Mikrofon)
- Lokale History (letzte 20 Auswertungen)
- 0 Lint-Fehler/Warnungen (AMO-konform)
- Weitere Unit-Tests für Edge-Cases
- Content Script (statt executeScript) für stabilere Extraktion
- Option für lokale/offene Modelle (kein API-Versand)
- Integration weiterer Job-Plattformen
- Issues melden – Fehler oder Verbesserungsvorschläge
- Pull Requests – Code, Tests, Docs, Übersetzungen
- Feedback geben – Funktioniert es auf deiner Lieblings-Jobseite?
- Ideen teilen – Welche Funktion fehlt dir?
Du brauchst kein Frontend-Profi zu sein. Das Projekt wurde selbst mit LLM-Unterstützung entwickelt – jede Hilfe ist willkommen!
- Key Features
- Architecture & Mechanics
- German Application Best Practices & the "Übersetzungs-Regel"
- Security & Privacy Standards
- Installation & Test in Firefox for Developer
- Developer Guide
- License
- Automated Content Extraction: Reads and parses the text of the job description page automatically—even from copy-protected web pages—by avoiding standard
innerTextblocks and walking the DOM usingtextContent. - Match Score & Feedback: Rates match quality on a scale from 1 to 10 and provides a detailed German explanation of matched and missing skills.
- Cover Letter Generation: Automatically writes a professional, tailor-made German cover letter if the match score is at least 7/10 (user-configurable).
- Voice Assistant: Allows you to record and ask voice questions via your microphone, using Gemini to respond instantly in German.
- Stateless Window Lock & Bounds Constraint:
- Automatically restricts the extension popup window from spawning duplicates; multiple clicks on the icon focus the existing window.
- Keeps the popup window nested strictly within the boundaries of your active browser window, preventing it from being dragged off-screen.
- History Log: Keeps a local history of your last 20 evaluations (stored locally inside
chrome.storage.local). - Ubuntu Design System: A premium dark-mode interface styled according to the Ubuntu design palette and font guidelines.
graph TD
BrowserAction[Browser Action Clicked] --> SW[Service Worker background.js]
SW -->|Stateless Query| WinCheck{Popup Open?}
WinCheck -->|Yes| FocusWin[Focus Existing Window]
WinCheck -->|No| CreateWin[Create Popup Window popup.html]
Popup[Popup Panel] -->|ANALYZE_JOB| SW
SW -->|Resolve Web Tab| TabFinder[Find Last Active Normal Window Web Tab]
TabFinder -->|Script Injection| Extractor[Content Extractor Script]
Extractor -->|Text Content| SW
SW -->|API Key + CV + Job Text| Gemini[Google Gemini API]
Gemini -->|Raw Response JSON / Truncated| Parser[Result Parser + JSON Repair]
Parser -->|Cleaned Result Object| SW
SW -->|Response| Popup
- Service Worker (
background.js): Orchestrates extension actions. It tracks window focus dynamically, resolves which web tab to extract text from (ignoring internal extension pages), and contacts the Gemini API. - Popup Window (
popup.html/popup.js): Displays the main application. It features a self-contained window position constrainer that polls current coordinates and snaps the popup back if moved beyond the active browser window. - Robust JSON Recovery (
result-parser.js): Features an advanced recovery parser. If Gemini hits its output token limit or safety block and returns truncated text, the parser auto-completes unclosed string quotes, tags, and brackets to salvage the score and reasoning instead of failing.
When generating cover letters, Job Matcher AI does not merely listing skills or copy-paste text. It is instructed to follow premium German HR standards under the "Übersetzungs-Regel" (Translation Rule):
- Requirement Translation: Translates each critical job requirement into concrete evidence, accomplishments, or project examples from the candidate's CV (rather than making empty claims).
- Format Compliance: Structured professionally with an appropriate greeting, a tailored introduction referencing the job, 2-3 body paragraphs proving experience, clean company motivation, and a formal closing with availability.
- Placeholder-Free: Outputs a completed, ready-to-send cover letter without annoying placeholders (like
[Name]or[Date]).
- 0 Warnings & 0 Errors: Job Matcher AI is fully compliant with the strict security requirements of the Mozilla Add-on developer guidelines. It completely avoids
innerHTMLand uses secure DOM APIs (replaceChildren(),createElement(),textContent(),createTextNode()) to guarantee zero unsafe variable assignment notices. - 100% Local Storage: Your API Key, CV (PDF), and evaluation history are kept local inside your browser (
chrome.storage.local). No developer servers, trackers, or telemetries are used.
→ https://www.mozilla.org/de/firefox/developer/
Diese Version hat separate Profile und about:debugging für unzignierte Add-ons.
git clone <repo-url>
cd Job-Matcher-AI
npm install
npm run buildDas erstellt ein dist/-Verzeichnis mit allen benötigten Dateien.
- Öffne Firefox for Developer
- Gehe zu
about:debugging#/runtime/this-firefox - Klicke auf „Dieses Firefox“ (im linken Menü)
- Klicke auf „Temporäres Add-on laden…“
- Wähle die Datei
dist/manifest.jsonaus
Das Add-on ist jetzt aktiv, solange Firefox läuft.
💡 Tipp: Bei Code-Änderungen einfach erneut
npm run buildausführen und inabout:debuggingauf den „Neu laden“-Button des Add-ons klicken.
npx web-ext run --source-dir=distStartet Firefox for Developer automatisch mit geladenem Add-on und überwacht Änderungen im Quellcode.
- Gehe zu einer beliebigen Stellenanzeige (z. B. StepStone, Indeed)
- Klicke auf das Job Matcher AI-Icon in der Toolbar
- Gib deinen Gemini-API-Key und Lebenslauf (PDF) in den Einstellungen ein
- Klicke auf „Stelle prüfen“
- Sieh dir Score, Begründung und (optional) Anschreiben an
| Link | Beschreibung |
|---|---|
| Firefox for Developer | Browser zum Testen unsigned Add-ons |
| about:debugging | Temporäre Add-ons laden |
| Gemini API Key | Kostenloser API-Key von Google |
| web-ext Dokumentation | CLI-Tool für Extension-Entwicklung |
| Mozilla Extension Workshop | Offizielle Dokumentation |
| AMO – Job Matcher AI | Veröffentlichte Version |
- Node.js (version 18 or higher)
- npm
Install dependencies:
npm installCompile TypeScript and build assets with esbuild:
npm run buildWatch mode for development:
npm run build:watchRun linter checks (ensure zero warnings/errors before packaging):
npm run lint:extRun unit tests (Vitest):
npm testThis project is licensed under the MIT License. The Ubuntu font is licensed under the SIL Open Font License (see src/assets/fonts/).