Token导航 LogoToken导航TokenDH.com
效率需要联网clawhub未标认证来源可访问clear审计通过

resume-assistant简历助理

Agent Skill

resume-assistant 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

584,663

周安装

23,424

GitHub Stars

10

下载量

189,266
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:resume-assistant(简历助理)
来源仓库:https://github.com/wscats/resume-assistant
安装命令:
openclaw skills install resume-assistant
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install resume-assistant

简介

帮助求职者完善、定制、评分和导出简历,支持多格式。

  • 适用于 OpenClaw 环境中的效率相关任务。
  • 通过 clawhub 安装,命令为 openclaw skills install resume-assistant。
  • 需确认权限范围和维护状态,注意是否触发文件读写。
  • 适用宿主包括 OpenClaw,接入前应确认版本、权限和运行环境要求。

SKILL.md

📝 Resume / CV Assistant

AI-powered clawbot skill for resume & CV polishing, job customization, multi-format export, and professional scoring.

Version: 1.0.0 · License: MIT · Repository: github.com/Wscats/resume-assistant


Overview

Resume / CV Assistant is a clawbot skill that helps job seekers create, refine, and optimize their resumes and CVs, while adding comprehensive checklist review, scoring, and multi-format export that neither project offers alone.


Usage in AI Agent

Quick Start

Resume / CV Assistant is a standard clawbot skill that can be loaded and invoked by any compatible AI Agent. Here are different integration approaches.

💬 Natural Language (Recommended)

You don't need to memorize any commands — simply describe what you need:

💬 "Create a resume for a software engineer position"
💬 "Polish my resume and fix any issues"
💬 "Optimize my resume for ATS"
💬 "Tailor my resume for this job description: [paste JD]"
💬 "Convert my resume to PDF"
💬 "Score my resume and tell me how to improve"
💬 "What's wrong with my resume?"
💬 "Here's my resume, can you help?"

The assistant understands your intent and automatically routes to the right workflow:

You sayAssistant does
"Create a resume for [role]"Asks for your background → builds a tailored resume
"Polish / Fix / Improve my resume"Runs 40+ checklist review → returns polished version
"Optimize for ATS"Checks ATS compatibility → optimizes keywords & format
"Tailor for this JD: ..."Analyzes JD → gap analysis → customized resume
"Convert to PDF / Word / ..."Exports to chosen format with professional template
"Score / Rate / Evaluate my resume"100-point scoring → strengths & improvement plan
"Here's my resume, help?"Scores first → suggests next steps

Example Conversations

Creating a new resume:

You:   Create a resume for a frontend engineer position at a startup

Bot:   I'd be happy to help! To get started, could you share:
       1. Your work experience (companies, roles, dates, key achievements)
       2. Education background
       3. Technical skills
       4. Any specific job posting you're targeting? (optional)

You:   I have 3 years at Shopify working on React...

Bot:   Here's your tailored resume:
       [generates complete resume]
       
       Would you like me to score, polish, or export it?

Quick improvement:

You:   Here's my resume, what do you think?
       [pastes resume]

Bot:   📊 Resume Score: 68/100 (Grade: C)
       Top 3 Issues:
       1. ❌ No quantified achievements
       2. ⚠️ Weak action verbs
       3. ⚠️ Missing keywords for target role
       
       Would you like me to polish it now?

You:   Yes, polish it

Bot:   [runs full polish with 40+ checklist items]

Job-specific tailoring:

You:   Tailor my resume for this job description:
       Senior Backend Engineer at Stripe
       Requirements: Go, distributed systems, payment APIs...

Bot:   🎯 Job Analysis Complete
       📊 Current Match: 62% → After Optimization: 89%
       [generates tailored version]

Option 1: Slash Commands via clawbot

For more precise control, use slash commands directly in a clawbot conversation:

/resume polish
Please polish my resume:

John Doe
Senior Frontend Engineer | 5 years experience
Skills: JavaScript, React, Vue, Node.js
...

Option 2: Integration in AI Agent Frameworks

1. Register the Skill

Register this project as a skill in your AI Agent:

{
  "skills": [
    {
      "name": "resume-assistant",
      "path": "./skills/resume-assistant",
      "manifest": "skill.json"
    }
  ]
}

2. Load Prompts

When handling resume-related requests, prompt files are loaded in this order:

1. prompts/system.md      ← Persona & quality standards (loaded first)
2. prompts/<command>.md    ← Load per command: specific instructions
3. templates/<style>.md    ← Load on demand (export command only)

3. Build the Complete Prompt

Example for /resume polish — here's how an AI Agent should construct the prompt:

# Python pseudocode
ROLE_SYS = "system"    # LLM message role constant
ROLE_USR = "user"      # LLM message role constant

def build_prompt(command, args):
    # Step 1: Load the skill persona prompt
    persona_prompt = load_file("prompts/system.md")

    # Step 2: Load command-specific prompt
    command_prompt = load_file(f"prompts/{command}.md")

    # Step 3: Combine prompts into LLM messages
    combined = persona_prompt + "\
\
" + command_prompt
    messages = [
        {"role": ROLE_SYS, "content": combined},
        {"role": ROLE_USR, "content": args["resume_content"]}
    ]

    # Step 4: Add optional parameters to user message
    if args.get("language"):
        messages[1]["content"] += f"\
\
Language: {args['language']}"

    return messages
// JavaScript pseudocode
const ROLE_SYS = 'system';  // LLM message role constant
const ROLE_USR = 'user';    // LLM message role constant

async function buildPrompt(command, args) {
  // Step 1: Load the skill persona prompt
  const personaPrompt = await loadFile('prompts/system.md');

  // Step 2: Load command-specific prompt
  const commandPrompt = await loadFile(`prompts/${command}.md`);

  // Step 3: Combine prompts into LLM messages
  const combined = `${personaPrompt}\
\
${commandPrompt}`;
  const messages = [
    { role: ROLE_SYS, content: combined },
    { role: ROLE_USR, content: args.resume_content }
  ];

  // Step 4: Add optional parameters
  if (args.language) {
    messages[1].content += `\
\
Language: ${args.language}`;
  }

  return messages;
}

Option 3: REST API

If your AI Agent exposes an HTTP API, invoke via RESTful endpoints:

# Polish a resume
curl -X POST https://your-agent-api.com/skills/resume-assistant/polish \
  -H "Content-Type: application/json" \
  -d '{
    "resume_content": "Your resume content...",
    "language": "en"
  }'

# Score a resume
curl -X POST https://your-agent-api.com/skills/resume-assistant/score \
  -H "Content-Type: application/json" \
  -d '{
    "resume_content": "Your resume content...",
    "target_role": "Senior Frontend Engineer",
    "language": "en"
  }'

# Customize for a job
curl -X POST https://your-agent-api.com/skills/resume-assistant/customize \
  -H "Content-Type: application/json" \
  -d '{
    "resume_content": "Your resume content...",
    "job_description": "Job description...",
    "language": "en"
  }'

# Export to a format
curl -X POST https://your-agent-api.com/skills/resume-assistant/export \
  -H "Content-Type: application/json" \
  -d '{
    "resume_content": "Your resume content...",
    "format": "html",
    "template": "modern"
  }'

Option 4: LangChain / LlamaIndex Integration

from langchain.tools import Tool

# Define tools based on skill.json commands
resume_tools = [
    Tool(
        name="resume_polish",
        description="Polish and improve resume with 40+ checklist items",
        func=lambda input: agent.run_skill(
            "resume-assistant", "polish",
            {"resume_content": input, "language": "en"}
        )
    ),
    Tool(
        name="resume_score",
        description="Score a resume on 100-point scale with improvement suggestions",
        func=lambda input: agent.run_skill(
            "resume-assistant", "score",
            {"resume_content": input, "language": "en"}
        )
    ),
    Tool(
        name="resume_customize",
        description="Customize resume for a specific job position",
        func=lambda input: agent.run_skill(
            "resume-assistant", "customize",
            {"resume_content": input.split("---JD---")[0],
             "job_description": input.split("---JD---")[1],
             "language": "en"}
        )
    ),
    Tool(
        name="resume_export",
        description="Export resume to Word/Markdown/HTML/LaTeX/PDF",
        func=lambda input: agent.run_skill(
            "resume-assistant", "export",
            {"resume_content": input, "format": "html", "template": "modern"}
        )
    ),
]

Command Routing

The AI Agent should route user requests to the correct command:

graph TD
    A["User Input"] --> B{"Contains<br/>slash command?"}
    B -- "Yes" --> C{"Parse command"}
    C -- "/resume polish" --> D["Load polish.md"]
    C -- "/resume customize" --> E["Load customize.md"]
    C -- "/resume export" --> F["Load export.md"]
    C -- "/resume score" --> G["Load score.md"]
    B -- "No" --> H{"Intent detection"}
    H -- "polish/improve/fix" --> D
    H -- "job/apply/match" --> E
    H -- "export/download/convert" --> F
    H -- "score/rate/evaluate" --> G
    D --> I["Build Prompt<br/>Call LLM"]
    E --> I
    F --> I
    G --> I
    I --> J["Return Result"]

Argument Validation

The AI Agent should validate arguments before invocation, referencing skill.json:

def validate_args(command, args):
    """Validate arguments against skill.json schema."""
    schema = load_skill_json()
    cmd_schema = next(c for c in schema["commands"] if c["name"] == command)

    for arg in cmd_schema["arguments"]:
        # Check required fields
        if arg["required"] and arg["name"] not in args:
            raise ValueError(f"Missing required argument: {arg['name']}")

        # Check enum constraints
        if "enum" in arg and arg["name"] in args:
            if args[arg["name"]] not in arg["enum"]:
                raise ValueError(
                    f"Invalid value for {arg['name']}: {args[arg['name']]}. "
                    f"Must be one of: {arg['enum']}"
                )

        # Apply defaults
        if arg["name"] not in args and "default" in arg:
            args[arg["name"]] = arg["default"]

    # Check max resume length
    max_len = schema["config"]["max_resume_length"]
    if len(args.get("resume_content", "")) > max_len:
        raise ValueError(f"Resume exceeds {max_len} character limit")

    return args

Commands

/resume polish

Run a 40+ item checklist across 8 categories and get a fully improved resume.

Arguments:

NameTypeRequiredDefaultDescription
resume_contentstringResume text (plain text or Markdown)
languagestringenen for English, zh for Chinese

What you get:

  • ✅/❌/⚠️ checklist results for every item (contact, summary, experience, education, skills, grammar, formatting, ATS)
  • Fully polished resume with strong action verbs and quantified results
  • Change summary categorized by priority: 🔴 Critical → 🟡 Major → 🟢 Minor → 💡 Suggestion
  • Action verb reference table and quantification guide

/resume customize

Tailor your resume for a specific job posting with gap analysis and keyword optimization.

Arguments:

NameTypeRequiredDefaultDescription
resume_contentstringResume text
job_descriptionstringTarget job description or job title
languagestringenen for English, zh for Chinese

What you get:

  • Job description breakdown (required skills, preferred skills, responsibilities, keywords)
  • Gap analysis matrix mapping every requirement to your resume
  • Customized resume with keywords naturally integrated
  • Keyword coverage report: before vs. after
  • Bonus: cover letter talking points + interview prep notes

/resume export

Convert your resume to Word, Markdown, HTML, LaTeX, or PDF with professional templates.

Arguments:

NameTypeRequiredDefaultDescription
resume_contentstringResume text (Markdown preferred)
formatstringword \markdown \html \latex \pdf
templatestringprofessionalprofessional \modern \minimal \academic

Templates:

TemplateStyleBest For
professionalNavy, serif headings, classic bordersFinance, consulting, law, healthcare
modernTeal accents, creative layout, emoji iconsTech, startups, product, marketing
minimalMonochrome, ultra-clean, content-denseSenior professionals, engineering
academicFormal serif, multi-page, publicationsFaculty, research, PhD applications

Export details:

  • HTML: Self-contained file with embedded CSS, 4 color themes, @media print optimized
  • LaTeX: Complete compilable .tex with XeLaTeX + CJK support
  • Word: Pandoc-optimized Markdown with YAML front matter + conversion command
  • PDF: Print-optimized HTML with A4 page dimensions + multiple conversion methods
  • Markdown: Clean, structured, version-control friendly

/resume score

Get a 100-point professional evaluation with specific improvement suggestions.

Arguments:

NameTypeRequiredDefaultDescription
resume_contentstringResume text
target_rolestringTarget role for fit assessment
languagestringenen for English, zh for Chinese

Scoring dimensions (100 points):

DimensionPointsEvaluates
Content Quality30Achievements, action verbs, relevance, completeness
Structure & Formatting25Layout, consistency, length, section order
Language & Grammar20Grammar, spelling, tone, clarity
ATS Optimization15Keywords, standard headings, format compatibility
Impact & Impression106-second test, career story, professionalism

Grade scale: A+ (95-100) → A (90-94) → B+ (85-89) → B (80-84) → C+ (75-79) → C (70-74) → D (60-69) → F (<60)

What you get:

  • Score breakdown with per-dimension justification
  • Top 3 strengths with specific examples from your resume
  • Priority-ranked improvements with Before → After rewrites
  • Role fit assessment (if target_role provided): fit score, competitive percentile, strengths, gaps
  • 5-step action plan with effort estimates

Recommended Workflow

┌──────────────────────────────────────────────────────┐
│                  Recommended Workflow                 │
├──────────────────────────────────────────────────────┤
│                                                      │
│  1. /resume score     ← Know where you stand         │
│     💬 "Score my resume"                             │
│          │                                           │
│          ▼                                           │
│  2. /resume polish    ← Fix all issues               │
│     💬 "Polish my resume"                            │
│          │                                           │
│          ▼                                           │
│  3. /resume customize ← Tailor per application       │
│     💬 "Tailor for this JD: ..."                     │
│          │                                           │
│          ▼                                           │
│  4. /resume export    ← Generate final files         │
│     💬 "Convert to PDF"                              │
│          │                                           │
│          ▼                                           │
│  5. /resume score     ← Verify improvement           │
│     💬 "Score my resume again"                       │
│                                                      │
└──────────────────────────────────────────────────────┘

Tips:

  1. Start with score if you have an existing resume — understand your baseline
  2. Polish to fix all fundamentals before customizing for a job
  3. Customize separately for each application — one-size-fits-all doesn't work
  4. Export last — get content perfect, then format
  5. Use Markdown as your working format — it converts cleanly to all others
  6. Score again after polish + customize to measure improvement

Project Structure

resume-assistant/
├── skill.json                    # Skill manifest (JSON)
├── skill.yaml                    # Skill manifest (YAML)
├── SKILL.md                      # This documentation
├── prompts/
│   ├── system.md                 # Persona definition & quality standards
│   ├── polish.md                 # Polish prompt: 40+ item checklist
│   ├── customize.md              # Customize prompt: gap analysis & keywords
│   ├── export.md                 # Export prompt: 5 formats × 4 templates
│   └── score.md                  # Score prompt: 100-point rubric
├── templates/
│   ├── professional.md           # Classic corporate template
│   ├── modern.md                 # Contemporary tech/startup template
│   ├── minimal.md                # Ultra-clean senior template
│   ├── academic.md               # Formal academic CV template
│   └── export/
│       ├── resume.html           # HTML template (4 CSS themes)
│       └── resume.tex            # LaTeX template (XeLaTeX + CJK)
└── examples/
    ├── sample-resume-en.md       # English sample (high quality)
    ├── sample-resume-zh.md       # Chinese sample (high quality)
    ├── sample-resume-weak.md     # Weak sample (for scoring demo)
    └── usage.md                  # Usage examples & workflow guide

Language Support

LanguageCodeFeatures
EnglishenFull support, US/UK conventions
ChinesezhFull support, 中英文混排规范, CJK export

Configuration

KeyValueDescription
max_resume_length10,000 charsMaximum input length
supported_languagesen, zhAvailable languages
supported_export_formatsword, markdown, html, latex, pdfAvailable export formats

scats

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

91.67%
按下载量换算173,500

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills