Turn "I need a good-looking resume" into a stable process:All materials first flow into one standardized structured data set, then a template is applied to render. This way, switching templates is just changing the skin and no content is lost; beautification and building from scratch share the same second half.
Three first principles
- Never fabricate. All experience, responsibilities, and numbers must come from content the user actually provides. You can guide, ask follow-up questions, help them articulate vague points clearly, and turn weak bullets into strong ones, but never invent companies, positions, achievements, or quantified numbers.Any number must be verified with the user, and if uncertain, mark it
[待确认]instead of guessing one. - Ask only one question at a time. Conversational resume building is an interview, not a questionnaire. Ask one question → wait for the answer → follow up accordingly. Never throw out a string of questions at once.
- Structure first, then render. No matter which entry point is used, first organize the content into the fields defined by
schema/resume-data.md, and only after confirming it is correct apply a template to produce HTML.
Routing: first determine intent when the user comes in
| What the user says | Which flow to follow |
|---|---|
| "Help me beautify my resume" / "improve my resume" / uploaded an existing resume (PDF/docx/txt/md) | Beautify an existing resume → prompts/beautify.md |
| "I don't have a resume yet, this is my LinkedIn" / pasted a linkedin.com link | LinkedIn import → prompts/linkedin-import.md |
| "I don't have a resume, help me make one" / "help me make one through chat" | Conversational resume building → prompts/interview.md |
| "Switch templates" / "this one doesn't look good" | When structured data already exists, re-render directly (see the rendering flow below) |
If you can't tell, just ask:
"Are youalready have a resume you want to beautify, orstart from scratch? If from scratch, would you ratherpaste a LinkedIn linkand let me import it, orlet's chatand I'll ask you questions to draw it out?"
Beautify an existing resume
See prompts/beautify.md. Key points:
- Readthe resume provided by the user (readable PDF / copied-and-pasted text / Word export). Claude can directly Read PDF.
- Parseinto the fields of
schema/resume-data.md, marking missing items as[缺失]。 - Diagnose(against
guides/writing-tips.md): which bullets lack quantified results, which are piles of responsibilities rather than achievements, layout/length/timeline issues, ATS risks. Provide a short diagnostic checklist. - Ask for consent before changing content: ask the user, "Can I go ahead and strengthen these weak bullets? (Not changing the facts, only the wording.)" Only change them if the user agrees, and after making the changes have them confirm the numbers one by one.
- Choose a template → render(see below).
LinkedIn import
See prompts/linkedin-import.md. Key point: the reality is that LinkedIn has a login wall, and directly scraping public URLs is often blocked. The workflow will first try WebFetch; if it cannot get the data, it will guide the user to use LinkedIn's "Save to PDF" to export the profile or copy and paste the content of each section, then parse it into the schema.
Conversational resume building
See prompts/interview.md. Question and answer, in the order of contact information → target role → each experience (company/title/dates → what was done → outcome numbers) → education → skills, dig out one section and structure one section, and finally aggregate into the schema.
Rendering workflow (the latter half shared by the three entry points)
-
Confirm structured data: echo the organized
resume-datacontent back to the user and confirm it is correct (especially the numbers). -
Choose a template: 13 sets, ask the user's preference (by default recommend Classic/ATS, because it is the most reliable for mass applications):
Template File Suitable for ATS Classic / ATS templates/classic-ats.htmlSingle column with no frills, machine-parsable, most reliable for mass applications to large companies ✅ Friendly Ledger Academic Engineering templates/ledger.htmlLaTeX-style serif, company/dates aligned at both ends, nested bullets, software/data/engineering roles ✅ Friendly Tech Compact templates/tech-compact.htmlHigh information density + monospace accents, engineers fit multiple projects onto one page 🟡 Fair Modern Sidebar templates/modern-sidebar.htmlTwo columns + dark sidebar, strong modern feel 🟡 Average Pillar Info Card templates/pillar.htmlEnhancv style, blue accents + skill pills + icon achievements + language progress dots, product/marketing/PM 🟡 Average Elegant Serif templates/elegant-serif.htmlSerif centered editorial style, for humanities-leaning roles such as design/consulting/marketing 🟡 Average Atelier Minimal templates/atelier.htmlLots of whitespace + thin uppercase name + vertical line column dividers, design/creative/aesthetic roles 🟡 Average Timeline templates/timeline.htmlVertical timeline spine on the left, career growth trajectory visible at a glance 🟡 Average Swiss Grid templates/swiss.htmlSwiss grid, bold Helvetica + red accents, design/brand/creative 🟡 Average Executive templates/executive.htmlNavy serif, steady and weighty, finance/consulting/executive/senior leadership 🟡 Average Editorial Publication templates/editorial-banner.htmlThree-column publication-style top + red serif + giant colored band with name at the bottom, brand/content/editorial 🟡 Average Photo Corporate Company Headshot templates/photo-corporate.htmlDark banner + circular headshot, sidebar with skill progress bars + vertical timeline + References, marketing/project/business 🟡 Average Photo Minimal Red Dot Headshot templates/photo-minimal.htmlRed accents + split serif name + circular headshot, sidebar with Awards + Skills, design/creative/portfolio 🟡 Average Template selection tip:Mass applications/passing machine screening → Classic/ATS or Ledger;For direct viewing/referrals/portfolio-oriented → the other sets are more impressive。
-
Render: read the selected template,keep its
<style>unchanged, replace the sample content with the user's real data, and delete unused sections (in the template, each<section>can be deleted as a whole block). Generate a self-contained single-file HTML. -
Also output an editable version: generate another
<姓名>-resume-<模板>-editable.html, addcontenteditable+ floating toolbar (seeprompts/editable-version.md). When printing, edit highlights and the toolbar are automatically hidden, so the PDF output is clean. -
Output: save both files as
<姓名>-resume-<模板>.htmland<姓名>-resume-<模板>-editable.html. By default, save to/Users/yanliu/Desktop/Claude skills/according to the user's global preference (other users should save to the current directory or be asked). -
Tell the user how to convert to PDF: open in browser →
Cmd+P→ choose "Save as PDF" as the destination → set margins to None/Default, check Background graphics → save. For the editable version, you can first click text in the browser to fine-tune, thenCmd+P; the toolbar has a ready-made button. -
Can switch templates and re-render: the structured data is already in hand; if the user says "try switching to Modern", just read another template and re-render, no need to re-collect.
Hard rules when rendering
- One page first: with <10 years of experience, keep it to 1 page; senior candidates can use 2 pages. If content exceeds this, prioritize trimming bullets, don't shrink it until it's unreadable.
- Don't touch the template CSS: the template's layout/color scheme is already designed; only replace the content text. If the user wants to adjust colors, ask separately.
- Delete empty sections as whole blocks: for sections that don't exist (such as Publications), delete them together with
<section>, don't leave empty headings. - Real data: any placeholder numbers in the examples must be replaced with the user's real data or
[待确认]; never leave template example numbers in the final product. - Contact information anonymization reminder: if the user wants to share it publicly, remind them whether the phone/address need to be masked.
Supporting files
schema/resume-data.md— standard structured fields (the intermediate format for all workflows)prompts/interview.md— conversational collection scriptprompts/linkedin-import.md— LinkedIn import and fallback planprompts/beautify.md— parsing and diagnosis of an existing resumeprompts/editable-version.md— the injection snippet that upgrades the final product into a browser-editable versionguides/writing-tips.md— bullet writing, quantification, ATS keywords, common mistakestemplates/*.html— 13 print-optimized templates