Generate job-specific tailored resumes from a base profile and job description. First collects structured user info (personal details, work history, side projects, education, skills, certificates), then reads a target JD to produce a polished HTML resume customized to match. Outputs print-optimized HTML that exports cleanly to PDF via browser print. Use when user wants to create/rewrite/tailor a resume for a specific job posting, optimize a resume for ATS, build a resume from scratch, or says "make me a resume" / "tailor my resume" / "customize resume for this job". Supports Chinese and English resumes.
Generate a polished, job-specific HTML resume. Two-phase workflow: collect profile → match JD.
On first run (no base profile exists), collect user info in this structured order. Ask one section at a time, confirm before moving to next. Save completed profile to resume-profile.md in workspace.
Before collecting, confirm preferences:
#6b4c9a purple). Accept hex, color name, or "default". This applies to all generated resumes unless overridden per-JD.For each role, collect:
For each project:
Group into categories:
After collecting all sections, save as resume-profile.md:
# Resume Profile: [Name]
> Last updated: YYYY-MM-DD
## Personal
[structured data]
## Education
[structured data]
## Work Experience
[per-role structured data with bullets]
## Projects
[per-project structured data]
## Skills
[categorized list]
## Certificates
[list]
On subsequent runs, read resume-profile.md first. Ask only: "Profile loaded. Anything to update?" If changes needed, edit specific sections.
Always ask the user to provide the JD. Accept via:
After reading the JD, confirm with user:
📋 JD确认:
- 岗位:[Job Title]
- 公司:[Company]
- 核心要求:[3-5 key requirements]
- 加分项:[preferred qualifications]
以上提取正确吗?有补充或修正吗?
Only proceed after user confirms the JD parsing is correct.
🎯 Target: [Job Title] at [Company]
📊 Match: [High/Medium/Low]
✅ Strong matches:
- [match 1: profile strength → JD requirement]
- [match 2]
- [match 3]
⚠️ Gaps (be honest):
- [gap 1: JD wants X, profile has limited Y]
- [gap 2]
📝 Tailoring strategy:
- Emphasize: [what to highlight and expand]
- Reframe: [how to position existing experience]
- Downplay: [what to shorten or combine]
🎨 Accent color: [using default / user's choice / suggest per JD tone]
Wait for user confirmation or adjustments before generating.
Produce a single self-contained HTML file with all CSS inline. Reference references/html-template-guide.md for detailed template specs.
Content rules:
Style defaults (overridable per user preference):
#6b4c9a (purple) — ask user on first run, store in profile"Microsoft YaHei", "PingFang SC", sans-serif (Chinese) or "Inter", sans-serif (English)@media print { print-color-adjust: exact; }@page { margin: 0; }After saving the HTML file, automatically export to PDF using headless browser.
Edge (preferred, Windows built-in):
& "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --headless --print-to-pdf="$outputPath" --no-margins --disable-gpu "$htmlPath"
Chrome fallback:
& "C:\Program Files\Google\Chrome\Application\chrome.exe" --headless --print-to-pdf="$outputPath" --no-margins --disable-gpu "$htmlPath"
Rules:
[Name]-[JobTitle].pdf in same resumes/ directory--no-margins since the HTML template handles its own paddingSave both files to resumes/:
[Name]-[JobTitle].html[Name]-[JobTitle].pdfTell user:
✅ Resume generated! PDF saved to
resumes/[Name]-[JobTitle].pdfVerify before sending:
- Contact info correct
- Dates accurate
- No typos in company/project names
- Achievements not overstated
- PDF formatting looks correct (open and scroll through)
workspace/
├── resume-profile.md # Base profile (created on first run)
├── resumes/
│ ├── [Name]-[JobTitle].html
│ ├── [Name]-[JobTitle].pdf
│ └── ...
└── skills/
└── resume-tailor/
├── SKILL.md
└── references/
└── html-template-guide.md
See references/html-template-guide.md for the complete HTML template structure with all sections, CSS classes, and print optimization details.