Data Handling
1. Design principle
Advoke CV is designed so that your resume content never leaves your browser. There is no backend, no database, and no server that stores or processes resume content. The sections below explain exactly how this is achieved.
2. What is stored on your device
Two browser storage mechanisms are used:
IndexedDB (primary)
Drafts are written to an IndexedDB database named advoke-cv. The database has two object stores:
drafts— one record per draft. Each record contains the resume content, design settings, name, and timestamps.settings— a small key/value store for editor preferences.
localStorage (fallback and preferences)
When IndexedDB is unavailable (for example in some private browsing modes), Advoke CV falls back to localStorage for draft persistence. Small preferences such as your theme choice are always stored in localStorage.
3. What is never transmitted
Advoke CV never transmits the following:
- Your name, contact details, or any other personal information entered into the editor.
- The content of any section, entry, or summary.
- The photo you upload.
- Your draft name or draft IDs.
- The exported PDF, JSON, or plain-text files.
All export operations build the file locally and use the browser's own download mechanism. No upload occurs at any point.
4. Network requests the site makes
The only network requests Advoke CV makes are for its own static files:
- HTML, CSS, and JavaScript files under
/assets/. - Font files under
/assets/fonts/. - Icon sprite and individual icons under
/assets/icons/. - JSON data shards under
/data/. - The vendor PDF libraries under
/assets/vendor/, loaded only when you open the Export dialog.
These requests do not include any resume content. They are ordinary fetches for static assets that are cached by your browser according to the headers in /_headers.
5. Third-party services
None. Advoke CV does not include:
- Analytics services (Google Analytics, Plausible, Fathom, or similar).
- Error reporting services (Sentry, Rollbar, or similar).
- Advertising networks.
- Content delivery networks other than the one that hosts the static site.
- Font services hosted by third parties.
- Chat widgets, surveys, or heatmaps.
6. Storage lifetime
Your drafts remain in your browser until one of the following happens:
- You delete them explicitly from the drafts panel.
- You use the "Clear Local Data" control inside the editor.
- You clear browser site data for this domain through your browser's settings.
- Your browser evicts the storage under memory pressure. Some browsers do this for sites that have not been visited recently.
Advoke CV cannot recover a draft that your browser has removed, because there is no server-side copy.
7. Recommended backup practice
For any resume you care about, use the Export dialog's "Export as JSON" option periodically. The JSON file contains every field, section, and design setting. Store it somewhere you control. It can be re-imported later in any modern browser that runs Advoke CV.
8. Clearing your data
You have three ways to remove all data Advoke CV has stored:
- In the editor: Settings → Clear Local Data. This requires an explicit confirmation.
- Individual drafts: delete each one from the drafts panel.
- Browser settings: clear site data for
advoke-cv.pages.dev. This removes Advoke CV data together with any other site data for the domain.
9. Handling of imported files
When you import a JSON file, it is read locally using the FileReader API and validated before being stored. The file is never uploaded. Advoke CV does not accept DOCX or PDF imports, because reliable extraction cannot be performed without a server or a heavy dependency.
10. Photo handling
Profile photos are read using the FileReader API and processed locally with the Canvas API. The resized image is stored as a data URL inside the draft. The original file is never transmitted. The maximum accepted file size is 6 MB.
11. Contact
Questions about data handling can be raised through the Advoke CV repository. Do not include personal resume content in a public issue.