You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Building upon issue #175 (Unified Import/Export Dialog), this feature adds an anonymization mode to the export functionality, enabling users to share CV data safely without exposing personal identifiable information (PII). When importing anonymized data, personal fields remain untouched, allowing users to collaborate and share CV content securely.
Use Cases
Use Case 1: Sharing CV Feedback with Mentors or Peers
User exports CV with anonymization enabled
Personal data (name, email, phone, address) is stripped/masked
User shares anonymized file with mentor for feedback on skills, experience, and achievements
Mentor receives file with placeholder values: [ANONYMIZED_NAME], [ANONYMIZED_EMAIL], etc.
Mentor edits experience descriptions, skills, or project descriptions
User imports edited file; only content updates are applied, personal data stays intact
Use Case 2: Creating Templates from Existing CVs
User wants to create a reusable CV template from their current data
User exports with anonymization to create a generic version
Template is shared with colleagues/friends
When imported, it doesn't overwrite any personal data in their CV
Colleagues benefit from the structure and content without seeing original personal details
Use Case 3: LLM-Assisted CV Enhancement (Privacy-Focused)
User exports CV with anonymization enabled
User pastes anonymized JSON into ChatGPT/Gemini for content improvement
LLM doesn't see personal data; focuses on skills, achievements, and descriptions
User imports LLM-enhanced content with confidence that their personal info stays safe and not used in training data(!)
Better for security (server-side privacy controls)
For Agentic LLM usage (e.g. Claude Code, Codex,...)
6. Anonymization Presets
Allow users to save custom anonymization profiles:
"Full Anonymization" (preset): All PII fields anonymized
"Company Safe" (preset): Only company names anonymized
"Custom" (user-defined): User selects which fields to anonymize
Saved in user settings or cookies for future exports
Technical Considerations
Data Structure
Anonymization markers should be consistent and identifiable
Recommended: [ANONYMIZED_FIELDNAME] format
Alternative: Use placeholder objects like { "__anonymized": true, "__field": "firstName" }
Validation Logic
During import, skip any field that matches anonymization marker pattern
Preserve non-anonymized fields as-is
Optionally log which fields were skipped (for debugging)
i18n Integration
Anonymization markers can be localized: [ANONYMISIERT_VORNAME] (German), [DONNEES_ANONYMISEES] (French)
Or keep markers language-agnostic ([ANONYMIZED_*])
Placeholder examples should respect user locale
Security
Anonymization happens after data retrieval (not in DB)
No permanent changes to stored data
All personal data remains in the database
Browser-side anonymization is sufficient for privacy sharing (not compliance-grade)
Testing
Unit tests for anonymization function
Test import logic skips anonymized fields
Test that valid non-anonymized fields still import
Test with different anonymization presets
Benefits
✅ Privacy-safe collaboration: Share CV feedback without exposing PII
✅ LLM-friendly: Use anonymized data with AI assistants confidently
✅ Template creation: Build reusable CV templates from existing data
✅ Data integrity: Personal data never overwrites during import
✅ Flexible: Users choose which fields to anonymize
✅ Non-destructive: Original data always protected
Overview
Building upon issue #175 (Unified Import/Export Dialog), this feature adds an anonymization mode to the export functionality, enabling users to share CV data safely without exposing personal identifiable information (PII). When importing anonymized data, personal fields remain untouched, allowing users to collaborate and share CV content securely.
Use Cases
Use Case 1: Sharing CV Feedback with Mentors or Peers
[ANONYMIZED_NAME],[ANONYMIZED_EMAIL], etc.Use Case 2: Creating Templates from Existing CVs
Use Case 3: LLM-Assisted CV Enhancement (Privacy-Focused)
Deliverables
1. Anonymization Toggle in Export Dialog
Add checkbox/toggle in the unified import/export dialog (from #175):
-anonymizedor similar)2. Define Anonymizable Fields
These fields are considered personal data and should be anonymized:
Profile Section:
profile.firstName→[ANONYMIZED_FIRSTNAME]orJohnprofile.lastName→[ANONYMIZED_LASTNAME]orDoeprofile.email→[ANONYMIZED_EMAIL]oruser@example.comprofile.phone→[ANONYMIZED_PHONE]or+1-XXX-XXX-XXXXprofile.location→[ANONYMIZED_LOCATION]orCity, Countryprofile.photo→ Removed or replaced with placeholder URLprofile.summary→ Keep (not PII, but company-specific context)Experience Items:
anonymizeCompaniesflag is setContact Information:
https://linkedin.comhttps://example.comDates:
3. Import Behavior — Preserve Personal Data
When importing anonymized data:
[ANONYMIZED_*]or placeholder values are ignoredExample:
{ "profile": { "firstName": "[ANONYMIZED_FIRSTNAME]", "lastName": "[ANONYMIZED_LASTNAME]", "email": "[ANONYMIZED_EMAIL]", "phone": "[ANONYMIZED_PHONE]", "location": "[ANONYMIZED_LOCATION]", "summary": "Experienced software engineer with 10+ years in full-stack development" }, "experiences": [ { "title": "Senior Software Engineer", "company": "[ANONYMIZED_COMPANY]", "description": "Led cross-functional team, improved performance by 40%" } ] }When this is imported into an existing CV:
firstName,lastName,email, etc.) remain unchanged4. UI/UX in Unified Dialog
Export Enhancements:
Filename Integration:
{anon-mode}variable (e.g.,-anonymizedsuffix)2026-07-07_143022_projectmanager_v1_en_abc123-anonymized.json5. Backend API Changes
Option A (Minimal): Handle anonymization purely on the frontend
public/shared/scripts.jsor newanonymizer.jsmoduleOption B (Recommended): Add backend anonymization endpoint
POST /api/export/anonymized6. Anonymization Presets
Allow users to save custom anonymization profiles:
Technical Considerations
Data Structure
[ANONYMIZED_FIELDNAME]format{ "__anonymized": true, "__field": "firstName" }Validation Logic
i18n Integration
[ANONYMISIERT_VORNAME](German),[DONNEES_ANONYMISEES](French)[ANONYMIZED_*])Security
Testing
Benefits
✅ Privacy-safe collaboration: Share CV feedback without exposing PII
✅ LLM-friendly: Use anonymized data with AI assistants confidently
✅ Template creation: Build reusable CV templates from existing data
✅ Data integrity: Personal data never overwrites during import
✅ Flexible: Users choose which fields to anonymize
✅ Non-destructive: Original data always protected
Related Issues
Acceptance Criteria
[ANONYMIZED_*]or similar markers{anon-mode}variable (or similar)