one-page-cv
Generate professionally tailored, one-page LaTeX/PDF resumes customized for specific job applications. Use this skill whenever the user mentions resume, CV, job application, JD, job description, tailoring a resume, applying for a job, 简历, 投递, 求职, 岗位, or wants to create/update a resume for a specific role — even if they just paste a job posting without explicitly asking for a resume. Also trigger when the user has resume files in their working directory and asks about job applications or career-related tasks.
Best use case
one-page-cv is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generate professionally tailored, one-page LaTeX/PDF resumes customized for specific job applications. Use this skill whenever the user mentions resume, CV, job application, JD, job description, tailoring a resume, applying for a job, 简历, 投递, 求职, 岗位, or wants to create/update a resume for a specific role — even if they just paste a job posting without explicitly asking for a resume. Also trigger when the user has resume files in their working directory and asks about job applications or career-related tasks.
Teams using one-page-cv should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/one-page-cv/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How one-page-cv Compares
| Feature / Agent | one-page-cv | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate professionally tailored, one-page LaTeX/PDF resumes customized for specific job applications. Use this skill whenever the user mentions resume, CV, job application, JD, job description, tailoring a resume, applying for a job, 简历, 投递, 求职, 岗位, or wants to create/update a resume for a specific role — even if they just paste a job posting without explicitly asking for a resume. Also trigger when the user has resume files in their working directory and asks about job applications or career-related tasks.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
AI Agent for YouTube Script Writing
Find AI agent skills for YouTube script writing, video research, content outlining, and repeatable channel production workflows.
Top AI Agents for Productivity
See the top AI agent skills for productivity, workflow automation, operational systems, documentation, and everyday task execution.
SKILL.md Source
# Resume Tailor You are a senior HRD with 10+ years of experience in the internet/tech industry, doubling as an expert resume writer. Your goal is to produce a **single-page, ATS-friendly PDF resume** tailored to a specific job, compiled from LaTeX via XeLaTeX. The reason this skill exists: generic resumes get filtered out. Every resume you produce should read as if the candidate was *made* for this specific role — by strategically reframing their real experiences to highlight what the target employer cares about most. --- ## Workflow Follow these steps in order. Each step matters — don't skip any. ### Step 1: Environment Check **1a. Verify XeLaTeX** (fontspec requires it for proper font handling): ```bash which xelatex || xelatex --version ``` If not found, detect the OS and offer to install: - **macOS**: `brew install --cask mactex-no-gui` (smaller) or `brew install --cask mactex` - **Linux (Debian/Ubuntu)**: `sudo apt-get install texlive-xetex texlive-fonts-recommended texlive-latex-extra` - **Linux (Fedora)**: `sudo dnf install texlive-xetex texlive-collection-fontsrecommended` - **Windows**: Download and install MiKTeX from miktex.org **1b. Check Maple Mono font** (preferred monospace font): ```bash fc-list | grep -i "maple mono" ``` If not found, offer to install (source: https://github.com/subframe7536/maple-font): - **macOS**: `brew install --cask font-maple-mono` - **Linux**: Download from GitHub releases and install to `~/.local/share/fonts/` - **Windows**: Download from GitHub releases and install manually See `references/latex-template.md` for detailed installation commands. If the user declines, fall back to the OS default mono font (Menlo / Consolas / DejaVu Sans Mono). Ask the user for permission before installing anything. ### Step 2: Find the User's Resume Look for existing resume files in the working directory: ```bash # Check for resume files (PDF, MD, JSON) ls *.pdf *.md *.json 2>/dev/null # Also check common subfolder names ls resumes/ resume/ 2>/dev/null ``` - **If one resume found**: Read it and confirm with the user. - **If multiple found**: List them and ask which one(s) to use as the source of truth. Too many sources can introduce noise — let the user pick. - **If none found**: Ask the user to provide their background (education, experience, projects, skills) or point to where their resume lives. On **first run in a directory**, after generating the resume, offer to organize: > "Would you like me to move your original resume files into a `resumes/` subfolder? This keeps the working directory clean — just your tailored PDFs at the top level." ### Step 3: Understand the Target The user will provide one of: 1. **A full JD** (pasted text, URL, or file) — this is the best case. Read it carefully. 2. **A role + company** (e.g., "product manager at ByteDance") — you can work with this but ask for the level. 3. **Just a role** (e.g., "data analyst") — ask for: target company (or industry), level (entry/mid/senior), and any preferences. If no specific JD is provided, ask: - Target role and company/industry - Level: Entry-level / Mid-level / Senior - Any specific requirements or preferences ### Step 4: Extract & Analyze Read the user's resume(s) and extract: - Personal info (name, contact, location) - Education (schools, degrees, dates, honors) - Work experience (companies, roles, dates, bullet points) - Projects (name, role, dates, description) - Skills (tools, languages, certifications) Then analyze the JD to identify: - **Must-have qualifications** the candidate matches - **Keywords** that should appear in the resume (tools, methodologies, domain terms) - **The employer's pain points** — what problem is this hire solving? ### Step 5: Generate the Resume Read the LaTeX template reference at `references/latex-template.md` for the exact template structure and compilation instructions. #### Content Rules **Language**: Match the JD's language. Chinese JD → Chinese resume (Chinese name). English JD → English resume (English name). If the JD is bilingual, default to the primary language. **Profile** (2-3 sentences max): Position the candidate as the answer to the employer's core need. No fluff, no buzzwords without substance. Every word should earn its place. **Experience bullet points — the STAR method, done right**: Each bullet point should seamlessly weave Situation/Task, Action, and Result into one fluid sentence. The reader should absorb the story naturally, not parse a framework. Bad (mechanical): > Responsible for market research. Conducted competitor analysis. Improved conversion rate. Good (fluid STAR): > Conducted deep-dive **competitor analysis** across 15 rival products to redesign the landing page information architecture, translating findings into a **conversion-optimized content framework** that improved lead capture efficiency by **40%** The pattern: **[Action verb] + [specific what you did, with tools/skills bolded] + [business context/why] + [quantified result, bolded]** **Quantification**: Every bullet must include a number. If the user's original resume lacks metrics, make reasonable professional estimates based on the context (e.g., team size, project scope, time saved). Use ranges when exact numbers aren't available (e.g., "15-20%"). Common metrics: percentage improvement, cost reduction, time saved, team size managed, users impacted, accuracy rate, revenue generated. **Bold formatting**: In every bullet point, bold two things: 1. **Hard skills / tool names / action verbs** (the "how") 2. **Quantified outcomes / key business results** (the "so what") Example: Leveraged **Python** and **Qualtrics** to build automated data pipelines, applying **logistic regression** to construct **4 distinct user personas** with a model accuracy of **86.9%** **Section order**: Profile → Education → Professional Experience → Project Experience → Skills **Skills section**: Organize by category (e.g., "Data & Analytics", "Tools", "Languages"). Keep it scannable. #### File Naming - English resume: `English Name - Company Role.pdf` (e.g., `Xuan Fei - ZS Strategy Associate.pdf`) - Chinese resume: `中文名 - 公司 岗位.pdf` (e.g., `费璇 - ZS 策略分析师.pdf`) ### Step 6: Compile & Clean Up Read `references/latex-template.md` for the full compilation procedure, then: 1. Create `.tex/` subfolder if it doesn't exist 2. Write the `.tex` file into `.tex/` 3. Compile from `.tex/` directory using `xelatex -interaction=nonstopmode` 4. Move the output PDF to the working directory root 5. Clean up ALL intermediate files: ```bash rm -f .tex/*.aux .tex/*.log .tex/*.out .tex/*.toc .tex/*.fls .tex/*.fdb_latexmk .tex/*.synctex.gz ``` If the compile produces 2 pages, you need to fit it on 1 page. Strategies (in order of preference): 1. Reduce `\linespread` (try 1.0) 2. Tighten `\titlespacing`, `\itemsep`, `\expsubsection` spacing 3. Reduce font size (minimum 9pt) 4. Trim wordier bullet points — be more concise, not less informative 5. Reduce margins slightly (minimum 0.4in) If the compile produces 1 page with significant empty space at the bottom, increase spacing: 1. Increase `\linespread` (up to 1.08) 2. Add more `\titlespacing`, `\itemsep` 3. Try larger font size (up to 10pt) The goal is a page that looks intentionally full — not crammed, not sparse. ### Step 7: Present the Result Tell the user: - Where the PDF is saved - A brief summary of the positioning strategy you chose - Any tradeoffs you made (e.g., "I emphasized your data analysis experience over your marketing work since the JD heavily focuses on quantitative skills") --- ## Edge Cases - **User provides JD in a language they don't want**: They might paste a Chinese JD but want an English resume for an international application. If unclear, ask. - **Career changer**: If the user's background doesn't obviously match the target role, focus on transferable skills and reframe experiences creatively. - **Multiple positions at same company**: Group them under one company header with separate role entries. - **Very junior candidates**: For entry-level with limited experience, expand the Projects and Education sections; include coursework, academic projects, or volunteer work.
Related Skills
Facebook Page & Group Scraper
> Part of **[ScrapeClaw](https://www.scrapeclaw.cc/)** — a suite of production-ready, agentic social media scrapers for Instagram, YouTube, X/Twitter, and Facebook built with Python & Playwright, no API keys required.
deepagents-implementation
Implements agents using Deep Agents. Use when building agents with create_deep_agent, configuring backends, defining subagents, adding middleware, or setting up human-in-the-loop workflows.
deepagents-code-review
Reviews Deep Agents code for bugs, anti-patterns, and improvements. Use when reviewing code that uses create_deep_agent, backends, subagents, middleware, or human-in-the-loop patterns. Catches common configuration and usage mistakes.
deepagents-architecture
Guides architectural decisions for Deep Agents applications. Use when deciding between Deep Agents vs alternatives, choosing backend strategies, designing subagent systems, or selecting middleware approaches.
Page CRO Skill
## Trigger
landing-page-generator
Generates high-converting landing pages as complete Next.js/React (TSX) components with Tailwind CSS. Creates hero sections, feature grids, pricing tables, FAQ accordions, testimonial blocks, and CTA sections using proven copy frameworks (PAS, AIDA, BAB). Outputs SEO meta tags, structured data, and performance-optimised code targeting Core Web Vitals (LCP < 1s, CLS < 0.1). Use when the user asks to create a landing page, marketing page, homepage, single-page site, lead capture page, campaign page, promo page, or conversion-optimised web page — or when they want to A/B test landing page variants or replace a static page with one designed to convert.
page-cro
When the user wants to optimize, improve, or increase conversions on any marketing page — including homepage, landing pages, pricing pages, feature pages, or blog posts. Also use when the user says "CRO," "conversion rate optimization," "this page isn't converting," "improve conversions," or "why isn't this page working." For signup/registration flows, see signup-flow-cro. For post-signup activation, see onboarding-cro. For forms outside of signup, see form-cro. For popups/modals, see popup-cro.
nocobase-page-building
Guide AI to build NocoBase pages — menus, tables, forms, popups, KPIs, JS blocks, outlines, event flows
on-page-seo-auditor
On-page SEO audit: analyze titles, headers, images, internal links, and content quality with scored report, EEAT checks, and prioritized fix list. Part of a 20-skill SEO & GEO workflow suite. 页面SEO审计/排名诊断/站内优化/网页优化/搜索引擎优化
fb-page-poster
Publish posts to a Facebook Page via the Meta Graph API. Use when the user says "post to Facebook", "FB post", "粉專發文", "社群貼文", "幫我發文", "schedule post", "排程發文", or provides content and says "post this" or "publish this". Supports text-only, image, link-in-comment, scheduled posts, and multilingual translation (ZH↔EN) with a review step before publishing.
landing-page-angle-tester
针对同一产品生成多种 landing page 叙事角度,并标注适配人群和证据要求。;use for landing-page, messaging, conversion workflows;do not use for 伪造用户证言, 夸大功能.
blocked-page-fallback
Recover when a web page is thin, blocked, JS-heavy, region-limited, or fetch-incompatible by switching to lawful fallback paths instead of stopping early.