Skip to main content
Glama

job-resume-agent

Ein evidenzbasiertes System zur Lebenslauf-Anpassung. Angesichts einer im Browser erkannten Stellenbeschreibung und einer strukturierten Erfahrungsdatenbank, die der Benutzer kuratiert hat, erzeugt es einen ATS-lesbaren LaTeX/PDF-Lebenslauf, in dem jeder Aufzählungspunkt auf einen vom Benutzer bereitgestellten Beleg zurückführbar ist. Jede Formulierung, die das Modell abgeleitet, verallgemeinert oder umformuliert hat, wird sichtbar gekennzeichnet und muss vor dem Export vom Benutzer genehmigt werden.

Das Produkt weigert sich, etwas zu erfinden. Wenn eine geforderte Fähigkeit oder Leistung nicht durch Belege gestützt ist, sagt es das, anstatt eine zu erfinden.

Status: Proof of Concept. Das Repository enthält einen deterministischen MCP-Server, einen Beleg-Verknüpfer, einen sicheren LaTeX-Renderer, eine CLI und Tests. Es enthält noch nicht die Chrome-Erweiterung oder externe LLM-Provider-Adapter.

Quickstart

Erfordert Python 3.11+.

python -m pip install -e ".[dev]"
resume-agent tailor --bank docs/example-experience-bank.yaml --jd path/to/job-description.txt --json
resume-agent tailor --bank docs/example-experience-bank.yaml --jd path/to/job-description.txt --export --out ./out

Um den MCP-Server über stdio auszuführen:

resume-agent serve

Für den privaten Gebrauch setzen Sie RESUME_AGENT_BANK_PATH auf eine lokale Bank, die Ihre eigenen Informationen enthält. Bewahren Sie den ausgefüllten Lebenslauf und die private Bank unter .private/ auf; dieses Verzeichnis wird von Git ignoriert. Die eingecheckte Beispiel-Bank verwendet Platzhalter-Kontaktinformationen und ist sicher zu veröffentlichen.


Warum dieses Projekt existiert

Die meisten Tools zur „KI-Lebenslauf-Anpassung" optimieren auf Keyword-Übereinstimmung und Textfluss auf Kosten der faktischen Integrität. Sie fügen bereitwillig „führte ein Team von 10" oder „verbesserte die Latenz um 40%" hinzu, obwohl der Benutzer beides nie behauptet hat. Das ist ein Karriererisiko für den Benutzer und ein Vertrauensproblem für den Empfänger.

Dieses Projekt vertritt die gegenteilige Haltung: Das Modell ist ein Abrufer und Umschreiber über die eigenen Belege des Benutzers, kein Generator von Leistungen. Anpassung bedeutet Auswählen, Neuordnen und Umformulieren — niemals Erfinden. Siehe docs/product-requirements.md für die Akzeptanzkriterien, die dies operationalisieren.

Produktaufbau

Drei Komponenten, lose gekoppelt:

  1. Chrome-Erweiterung. Erkennt, wenn der aktive Tab eine Stellenbeschreibung auf einer unterstützten Website ist (LinkedIn, Greenhouse, Lever, Ashby, Workday, Klartext). Bietet eine Aktion Generate Tailored Resume an. Sendet die JD an das lokale Backend; öffnet eine Überprüfungs-UI, wenn der Entwurf fertig ist.

  2. Lokales Backend + Web-App. Besitzt die Erfahrungsdatenbank, die Anpassungspipeline, die Evidenzmatrix und den LaTeX/PDF-Renderer. Läuft standardmäßig auf localhost. Enthält eine Überprüfungs-UI: Side-by-Side-Diff gegenüber dem Basis-Lebenslauf, Evidenzlinks pro Aufzählungspunkt, Keyword-Abdeckungs-Heatmap, Warnungen zu nicht unterstützten Behauptungen, Genehmigen/Ablehnen/Bearbeiten pro Aufzählungspunkt.

  3. Provider-Adapter (BYO-Konto). Der Benutzer verbindet sein eigenes OpenAI-, Anthropic- oder lokales (Ollama-)Konto. Wir leiten nicht über unsere Server weiter und speichern im Local-First-Modus keine Provider-Schlüssel in einer gehosteten DB — siehe docs/security-and-privacy.md.

Die öffentliche Referenz-LaTeX-Vorlage befindet sich unter templates/resume.template.tex und dient als visuelles/strukturelles Ziel für den Renderer. Persönliche Identifikatoren (Name, E-Mail, Links, Telefon, Staatsbürgerschaft) werden als Makros in der Vorlage deklariert, sodass sie durch ein privates Overlay überschrieben werden können. Die eigene Lebenslaufquelle des Maintainers, die echte personenbezogene Daten enthält, befindet sich unter .private/alan-resume-source.tex und ist git-ignoriert — behandeln Sie sie als kanonisches Arbeitsbeispiel dafür, wie eine ausgefüllte Vorlage aussieht, nicht als Datei, die mit dem Repository ausgeliefert wird. Eine minimale Erfahrungsdatenbank, die aus dieser privaten Quelle abgeleitet ist, befindet sich unter docs/example-experience-bank.yaml.

Nicht-Ziele (v1)

  • Keine Unterstützung beim Erfinden. Kein „Schlagen Sie einen Aufzählungspunkt vor, den Sie vielleicht getan haben." Kein „Füllen Sie eine plausible Metrik aus."

  • Kein gehostetes Multi-Tenant-SaaS. MVP ist Local-First. Cloud-Synchronisierung ist aufgeschoben (siehe Roadmap).

  • Kein automatisches Bewerben. Wir reichen keine Bewerbungen ein, schreiben keine Recruiter an und verfassen keine Anschreiben. Außerhalb des Umfangs.

  • Kein Scraping von geschützten Jobbörsen. Die Erweiterung liest die aktuell geöffnete Seite in der eigenen Browsersitzung des Benutzers; sie crawlt nicht.

  • Keine Speicherung von Provider-API-Schlüsseln serverseitig in v1. Schlüssel liegen im OS-Keychain oder im lokalen Speicher der Erweiterung.

  • Kein Lebenslauf-„Score". Numerische ATS-Scores sind Pseudowissenschaft ohne das ATS im Prozess. Wir zeigen Keyword-Abdeckung und Evidenzabdeckung, keine Note.

  • Kein LinkedIn-Scraping zur Befüllung der Erfahrungsdatenbank. Import ist manuell oder nur aus vom Benutzer hochgeladenen PDF/LaTeX.

Dokumentationsübersicht

Datei

Zweck

docs/product-requirements.md

User Stories, Akzeptanzkriterien, Nicht-Ziele, UX-Prinzipien

docs/technical-architecture.md

Systemdiagramm, Komponenten, Provider-Adapter-Schnittstelle, LaTeX-Validierung

docs/data-model.md

Schema der Erfahrungsdatenbank, Evidenzlinks, Schema des angepassten Lebenslauf-Artefakts

docs/security-and-privacy.md

Bedrohungsmodell, Begründung der Erweiterungsberechtigungen, Schlüsselspeicherung, Datenflüsse

docs/roadmap.md

Phasenweiser Bauplan von M0 (Skelett) bis M5 (Multi-User-Cloud)

docs/adr/001-local-first-provider-agnostic.md

Grundlegendes Architektur-Entscheidungsprotokoll

docs/example-experience-bank.yaml

Beispiel-Bank, die nur aus der privaten .private/alan-resume-source.tex des Maintainers abgeleitet ist

CONTRIBUTING.md

Entwicklungsprinzipien, Codierungsstandards, Review-Haltung

Repository-Struktur (Ziel)

job-resume-agent/
├── templates/
│   └── resume.template.tex       # public, PII-free reference LaTeX template
├── .private/                     # git-ignored; maintainer's real resume source lives here
├── README.md
├── CONTRIBUTING.md
├── docs/                         # (this repo, today)
├── apps/
│   ├── extension/                # Chrome MV3 extension (TS)
│   ├── backend/                  # FastAPI (Python) + SQLite
│   └── web/                      # React review UI
├── packages/
│   ├── providers/                # provider adapter interface + impls
│   ├── tailoring/                # retrieval, rewrite, evidence-matrix builder
│   ├── latex/                    # renderer, validator, PDF pipeline
│   └── schema/                   # shared Zod/Pydantic schemas
└── tests/
    └── fixtures/                 # JD samples, expected evidence matrices

Nur templates/resume.template.tex, README.md, CONTRIBUTING.md und docs/ existieren heute im getrackten Baum. .private/ ist im lokalen Checkout des Maintainers vorhanden, ist aber git-ignoriert und wird nicht ausgeliefert. Der Rest ist das Ziel von Phase M1 (siehe Roadmap).

Festgehaltene Annahmen

Dies sind die vernünftigen Annahmen, die dieses Design ohne Rückfrage beim Benutzer trifft. Ändern Sie sie, indem Sie ein ADR eröffnen.

  1. Local-First, Single-User-MVP. Cloud/Multi-User ist ein v2-Thema. Siehe docs/adr/001-local-first-provider-agnostic.md.

  2. BYO-Provider-Konto. Wir stellen kein LLM als Dienst bereit. Der Benutzer wählt OpenAI, Anthropic oder Ollama; wir rufen es mit seinen Anmeldedaten auf.

  3. LaTeX ist die Quelle der Wahrheit für das angepasste Artefakt. PDF ist ein Build-Produkt. Die Basisvorlage des Benutzers (templates/resume.template.tex, optional überlagert durch eine private Datei wie .private/alan-resume-source.tex) definiert den Layout-Rahmen.

  4. Python-Backend, TypeScript-Erweiterung + Web-UI. Entspricht dem ML/LaTeX-Ökosystem im Backend und der Browser-Plattform im Frontend.

  5. Zuerst Chrome. Firefox/Safari können über MV3-Kompatibilität folgen, sobald die Oberfläche stabil ist.

  6. Die Bank gehört dem Benutzer. Der Benutzer kann die gesamte Bank jederzeit als YAML exportieren und die lokale DB mit einem Befehl löschen.

  7. Jeder generierte Aufzählungspunkt trägt eine Herkunft. Kein Aufzählungspunkt erreicht das PDF ohne mindestens eine evidence_id-Referenz im angepassten Lebenslauf-Artefakt.

Offene Fragen

Verfolgt in docs/roadmap.md#open-questions.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Tailor resumes, generate cover letters, render CVs as PDF, and browse 22+ templates.

  • Turn a description into a shareable, editable PDF — invoices, certificates, reports, resumes.

  • A personal RAG database you build from chat, so AI creates work that sounds like you.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Bao-and-Banh-Mi/job-resume-agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server