SuperAPI AI Directory

Boss Resume Analyzer

Office & productivity

View repository

Updated 10-15 17:32

About this skill

BOSS Zhipin Resume Analysis Skill

Automatically read BOSS Zhipin forwarded resume emails from the corporate mailbox, download PDF attachments, extract text, screen candidates against job requirements, and output a concise recruitment recommendation report.

Dependencies

  • imap-smtp-email skill: used to connect to the mailbox, search emails, and download attachments
    • Skill path:/agent/.agents/skills/imap-smtp-email/
    • Configuration file:/agent/.agents/skills/imap-smtp-email/.env
    • IMAP command:node scripts/imap.js <command>
  • pdftotext: used to extract text from PDFs (pre-installed on the system)
  • Job requirements document:/agent/hiring/job_requirements.md

Workflow

Step 1: Retrieve new resume emails

Search the mailbox for BOSS Zhipin resume emails.

⚠️ Important: Starting 2026-04-08, BOSS Zhipin has switched to directly pushing a single resume per email to INBOX

  • New format: one email per candidate, subject format "Candidate Name | X years, applying for Job Title | Shenzhen XX-XXK【BOSS Zhipin】", 1 PDF attachment
  • Old format (deprecated): HR batch-forwarded to Sent Messages, one email containing multiple PDFs
cd /agent/.agents/skills/imap-smtp-email

# 优先检查 INBOX(新简历直推到这里)
node scripts/imap.js check --limit 20 --mailbox INBOX

# 也检查 Sent Messages 和专用文件夹(旧格式兼容)
node scripts/imap.js check --limit 10 --mailbox "Sent Messages"
node scripts/imap.js check --limit 10 --mailbox "其他文件夹/BOSS直聘简历"

Screening method: the subject contains "BOSS Zhipin" or "applying for", and the attachments array is non-empty (contains .pdf attachments).

Important: record the UIDs of already-processed emails to /agent/hiring/processed_uids.jsonto avoid duplicate analysis.

Step 2: Download resume PDFs

node scripts/imap.js download <uid> --mailbox "<mailbox>" --dir /agent/hiring/resumes/

Step 3: Extract resume text

pdftotext "/agent/hiring/resumes/<filename>.pdf" - 2>/dev/null

Note: BOSS Zhipin PDF resumes usually contain a large amount of watermark noise (random string lines of 1-4 characters). After extraction, filter:

  • Remove lines containing only 1-4 alphanumeric characters
  • Remove long hash-like string lines that appear to be watermarks
  • Keep lines with actual content

Step 4: Read job requirements

Read /agent/hiring/job_requirements.md to obtain the following for currently open positions:

  • Must-have skills list
  • Nice-to-haves
  • Scoring weights
  • Red flag/yellow flag/green flag criteria

Step 5: Analyze each resume and generate a report

Evaluate each resume, focusing on the following dimensions:

  1. Education: school tier, relevance of major
  2. Work experience: years, industry match, tech stack match
  3. Core skills: overlap with the position's must-have skills
  4. Project highlights: whether there are hands-on projects related to core directions such as AI Agent/MCP/OT
  5. Risk factors: job-hopping frequency, industry span, whether expected salary exceeds the range

Step 6: Output the report

The report format is divided into two parts, and should be concise and forceful, not written like a thesis:

Part 1: Recommended candidates (the most suitable candidates)

For each candidate recommended for interview, output:

## ⭐ [候选人姓名] — 投递岗位:xxx

**为什么推荐:**
- 闪光点1(一句话说清楚)
- 闪光点2
- 闪光点3

**面试关注点:**
需要验证的地方,用1-2句话说明

**建议提问(3题):**
1. [具体的深度面试问题,不要泛泛而谈]
2. [紧扣候选人简历中的项目/经历来提问]  
3. [考察与岗位核心要求的匹配度]

Part 2: Quick overview of other candidates

## 📋 其他候选人(共X人)

| 姓名 | 投递岗位 | 结论 | 一句话原因 |
|------|---------|------|-----------|
| xxx  | xxx     | ❌不匹配 | 无AI经验,纯传统前端 |
| xxx  | xxx     | 🔶待定  | 有潜力但经验不足,可留意 |

Keep it concise. For unsuitable people, just state the reason clearly in one sentence; do not elaborate.

File path conventions

File Path
Job requirements /agent/hiring/job_requirements.md
Resume PDF /agent/hiring/resumes/
Processed UIDs /agent/hiring/processed_uids.json
Analysis report /agent/hiring/reports/YYYY-MM-DD.md

Step 7: Push to the WeCom group

After the analysis report is completed, push it to the specified group chat via the WeCom group bot Webhook.

Configuration

  • Webhook configuration file:/agent/hiring/.wecom_webhook
  • Push script:/agent/hiring/wecom_bot.sh

Push content

  1. Markdown summary: recommended/pending/not matched counts + Top candidate highlights (WeCom markdown limited to 4096 bytes)
  2. Full report file: upload the day's analysis report MD file
  3. Original resumes of recommended candidates: upload the PDF resumes of candidates recommended for interview

API description

# 发送Markdown消息
curl "$WEBHOOK_URL" -H 'Content-Type: application/json' -d '{"msgtype":"markdown","markdown":{"content":"..."}}'  

# 上传文件获取media_id
curl -X POST "$UPLOAD_URL" -F "media=@file.pdf;filename=file.pdf"

# 发送文件消息
curl "$WEBHOOK_URL" -H 'Content-Type: application/json' -d '{"msgtype":"file","file":{"media_id":"..."}}'  

Limits

  • Message frequency: 20 messages/minute (at least 2 seconds between each send)
  • markdown content max 4096 bytes
  • File size 5B~20MB
  • media_id valid for 3 days
  • WeCom webhook markdown does not support tables (non-v2), use quotes/lists instead

Execution

bash /agent/hiring/wecom_bot.sh /agent/hiring/reports/YYYY-MM-DD.md /agent/hiring/resumes/

Notes

  • BOSS Zhipin resume PDFs have watermarks; noise must be filtered when extracting text
  • IMAP Chinese SUBJECT search is unreliable; prioritize filtering by attachment count and sender
  • Some resumes are image-only PDFs (e.g., Wang Xu's resume); pdftotext cannot extract them, so they must be marked as "unparseable"
  • One email may contain multiple resumes (e.g., 25 packed into one email)
  • Remember to update processed_uids.json to avoid duplicate processing
  • After the report is generated, automatically push it to the WeCom group (Step 7), and send the resume attachments of recommended candidates together