Resume Builder
Create visually stunning, professionally formatted HTML/PDF resumes for users through conversations, supporting two output modes: visual A4 single-page and ATS-safe.
Core Concepts
- Output: Standalone HTML file with embedded CSS, A4 size (210mm × 297mm), PDF export via browser printing
- Design: Bold and distinctive, rejecting generic AI aesthetics (see
references/design-guidelines.md
for details)
- Select output mode before generation: Visual HTML/PDF or ATS-safe HTML/PDF; both modes share the same factual data.
Prerequisite Rules
Before starting collection, writing or generation, you must fully read and follow
references/resume-contract.md
and
references/content-writing.md
. These two shared reference documents take precedence over examples, layout preferences and process prompts in this entry; when evidence is insufficient, retain factual boundaries and do not fill content to meet layout or format requirements.
Entry & Collaboration
This is the main entry for creating and updating master resumes. If the user provides an existing resume, first extract it into pending confirmation claims, displaying identified content, ambiguous items and suspected outdated entries; after user confirmation, only conduct incremental follow-ups, prioritizing recent changes, missing evidence and low-confidence fields. Do not directly use parsed text as final facts, nor restart a full interview.
If the user has no existing resume, conduct the interview following the information collection process below. Save user-confirmed claims to the private
outside the project directory, using the structure from
references/resume-facts.example.yaml
; this is the factual source for subsequent master resume and JD customization. Only select the output mode and six visual templates after fact confirmation is completed. When an experience is described in responsibilities-only terms, lacks specific contributions or has insufficient evidence, you can suggest the user call
; this is not a mandatory step for generating the master resume.
Workflow
Step 1: Information Collection
Only ask questions one section at a time when conducting a zero-based interview or when there are gaps in an existing resume; do not throw all questions at once. Establish records of
,
,
,
,
for each claim as per
, update the private
after user confirmation, then write content according to
.
Collection order: Basic Information → Education Background → Internship/Work Experience → Project Experience → Skills → Campus Experience → Self-Assessment
- Prioritize follow-ups on verifiable metrics, scope, time, quality, roles and deliverables; when no credible numbers are available, use confirmed non-numeric evidence.
- The number of skills, length/sentence count of self-assessment and structure of experiences follow facts, job relevance and layout; no mechanical quantity or word count thresholds are set.
- For fresh graduates, project or campus experience can be prioritized based on job relevance; fixed order should not be treated as a factual rule.
- Pending confirmation fields can only be kept in collection records or analysis reports, and cannot be included in the final resume HTML/PDF.
Step 2: Style Confirmation
First let the user select the visual HTML/PDF or ATS-safe HTML/PDF mode, then select or describe the visual style. Visual mode reads corresponding CSS and HTML reference files; ATS-safe mode uses single-column, standard headings and copyable text structure:
| Style | CSS | HTML Reference |
|---|
| Modern Minimal | | examples/modern-minimal.html
|
| Classic Business | | examples/classic-business.html
|
| Creative Bold | | examples/creative-bold.html
|
| Japanese Minimal | | examples/japanese-minimal.html
|
| Tech Dark | | |
| Minimal Blue Business | css/minimal-blue-business.md
| examples/minimal-blue-business.html
|
CSS files include 3 sets of color variables + recommended fonts + style CSS.
is for universal typesetting (must be used every time).
Step 3: Generate HTML
Combine
typesetting + corresponding style CSS/layout + user information that meets the contract thresholds based on the mode selected in Step 2 to generate standalone HTML. Visual mode uses
<Name>_<Position>_visual.html
; ATS-safe mode uses
<Name>_<Position>_ats.html
, with corresponding PDFs using the same prefix and
extension.
Visual Mode:
- A4 size, margins, font size, spacing, line height and other typesetting parameters refer to (the only definition source)
- CSS variables manage colors uniformly, using system font stacks (PingFang SC, Microsoft YaHei)
- When delivering as a single file, local images like avatars are embedded using ; if external web fonts are retained, system font fallbacks must be provided simultaneously, and it should be noted in verification that offline rendering may differ.
- Skill tags are arranged using
<span class="skill-badge">
, with badge styles defined by style CSS (ATS-friendly)
- Do not embed export buttons in the resume template; PDF is exported via browser printing or local Canvas's "Print as PDF" operation to avoid obscuring resume content
- When using any built-in style, the generated must include the corresponding
data-resume-editor-template
(, , , , or ) and data-resume-editor-version="1"
. Each real text that requires Canvas fine-tuning must have a stable, unique, semantic ; do not rely on runtime completion.
- The above tags are recognized by the local Canvas fine-tuner of
npx @chasen-liao/resume-skills@latest editor <resume.html>
; Canvas can edit plain text of existing fields and save restricted typesetting overrides, but does not allow inserting HTML or adding new fields. After text facts are changed, facts must be reconfirmed and PDF verified; do not use tags for avatars, layout containers, arbitrary HTML or unconfirmed fields.
ATS-safe Mode:
- Use single-column, standard section headings, normal copyable text and stable body reading order; important information does not rely on images, text boxes, complex nested tables, headers/footers or decorative fonts.
- Skills are expressed as copyable text lists; do not change claim content, evidence status or remove facts except pending confirmation marks due to ATS-safe mode.
- Only generate HTML and browser-printed PDF; the repository currently does not have DOCX generation capability, and does not promise DOCX output.
Step 4: Mode Verification (Mandatory, Cannot Be Skipped)
Visual HTML/PDF: After exporting PDF, check structure, PDF page count, extractable text, page density and printable safe area at the same time:
bash
powershell -NoProfile -ExecutionPolicy Bypass -File skills/resume-builder/scripts/render_resume.ps1 -HTML "<path_to_generated_visual.html>" -OutputPdf "<path_to_generated_visual.pdf>"
- must be ; if it exceeds 1 page, it fails directly, and cannot be disguised as a single page by cropping or hiding overflow.
- estimates page occupancy based on the vertical range of extractable PDF text, with a target of at least ; below the target is a warning, and adjustments must continue to be close to one page, but facts cannot be fabricated to fill space.
- checks the difference between top and bottom white space in the printable area; when a warning occurs, prioritize evenly adjusting section spacing, item spacing and container padding to avoid content being crowded at the top or bottom.
- must not fail; when content crosses the printable bottom safe area, spacing or font size must be adjusted back.
Layout adjustment order: First use existing confirmed sections and content; when the page is too empty, evenly increase section/item spacing, line height or container padding, and reverse compression when the page overflows; if still overflowing, process in the order of "margins not less than 8mm → spacing → line height not less than 1.25 → body text not less than 9.5px → streamline low-relevance content → switch to two columns when appropriate". Try to make top and bottom spacing similar, and re-export PDF and run the same command after any adjustment. Do not add unconfirmed experiences, metrics, skills or placeholder text, nor force content into one page with unreadably small fonts.
The rendering script will perform browser overflow and PDF layout verification, and generate a
with the same prefix, which includes HTML/PDF SHA-256, renderer version and verification results.
,
or inconsistent hash values cannot be delivered. After completing automatic checks, manually check visible cropping, font fallback, links and print background in screenshots; automatic checks cannot guarantee these visual details. Visual mode targets A4 single-page, and all warnings must have recorded processing results.
ATS-safe HTML/PDF: Check if the DOM is single-column, if the relationship between headings and time/organization/position is clear, if the order is correct after copying the body text, and if PDF text is extractable; then check for no image-based text, complex nested tables, key header/footer information and non-copyable decorative fonts. Check HTML/PDF format according to target platform requirements, and do not claim that ATS will definitely pass.
Step 5: Delivery
After completing A4/PDF verification for visual mode, you must start the local Canvas preview to let the user see the finished product first, then make restricted typesetting adjustments as needed:
bash
npx @chasen-liao/resume-skills@latest editor "<path_to_generated_visual.html>"
Advanced CLI Parameter Description (for Agent automation or GUI-less container environments):
- : Output service startup information (such as URL, port and source HTML path) in JSON format once; the service will continue to run for the Agent to connect to this address.
- : Disable automatic opening of the system browser (suitable for console or integrated environments).
- : Specify the listening port.
- Live Preview: After the editor establishes a connection, SSE hot refresh is supported. When the Agent rewrites or modifies the HTML, the page will automatically reload to display the latest effect.
The command will start a local service and open the browser. Inform the user of the location of the original HTML and PDF; when Canvas saves, it will directly overwrite the HTML and mark the associated PDF manifest as invalid. After saving, the rendering script must be re-run, and only when the new manifest's hash and verification results are valid can it be delivered. Canvas only allows editing plain text and restricted typesetting of existing fields, and cannot insert HTML, perform JD matching or adjust structure. If
cannot be executed in the current environment, clearly report that it has not been started, and provide the complete command with the actual HTML path, and do not claim that it has been started.
ATS-safe mode does not use Canvas (its single-column HTML does not belong to the visual templates supported by Canvas); inform the user of the file location and browser printing PDF method. Both modes can be customized for JD using
later.
Reference Document Index
Read as needed from the
directory:
- — Design aesthetics, font typesetting, single-page parameter details
- — Fact sources, evidence, confidence, metric status and output thresholds
resume-facts.example.yaml
— Minimum structure of private
- — Six style-color index
- — Evidence-first writing, two ATS output modes, self-check list
- — CSS usage and color selection strategy
- — Universal compact typesetting CSS (must be used every time)
- + — A pair of reference files for each style