Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
acc912c
Add per-dataset CV localization with language variants
claude Apr 16, 2026
387b3a8
Fix language switcher UX: locale sync, toolbar integration, public pi…
claude Apr 16, 2026
cdb83b8
Collapse older dataset versions and make public visibility per-language
claude Apr 16, 2026
395e2b7
Restructure dataset display: Dataset→Version→Language hierarchy
claude Apr 16, 2026
1b8c87f
Fix default dataset language routing and public pill styling
claude Apr 16, 2026
3ba6850
Fix language persistence and round flag rendering
claude Apr 16, 2026
f8ea3e5
Fix default public site to serve the most recently edited language
claude Apr 16, 2026
72ca866
Fix default to be per-variant: radio button sets exactly one dataset
claude Apr 16, 2026
2924770
Carry over all language variants when creating a new version
claude Apr 16, 2026
2804657
Add proper backend versioning with version_group and version columns
claude Apr 16, 2026
5d17159
Fix public site to serve exact dataset selected via radio button
claude Apr 16, 2026
45235d1
Fix default dataset language switching on public site
claude Apr 16, 2026
39fb355
Fix disappearing language options when switching on public site
claude Apr 16, 2026
8fee53d
Fix language switcher dropdown contrast and make Add Language clickable
claude Apr 16, 2026
2400bcc
Revert version bump — fold fixes into 1.29.0 for this branch
claude Apr 16, 2026
d6b3be5
Improve Open/Save As modal UI: straight edges, consistent structure, …
claude Apr 16, 2026
c5b515a
Remove tree nesting from standalone single-language datasets in Save As
claude Apr 16, 2026
2af97fe
Fix New Version button passing wrong group ID
claude Apr 16, 2026
70e1f03
Add startup fixup to consolidate orphaned version groups
claude Apr 16, 2026
23763b5
Include language in CV export/import
claude Apr 16, 2026
0707622
Add per-dataset language editor
claude Apr 16, 2026
5214e30
Flatten single-language versions in Open and Save As modals
claude Apr 16, 2026
cd1e12d
Move dataset date to the right side of the name row
claude Apr 16, 2026
f6eb514
Align dates to the right in both Open and Save As modals
claude Apr 16, 2026
f758f79
Show language badge on all Save As modal rows
claude Apr 16, 2026
42c5f1a
Auto-expand active dataset in Save As and sort languages by date
claude Apr 16, 2026
eae7a60
Hide public toggle and show /?lang= URL for default dataset siblings
claude Apr 16, 2026
423f643
Show Add Language on flat rows and move New Version to group header
claude Apr 16, 2026
fb20ec7
Fix default sibling URL to show /fr instead of /?lang=fr
claude Apr 16, 2026
dc6f1c4
Unify Open and Save As into a single CV Manager modal
claude Apr 16, 2026
4b4db0e
Fix radio echo, locale switch on add-language, New Version button, an…
claude Apr 16, 2026
5d11ca0
Consistent group display for single-version datasets
claude Apr 16, 2026
ab1120e
Add toggle to force English section headers in ATS PDF export
claude Apr 16, 2026
2e82cfe
Update documentation for CV localization features (English)
claude Apr 16, 2026
2a6daa7
Fix preview, show shared icon inline, improve legend text
claude Apr 16, 2026
3eb69ba
Translate updated documentation to all 7 locales
claude Apr 16, 2026
f22a647
Add remaining translated index and FAQ files
claude Apr 16, 2026
fbe650d
Register dataset data API routes on admin server for preview
claude Apr 16, 2026
1b2cd66
Skip visibility checks on admin dataset preview API routes
claude Apr 16, 2026
1ff763d
Move shared icon next to dataset name instead of far right
claude Apr 16, 2026
4d0a0bd
Place shared icon inline within the name span
claude Apr 16, 2026
32165dd
Increase shared icon size and add left margin
claude Apr 16, 2026
76f1f08
Style shared icon as a pill badge matching version badge shape
claude Apr 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,54 @@ All notable changes to CV Manager will be documented in this file.

Format follows [Keep a Changelog](https://keepachangelog.com/), versioning follows [Semantic Versioning](https://semver.org/).

## [1.30.0] - 2026-04-16

### Changed
- Unified CV Manager modal replaces the separate Open and Save As modals. A single "CV Manager" button in the toolbar opens one modal with a save-as form at the top and the full dataset list below.
- Each dataset row now shows: default radio, language badge, version badge, name, URL, date, Load button, and a ⋮ overflow menu for secondary actions (share/private, change language, preview, copy URL, delete).
- Flat row layout per language variant — no intermediate version headers for single-language versions, eliminating redundant name repetition.
- Group headers show base name, "+ New version" button, and version count on one line.
- Compact legend moved to the modal footer.

### Fixed
- "New version" button now correctly passes version_group UUID instead of language_group, fixing version grouping for new versions.
- Startup fixup consolidates orphaned version_groups created by the previous bug.
- Default dataset siblings now hide the public/private toggle and show the correct `/{lang}` URL.
- Language is now included in JSON export/import for proper round-tripping.

### Added
- Per-dataset language editor: clickable language badge on each row opens a picker to reassign a dataset's language.
- `PUT /api/datasets/:id/language` endpoint with conflict validation.

## [1.29.0] - 2026-04-16

### Added
- Proper backend versioning: `version_group` (UUID) and `version` (integer) columns on `saved_datasets`. Version grouping now uses database UUIDs instead of parsing "Name vN" from dataset names, making it resilient to renaming.
- Creating a new version automatically copies all language variants from the previous version.
- New backend tests for version increment, language sibling carry-over, slug sharing across versions, and version fields in API responses.

### Changed
- Frontend dataset hierarchy (`groupDatasetsHierarchy`) now groups by `version_group` from the API instead of regex name parsing. Display names still use the parsed base name for human readability.
- `suggestNextVersion` uses `version_group` and the `version` field to find the max version, falling back to name parsing for legacy datasets.
- "New version" buttons pass `version_group` UUID to the backend instead of `source_group`.

### Fixed
- Active language in the banner language switcher dropdown now has white text on blue background for proper contrast
- "Add language" item in the language switcher dropdown is now clickable and opens the Save As modal pre-filled for adding a new language variant

## [1.28.0] - 2026-04-16

### Added
- Per-dataset CV localization: save language-specific variants of each CV (e.g. English + German) that share the same structure but have independent content. Language variants are linked via a `language_group` and share the same URL slug.
- Public language switcher: visitors can switch between available language variants at `/v/{slug}/{lang}`. A translate button appears on the public site when multiple languages are available (hidden during printing).
- Admin language switcher: when editing a dataset with language siblings, a language switcher in the active-dataset banner lets you quickly switch between variants. New languages are added via the Save As modal.
- Structural propagation: changes to section order, visibility, custom section layout, and item count automatically sync across all language siblings. Content (text, titles, descriptions) stays independent per language.
- Language-specific URL routing: `/v/{slug}/{lang}` for versioned datasets, `/?lang=xx` for the root URL. Single-language datasets continue to work at `/v/{slug}`.
- Group-wide default and public toggles: setting a dataset as default or toggling public visibility applies to all language variants in the group.
- New i18n keys for language management UI in all 8 locale files (en, de, fr, nl, es, it, pt, zh).
- Database migration adds `language` and `language_group` columns to `saved_datasets` with composite unique constraints on `(slug, language)` and `(name, language)`.
- Backend tests for language variant creation, sibling management, structural propagation, and group-wide operations.

## [1.27.0] - 2026-04-15

### Changed
Expand Down
16 changes: 13 additions & 3 deletions docs/advanced/ats.de.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,18 @@ Zusätzlich zur integrierten Web-Optimierung kann CV Manager ein **dediziertes A

### Verwendung

1. Klicken Sie auf **ATS-Dokument** in der Admin-Symbolleiste
1. Klicken Sie auf **ATS-Dokument** in der Admin-Werkzeugleiste
2. Passen Sie den **Skalierungs**-Regler an, um die Inhaltsdichte zu steuern (50%–150%)
3. Wählen Sie Ihr bevorzugtes **Papierformat** (A4 oder Letter)
4. Sehen Sie sich die Vorschau des Dokuments im Modal an
5. Klicken Sie auf **PDF herunterladen**, um die Datei zu speichern
4. Wenn Sie in einer nicht-englischen Sprache arbeiten, können Sie optional **Abschnittsüberschriften auf Englisch** aktivieren, um die Abschnittsüberschriften (Berufserfahrung, Ausbildung, Fähigkeiten usw.) auf Englisch darzustellen, während alle anderen Inhalte in der aktiven Sprache bleiben
5. Sehen Sie sich die Vorschau des Dokuments im Modal an
6. Klicken Sie auf **PDF herunterladen**, um die Datei zu speichern

### Abschnittsüberschriften auf Englisch

Wenn Ihr Lebenslauf in einer nicht-englischen Sprache verfasst ist, erwarten viele ATS-Systeme dennoch englische Abschnittsüberschriften, um Inhalte korrekt zu kategorisieren. Das Kontrollkästchen **Abschnittsüberschriften auf Englisch** (nur sichtbar, wenn die aktive Sprache nicht Englisch ist) erzwingt die Darstellung der Abschnittsüberschriften auf Englisch, während alles andere — Daten, Inhalte, Fähigkeiten — in der aktiven Sprache bleibt.

Dies ist nützlich, wenn Sie sich bei internationalen Unternehmen oder über englischsprachige Jobportale mit einem Lebenslauf in einer anderen Sprache bewerben.

### Unterschied zu Drucken / PDF

Expand All @@ -53,3 +60,6 @@ Zusätzlich zur integrierten Web-Optimierung kann CV Manager ein **dediziertes A

!!! tip "Skalierung für Dichte"
Wenn Ihr Lebenslauf lang ist, versuchen Sie, die Skalierung auf 70–80% zu reduzieren, um mehr Inhalt pro Seite unterzubringen. Die Vorschau aktualisiert sich in Echtzeit, sodass Sie den optimalen Wert finden können.

!!! tip "Englische Überschriften für internationale Bewerbungen"
Wenn Ihr Lebenslauf auf Französisch, Deutsch oder in einer anderen Sprache verfasst ist, aktivieren Sie den Schalter für englische Überschriften, wenn Sie sich bei Unternehmen bewerben, die englischsprachige ATS-Systeme verwenden. Die meisten ATS-Parser erwarten englische Abschnittsüberschriften wie „Work Experience" und „Education".
42 changes: 26 additions & 16 deletions docs/advanced/ats.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

## ¿Qué es un ATS?

Un **ATS** (Applicant Tracking System, sistema de seguimiento de candidatos) es un software utilizado por reclutadores y empresas para gestionar las solicitudes de empleo. Cuando subes tu CV a un portal de empleo o sitio web de una empresa, un ATS analiza el documento para extraer datos estructurados — tu nombre, títulos de puesto, empresas, fechas, habilidades y formación. Estos datos se utilizan luego para la coincidencia de palabras clave, la clasificación y el filtrado de candidatos.
Un **ATS** (Applicant Tracking System, sistema de seguimiento de candidatos) es un software utilizado por reclutadores y empresas para gestionar las solicitudes de empleo. Cuando sube su CV a un portal de empleo o sitio web de una empresa, un ATS analiza el documento para extraer datos estructurados — su nombre, títulos de puesto, empresas, fechas, habilidades y formación. Estos datos se utilizan luego para la coincidencia de palabras clave, la clasificación y el filtrado de candidatos.

Si el ATS no puede analizar tu documento correctamente, tu solicitud puede ser descartada o información clave puede perderse — incluso si tus cualificaciones son una coincidencia perfecta.
Si el ATS no puede analizar su documento correctamente, su solicitud puede ser descartada o información clave puede perderse — incluso si sus cualificaciones son una coincidencia perfecta.

## Optimización ATS integrada

CV Manager genera automáticamente una salida compatible con ATS en el sitio público:

- **Marcado Schema.org** — datos estructurados que los sistemas ATS pueden analizar (Person, OrganizationRole, EducationalOccupationalCredential, etc.)
- **HTML semántico** — jerarquía de encabezados adecuada, elementos de artículo y listas
- **HTML semántico** — jerarquía de encabezados adecuada, elementos article y listas
- **Bloque ATS oculto** — una versión en texto plano de su CV está incrustada en la página para los analizadores que no procesan HTML con estilos
- **Salida de impresión limpia** — sin desorden visual, jerarquía de contenido adecuada

Expand All @@ -23,11 +23,18 @@ Además de la optimización web integrada, CV Manager puede generar un **PDF ded

### Cómo usar

1. Haz clic en **Documento ATS** en la barra de herramientas de administración
2. Ajusta el control deslizante de **Escala** para controlar la densidad del contenido (50%–150%)
3. Elige tu **Tamaño de papel** preferido (A4 o Letter)
4. Previsualiza el documento en el modal
5. Haz clic en **Descargar PDF** para guardar el archivo
1. Haga clic en **Documento ATS** en la barra de herramientas de administración
2. Ajuste el control deslizante de **Escala** para controlar la densidad del contenido (50%–150%)
3. Elija su **Tamaño de papel** preferido (A4 o Letter)
4. Si trabaja en un idioma distinto al inglés, opcionalmente marque **Encabezados de sección en inglés** para mostrar los encabezados de sección (Experiencia laboral, Educación, Habilidades, etc.) en inglés mientras el resto del contenido permanece en el idioma activo
5. Previsualice el documento en el modal
6. Haga clic en **Descargar PDF** para guardar el archivo

### Encabezados de sección en inglés

Cuando su CV está en un idioma distinto al inglés, muchos sistemas ATS aún esperan encabezados de sección en inglés para categorizar correctamente el contenido. La casilla **Encabezados de sección en inglés** (solo visible cuando la configuración regional activa no es inglés) fuerza los encabezados de sección a mostrarse en inglés mientras todo lo demás — fechas, contenido, habilidades — permanece en el idioma activo.

Esto es útil cuando solicita empleo en empresas internacionales o a través de portales de empleo en inglés con un CV escrito en otro idioma.

### Diferencia con Imprimir / PDF

Expand All @@ -37,19 +44,22 @@ Además de la optimización web integrada, CV Manager puede generar un **PDF ded
| **Diseño** | Diseño completo con colores, iconos, línea de tiempo | Texto estructurado y limpio, formato mínimo |
| **Contenido** | Todas las secciones visibles incluyendo línea de tiempo | Todas las secciones excepto línea de tiempo (no relevante para ATS) |
| **Control de escala** | Diálogo de impresión del navegador | Control deslizante integrado con vista previa en vivo |
| **Generación** | Motor de impresión del navegador | Lado del servidor (pdfmake) |
| **Generación** | Motor de impresión del navegador | Del lado del servidor (pdfmake) |
| **Consistencia** | Varía según el navegador | Salida idéntica en todas partes |

### Consejos para el éxito con ATS

!!! tip "Usa el documento ATS para solicitudes de empleo"
Sube siempre el documento ATS (no la versión Imprimir/PDF) al postularte a través de portales de empleo. El diseño estructurado está diseñado para ser analizado correctamente por sistemas automatizados.
!!! tip "Use el documento ATS para solicitudes de empleo"
Suba siempre el documento ATS (no la versión Imprimir/PDF) al postularse a través de portales de empleo. El diseño estructurado está diseñado para ser analizado correctamente por sistemas automatizados.

!!! tip "Mantén tu sección de habilidades completa"
Los sistemas ATS dependen en gran medida de la coincidencia de palabras clave. Asegúrate de que tu sección de Habilidades contenga todas las tecnologías, herramientas y metodologías relevantes — la exportación ATS las incluye como una lista plana de palabras clave para un mejor matching.
!!! tip "Mantenga su sección de habilidades completa"
Los sistemas ATS dependen en gran medida de la coincidencia de palabras clave. Asegúrese de que su sección de Habilidades contenga todas las tecnologías, herramientas y metodologías relevantes — la exportación ATS las incluye como una lista plana de palabras clave para una mejor coincidencia.

!!! tip "Usa Imprimir/PDF para lectores humanos"
Cuando envíes tu CV directamente por correo electrónico a un responsable de contratación o lo lleves a una entrevista, usa la versión Imprimir/PDF — tiene el diseño visual completo con los colores de tu tema y la línea de tiempo.
!!! tip "Use Imprimir/PDF para lectores humanos"
Cuando envíe su CV directamente por correo electrónico a un responsable de contratación o lo lleve a una entrevista, use la versión Imprimir/PDF — tiene el diseño visual completo con los colores de su tema y la línea de tiempo.

!!! tip "Escala para densidad"
Si tu CV es largo, intenta reducir la escala al 70–80% para incluir más contenido por página. La vista previa se actualiza en tiempo real para que puedas encontrar el punto óptimo.
Si su CV es largo, intente reducir la escala al 70–80% para incluir más contenido por página. La vista previa se actualiza en tiempo real para que pueda encontrar el punto óptimo.

!!! tip "Encabezados en inglés para solicitudes internacionales"
Si el contenido de su CV está en francés, alemán u otro idioma, active la opción de encabezados en inglés cuando solicite empleo en empresas que utilizan sistemas ATS en inglés. La mayoría de los analizadores ATS esperan encabezados de sección en inglés como "Work Experience" y "Education".
Loading
Loading