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
Users sometimes make extensive edits to their CV that don't work out, or they want to start fresh on a specific section. Currently, recovering a previous state requires:
Manually undoing changes one by one
Loading a saved dataset (if one exists)
Starting completely from scratch
This is time-consuming and frustrating, especially when versioning CVs or import goes wrong (e.g. import JSON parsed from PDF from a external LLM).
Proposed Solution
Add two reset capabilities:
1. Section-Level Reset
Reset a single section to its default/empty state while preserving the rest of the CV.
Use cases:
Bulk import created duplicate/wrong entries → start fresh on that section only
CV duplication for a new job application → After duplicating a CV in CV Manager, often only specific sections need to be cleared and rebuilt for the new role. For example:
Duplicated CV for a new position → clear and rebuild experience with role-specific highlights
Changed career direction → reset summary and experience to tailor messaging
Different tech stack required → clear skills to start fresh
Reset the entire CV to the default dataset, discarding all unsaved changes.
Use cases:
Made too many changes to track
Want to start completely fresh
Testing different approaches
Note: This should require explicit confirmation and clearly state it doesn't affect saved datasets.
UX Design
Section Reset
User clicks Trash Icon OR section edit button
If using edit button: Modal opens - Sees "Reset Section" option with warning icon
If using Trash Icon AND/OR over edit button -> Edit Section Modal -> Buttom "Reset Section"; Confirmation modal: "This will clear all [section name]. Continue?"
Section resets to empty/default state
┌─────────────────────────────────────────────┐
│ Reset Section │
├─────────────────────────────────────────────┤
│ │
│ ⚠️ This will clear all experiences. │
│ This action cannot be undone. │
│ │
│ [Cancel] [Reset Experiences] │
└─────────────────────────────────────────────┘
Full CV Reset
User opens CV Manager or Settings or Profile menu
Sees "Reset CV" option with danger styling
Confirmation modal with explicit checkbox: "I understand this cannot be undone"
CV resets to default dataset state
┌─────────────────────────────────────────────┐
│ Reset Entire CV │
├─────────────────────────────────────────────┤
│ │
│ ⚠️ This will reset ALL sections: │
│ • About / Profile │
│ • Experience (0 items) │
│ • Education (0 items) │
│ • Skills (0 items) │
│ • ... │
│ │
│ ☐ I understand this cannot be undone │
│ │
│ [Cancel] [Reset CV] │
└─────────────────────────────────────────────┘
Technical Approach
Existing Infrastructure (Verified in Code)
The codebase already has the building blocks for reset functionality:
Pattern
Endpoint
Purpose
Dataset duplication
POST /api/datasets
Copy entire CV as new version
Individual item delete
DELETE /api/experiences/:id
Delete single item (with logo cleanup)
Dataset load
POST /api/datasets/:id/load
Replace current data from saved dataset
Import
POST /api/import
Bulk import with section-level control
Section Reset
Proposed approach (please verify): Use existing POST /api/import endpoint with empty arrays for the target section.
Or a dedicated endpoint if we want to reset to a true empty state:
app.post('/api/cv/reset',(req,res)=>{constresetData=db.transaction(()=>{// Clear user contentdb.prepare('DELETE FROM experiences').run();db.prepare('DELETE FROM education').run();db.prepare('DELETE FROM certifications').run();db.prepare('DELETE FROM skills').run();db.prepare('DELETE FROM skill_categories').run();db.prepare('DELETE FROM projects').run();db.prepare('DELETE FROM custom_section_items').run();db.prepare('DELETE FROM custom_sections').run();db.prepare("DELETE FROM section_visibility WHERE section_name LIKE 'custom_%'").run();// Reset profile to emptydb.prepare(`UPDATE profile SET name = '', title = '', subtitle = '', bio = '', location = '', linkedin = '', email = '', phone = '', languages = '' WHERE id = 1`).run();});try{resetData();res.json({success: true});}catch(err){res.status(500).json({error: err.message});}});
Preserved on reset:
saved_datasets (all saved CV versions)
settings (language, theme, date format)
Profile picture files
UI Placement
Action
Location
Section Reset
If using Trash Icon AND/OR over edit button -> Edit Section Modal -> Buttom "Reset Section"
Full CV Reset
User opens CV Manager or Settings or Profile menu
Key Decisions
Decision
Rationale
Use existing import endpoint
Avoids creating new API routes; leverages POST /api/import with empty arrays
No undo for resets
Simpler implementation; datasets serve as backup (undo could be a separate feature)
Section-level granularity
More useful than full reset for most cases
Danger styling for full reset
Clear visual warning for destructive action
Preserve settings/datasets
User's language, theme, and saved work should be safe
Logo cleanup handled automatically
Import logic only deletes logos when no items reference them
Out of Scope
Undo/redo functionality (could be a separate feature)
Version history (beyond saved datasets)
Selective item deletion (already exists via edit modal)
Reset to a specific saved dataset (already possible via datasets panel)
Partial section resets (e.g., delete every other item)
duplicateThis issue or pull request already existswontfixThis will not be worked on
1 participant
Heading
Bold
Italic
Quote
Code
Link
Numbered list
Unordered list
Task list
Attach files
Mention
Reference
Menu
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Feature Discussion: CV and Section Reset
Context
Users sometimes make extensive edits to their CV that don't work out, or they want to start fresh on a specific section. Currently, recovering a previous state requires:
This is time-consuming and frustrating, especially when versioning CVs or import goes wrong (e.g. import JSON parsed from PDF from a external LLM).
Proposed Solution
Add two reset capabilities:
1. Section-Level Reset
Reset a single section to its default/empty state while preserving the rest of the CV.
Use cases:
experiencewith role-specific highlightssummaryandexperienceto tailor messagingskillsto start freshScope: Affects one section (experiences, education, certifications, skills, projects, custom sections).
2. Full CV Reset
Reset the entire CV to the default dataset, discarding all unsaved changes.
Use cases:
Note: This should require explicit confirmation and clearly state it doesn't affect saved datasets.
UX Design
Section Reset
Full CV Reset
Technical Approach
Existing Infrastructure (Verified in Code)
The codebase already has the building blocks for reset functionality:
POST /api/datasetsDELETE /api/experiences/:idPOST /api/datasets/:id/loadPOST /api/importSection Reset
Proposed approach (please verify): Use existing
POST /api/importendpoint with empty arrays for the target section.Why not DELETE endpoints?
DELETE /api/experiences/:idrequires an ID (individual items only)DELETE /api/experiences(bulk delete) existsNote: Logo cleanup is handled by the import logic—logos are only deleted when no other items reference them.
Full CV Reset
Proposed approach (please verify): Load the default dataset (which is typically empty or minimal), or use import with all-empty sections.
Or a dedicated endpoint if we want to reset to a true empty state:
Preserved on reset:
saved_datasets(all saved CV versions)settings(language, theme, date format)UI Placement
Key Decisions
POST /api/importwith empty arraysundocould be a separate feature)Out of Scope
References
src/server.js:2988(POST /api/import) — handles empty arrays for resetsrc/server.js:2677(POST /api/datasets/:id/load) — full data replacementsrc/server.js:2244(DELETE /api/experiences/:id) — includes logo cleanupsrc/server.js:2556(POST /api/datasets) —version_groupparam creates new versionBeta Was this translation helpful? Give feedback.
All reactions