GLM-V-Resume-Screen

v1.0.3

Screen and evaluate resumes against criteria using ZhiPu GLM-V multimodal model. Reads multiple resume files (PDF/DOCX/TXT), compares against user-defined sc...

1· 375·0 current·0 all-time
byJared Wen@jaredforreal
Security Scan
Capability signals
Requires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description, required env var (ZHIPU_API_KEY), and included script all align: the tool sends resumes to Zhipu's API for multimodal screening. Minor inconsistency: SKILL.md/CLI text and the script disagree about the default model (SKILL.md mentions glm-4.6v; script DEFAULT_MODEL is 'glm-5v-turbo' and MODEL_MAX_TOKENS maps only glm-4.6v variants). This is an implementation/configuration mismatch but not a clear security misalignment.
Instruction Scope
Runtime instructions and script are scoped to reading resume files, converting local PDFs to base64 images (requires PyMuPDF), assembling a payload, and POSTing to https://open.bigmodel.cn/api/paas/v4/chat/completions. That behavior is expected for the stated purpose. Important privacy note: the script will send full resume contents (including base64 images for local PDFs) to the third‑party API — this is expected but sensitive. SKILL.md also mandates displaying the full returned Markdown table exactly as returned, which increases exposure of screening output.
Install Mechanism
No install spec is provided (instruction-only plus a Python script). The only additional runtime dependency is PyMuPDF if local PDF support is needed, which the SKILL.md mentions. No downloads from unknown hosts or installer scripts are present.
Credentials
Only a single required environment variable (ZHIPU_API_KEY) is requested — appropriate for calling Zhipu's API. However, the SKILL.md explicitly states the key is shared with other Zhipu skills (meaning any other skill reading the same env var can use the key). Consider the sensitivity of granting that key and whether it should be isolated per-skill. Also consider that resumes (PII) will be transmitted using that key to the external service.
Persistence & Privilege
always is false and the skill does not request elevated platform privileges or modify other skills. It only optionally writes output files specified by the user. No persistent or unusual privileges are requested.
Assessment
This skill appears to do what it says: it uploads resumes (URLs or local PDFs converted to base64 images) to Zhipu's API and returns a Markdown screening table. Before installing or using it, consider: (1) Privacy: resumes often contain personal data — this tool will send full resume content to open.bigmodel.cn; verify the service's data retention and usage policy and obtain candidate consent if required. (2) API key scope: ZHIPU_API_KEY is the only required secret, but storing it in shared config (openclaw.json or a common env var) gives other Zhipu skills access — isolate the key if you need tighter control. (3) Implementation quirks: the script's default model ('glm-5v-turbo') differs from the SKILL.md text (glm-4.6v); review/adjust the model and max_tokens settings before batch runs. (4) Test safely: run with non-sensitive/test resumes first, and prefer remote URLs when possible to avoid installing PyMuPDF or sending large base64 images. (5) If you need stricter data control, consider redacting resumes or running screening locally with a model you host privately.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🧾 Clawdis
EnvZHIPU_API_KEY
Primary envZHIPU_API_KEY
latestvk97dd2885z7jkskce47zejdff984wkxv
375downloads
1stars
4versions
Updated 3d ago
v1.0.3
MIT-0

GLM-V Resume Screening Skill

Batch-read resumes and screen candidates against your criteria using the ZhiPu GLM-V multimodal model.

When to Use

  • Filter/screen multiple resumes against specific criteria
  • User mentions "筛选简历", "评估候选人", "简历筛选", "resume screening", "filter candidates"
  • Compare candidates for a job position
  • Batch-evaluate job applications

Supported Input Types

TypeFormatsMax CountSource
Resume (URL)pdf, docx, txt50URL
Resume (Local)pdf onlypages ≤ 50 totalLocal path

Local PDF / 本地 PDF: Local PDF files are converted page-by-page into images (base64) before sending to the model. PyMuPDF is required (pip install PyMuPDF). URL files support full formats including pdf/docx/txt. 本地 PDF 会自动逐页转为图片(base64)传给模型,需要安装 PyMuPDFpip install PyMuPDF)。URL 文件支持 pdf/docx/txt 等全格式。

📋 Output Display Rules (MANDATORY)

After running the script, you must display the complete screening result (Markdown table) exactly as returned. Do not summarize, truncate, or only say "screening completed". Users need each candidate's detailed analysis to decide.

  • Show the full Markdown table (index, name, pass/fail, match level, reasoning)
  • If output was saved (-o), provide the file path and show file content
  • If screening output is empty, explain why

Resource Links

ResourceLink
Get API Keyhttps://bigmodel.cn/usercenter/proj-mgmt/apikeys
API DocsChat Completions / 对话补全

Prerequisites

API Key Setup / API Key 配置(Required / 必需)

This script reads the key from the ZHIPU_API_KEY environment variable and shares it with other Zhipu skills. 脚本通过 ZHIPU_API_KEY 环境变量获取密钥,与其他智谱技能共用同一个 key。

Get Key / 获取 Key: Visit Zhipu Open Platform API Keys / 智谱开放平台 API Keys to create or copy your key.

Setup options / 配置方式(任选一种):

  1. OpenClaw config (recommended) / OpenClaw 配置(推荐): Set in openclaw.json under skills.entries.glmv-resume-screen.env:

    "glmv-resume-screen": { "enabled": true, "env": { "ZHIPU_API_KEY": "你的密钥" } }
    
  2. Shell environment variable / Shell 环境变量: Add to ~/.zshrc:

    export ZHIPU_API_KEY="你的密钥"
    

💡 If you already configured another Zhipu skill (for example zhipu-tools or glmv-caption), they share the same ZHIPU_API_KEY, so no extra setup is needed. 💡 如果你已为其他智谱 skill(如 zhipu-toolsglmv-caption)配置过 key,它们共享同一个 ZHIPU_API_KEY,无需重复配置。

How to Use

Basic Screening

python scripts/resume_screen.py \
  --files "https://example.com/resume1.pdf" "https://example.com/resume2.docx" \
  --criteria "3年以上工作经验,有Python开发经验,有大型项目管理经验"

Save as Markdown

python scripts/resume_screen.py \
  --files "https://example.com/resume1.pdf" "https://example.com/resume2.docx" \
  --criteria "本科以上学历,5年后端开发经验" \
  --output result.md

Save as JSON

python scripts/resume_screen.py \
  --files "https://example.com/resume1.pdf" "https://example.com/resume2.docx" \
  --criteria "有机器学习经验" \
  --output result.json --pretty

Custom System Prompt

python scripts/resume_screen.py \
  --files "https://example.com/resume1.pdf" \
  --criteria "前端开发岗位,3年经验" \
  --system-prompt "你是一位资深技术面试官,特别关注候选人的项目深度和技术选型能力"

Output Example

The model outputs a Markdown table like this:

| 序号 | 候选人姓名 | 是否符合    | 符合程度 | 原因分析                                                    |
| ---- | ---------- | ----------- | -------- | ----------------------------------------------------------- |
| 1    | 张三       | ✅ 符合     | 高       | 5年后端经验,熟练使用Python和Django,主导过3个大型项目      |
| 2    | 李四       | ❌ 不符合   | 低       | 仅1年开发经验,主要使用Java,无Python经验                   |
| 3    | 王五       | ⚠️ 部分符合 | 中       | 3年Python经验但无项目管理经验,技术栈匹配但缺乏大型项目经历 |

CLI Reference

python scripts/resume_screen.py --files FILE [FILE...] --criteria CRITERIA [OPTIONS]
ParameterRequiredDescription
--files, -fResume file URLs (pdf/docx/txt, URL only, max 50)
--criteria, -cScreening criteria text
--model, -mNoModel name (default: glm-4.6v)
--system-prompt, -sNoCustom system prompt (default: professional HR assistant)
--temperature, -tNoSampling temperature 0-1 (default: 0.3)
--max-tokensNoMax output tokens (default: 4096)
--output, -oNoSave result to file (.md for markdown, .json for JSON)
--prettyNoPretty-print JSON output

Error Handling

API key not configured: → Guide user to configure ZHIPU_API_KEY

Authentication failed (401/403): → API key invalid/expired → reconfigure

Rate limit (429): → Quota exhausted → wait and retry

Local path provided: → Error: only URLs supported

Content filtered:warning field present → content blocked by safety review

Timeout: → Resumes too large or too many → reduce file count

Comments

Loading comments...