Commit Graph
120 Commits
Author SHA1 Message Date
thomasandClaude 990a663cdd Optional applicant photo in CV header
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 14:39:13 +02:00
thomasandClaude e914dee855 Anrede: last name only, strip first name (keep titles/particles)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 14:18:02 +02:00
thomasandClaude 86f94ce642 Embed Lato typeface for CV and cover letter (ATS-safe, German glyphs)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 13:50:39 +02:00
thomasandClaude 2a12ab54d0 CV date format MM/YYYY instead of MM.YYYY
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 13:22:50 +02:00
thomasandClaude 798abf67d5 Prompt: hard skills only; neutral unfinished-degree handling (no fake grade)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 13:11:06 +02:00
thomasandClaude 7d46032378 Redesign Lebenslauf: monochrome single-column HR layout
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 12:55:34 +02:00
thomasandClaude 6cf4fb58b0 CV: single-column layout, drop personal fields (Geburtsdatum/Führerschein/Schulbildung)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 12:38:24 +02:00
thomasandClaude a28018f31c CV: contact icons, larger meta text, removed heading rules
Draw small vector icons (phone, mail, pin, globe) in front of each
contact row instead of a pipe-separated single line; drop the title
highlight box and the per-section hair rules for a cleaner header.
Bump experience/education meta to 9.5pt ink and titles to 11.5pt bold,
and tighten section spacing.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 12:20:38 +02:00
thomasandClaude Opus 4.8 3f57474bd1 Redesign résumé: white single-page layout (centered header + two columns)
Replaces the navy-sidebar CV with a white layout modelled on the reference:
centered position title (soft highlight), name, contact row, a tailored Profil
section, then two columns — experience (with bullet points) and education on the
left; skills, languages, interests and personal details on the right.
Restores the profil field and switches experience back to bullet points.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 12:02:50 +02:00
thomasandClaude Opus 4.8 3fc8b76d39 Enlarge cover-letter signature by 20%
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 11:41:52 +02:00
thomasandClaude Opus 4.8 78128db422 Signature image in cover letter + fix per-paragraph capitalization
- Only the first body paragraph continues the salutation (lowercase safe
  opener); every following paragraph is a new sentence and is capitalized.
  Handled deterministically so it no longer depends on the model.
- Signature: upload a signature image on the Vorlagen page (preview / replace /
  remove). It is embedded in the cover letter directly under the closing
  salutation, replacing the typed name; falls back to the name when absent.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 11:37:03 +02:00
thomasandClaude Opus 4.8 cbdbbc07e3 Manual generation, LLM notes with company address, and static attachments
- Static extra attachments: upload files (e.g. Zeugnisse) once on the Vorlagen
  page; they are attached to every generated application and listed under
  "Anlagen" in the cover letter (via multer upload + basis_anhaenge table).
- Import no longer auto-generates: an imported job is saved as a draft
  ("nicht_gestartet"); generation is triggered manually on the application page.
- Per-application "LLM-Notizen" field: free text (company address, contact
  person, extra context) that is fed to the model at generation time. Saving the
  notes and (re)generating happens in one action.
- Cover letter recipient block is now a structured empfaenger (firma, address,
  city, contact person) the model fills from the job + notes; the salutation
  adapts to a named contact. Falls back to the imported company + city.
- Raise default OLLAMA_TIMEOUT_MS to 300s for slower cloud models.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 11:22:14 +02:00
thomasandClaude Opus 4.8 5f02413410 Norm-compliant CV education sections + redesigned monochrome cover letter
CV:
- Split education into proper German sections (Studium, Berufsausbildung,
  Schulbildung, Weiterbildungen) instead of one lumped "Ausbildung".
- Keep the timeline gap-free (lückenlos) and strip HR red-flag phrases
  ("nicht beendet", "abgebrochen", "arbeitslos", …) defensively.

Cover letter:
- Full refactor to a clean, single-column DIN-5008 business letter: letterhead
  (name left, contact right, hairline), recipient block, right-aligned date,
  bold subject, body, signature space, enclosure note ("Anlage: Lebenslauf").
- Monochrome (grayscale only), no accent colours; own single-page auto-fit.
- Prompt hardened against red flags (no salary, no reasons for leaving, no gaps).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 10:36:33 +02:00
thomasandClaude Opus 4.8 cd66e2ef4c Restyle PDFs as a two-column template (dark sidebar + main column)
- Fixed, high-quality CV/cover-letter template modelled on the user's reference:
  navy sidebar (name, headline, contact, skills with bullets, languages, hobbys)
  and a white main column with accent-underlined section headings and dated
  entries (date gutter, bold title, blue company line, description).
- The LLM now supplies only the text; layout/design is owned by the renderer.
- Extended the extracted fields with headline, birth date, driving licence and
  hobbys (grounded in the base documents, empty when absent).
- Two-column auto-fit keeps each document on a single A4 page.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 10:13:17 +02:00
thomasandClaude Opus 4.8 27734c77e5 Redesign generated PDFs: structured AI output + single-page A4 layout
- AI now returns structured data (contact, cover-letter paragraphs, CV
  experience/education/skills/languages) instead of flowing text.
- Modern CV renderer: header with name + contact, tracked section titles with
  hairlines, entries with right-aligned dates and bullets, skill chips, languages.
- Clean DIN-style cover letter with matching header, recipient block,
  right-aligned date, subject, salutation, body, closing.
- Auto-fit engine scales fonts/spacing so each document always fits one A4 page.
- Tolerant parsing (key synonyms, object date ranges, markdown fences) + an
  explicit JSON skeleton in the prompt, since the model honours the schema loosely.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 22:45:25 +02:00
thomasandClaude Opus 4.8 fd20ca0daf Add AI application assistant: Indeed import + Ollama document generation
- Browser extension (Chromium MV3) injecting a "send to tracker" button next
  to the Indeed job description; scrapes job info and posts it to a new
  /api/indeed-import endpoint (CORS-enabled), configurable tracker URL via popup.
- New "Entwurf" status. Imports create a draft and trigger background AI
  generation of tailored Anschreiben + Lebenslauf (PDF attachments) via the
  Ollama Cloud API, grounded strictly in user-provided base documents.
- Vorlagen page to manage base documents; attachments UI, generation status
  polling, regenerate and download routes on the application page.
- Schema: ort/stellenbeschreibung/quelle_url/generierung_* columns, plus
  basis_dokumente and anhaenge tables (with migrations).
- Config via .env (OLLAMA_API_KEY/OLLAMA_MODEL/OLLAMA_HOST); dependency-free
  .env loader. Dockerfile copies lib/, .dockerignore added.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 22:21:28 +02:00
thomas 6952309de9 update 2026-06-19 04:32:02 +02:00
thomasandClaude Opus 4.8 c2a629e2c0 Refactor UI/views, rework Docker build, untrack local data
- Views umstrukturiert: einstellungen.ejs -> bewerbung.ejs, neues
  partials/head.ejs, header/footer/index angepasst
- CSS umbenannt: style.css -> styles.css
- server.js und public/js/main.js ueberarbeitet
- Dockerfile auf schlankes Multi-Stage-Setup umgestellt;
  docker-compose.yml und .dockerignore entfernt
- npm-Scripts docker:build/push/deploy ergaenzt
- SQLite-DB und .idea aus Git entfernt und via .gitignore ignoriert

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 04:01:37 +02:00
thomasandClaude Sonnet 4.6 34cfcecc1e Add Docker setup with multi-stage build and Compose deploy config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 18:29:58 +02:00
thomasandClaude Sonnet 4.6 c65c9f1751 Initial commit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 18:15:11 +02:00