Skip to content

Core Features

ZhengY-LI edited this page Jul 1, 2026 · 5 revisions

Landing page creation

The landing page lets users create a resume, academic CV, or cover letter. When a user creates a document, the app writes the initial state into sessionStorage and opens the matching editor route.

Creating a new document also clears the matching agent session, so old chat state does not leak into a fresh document.

Resume editor

The resume editor supports personal information, summary, education, experience, skills, projects, and awards. Users can switch document language between English and Chinese.

The editor form updates the document state directly. The preview reflects those changes immediately.

Academic CV editor

The academic CV editor supports a broader scholarly structure. It includes personal information, research interests, education, research experience, teaching, industry experience, publications, manuscripts under review, presentations, grants and awards, service, technical skills, and references.

Academic CVs also support English and Chinese document modes.

Cover letter editor

The cover letter editor focuses on sender details, recipient details, date, and body paragraphs. The current document mode is English.

Live preview

Each editor has a paginated preview panel. The preview helps users see how their content will look when exported, including page flow and agent review highlights.

Import and export

Users can import compatible CVForge JSON files. They can export the current document as JSON, PNG, or PDF.

PDF and PNG export happen in the browser. The app captures the preview and saves the result without sending the document to a backend.

Examples

Each editor can load example content. Examples help users understand the expected structure and writing density for each document type.

Local persistence

Refresh keeps the current document because the editor state lives in sessionStorage.

Closing the tab starts clean next time because sessionStorage is scoped to the tab session.

LLM configuration is separate and longer lived because it uses localStorage.

Language behavior

The UI language preference uses localStorage with hydration safe snapshots. Document language is separate from UI language. This matters because a user can run the app UI in one language while editing a document in another.

Clone this wiki locally