CV-Assistant 是一款基于 Playwright 浏览器自动化 + 本地知识库 + 大模型 Agent 技术栈的智能简历管理与求职投递助手。该系统提供从简历解析、定制生成、职位抓取到自动投递的完整求职自动化能力,帮助用户高效管理简历并提升求职成功率。
核心定位:通过 AI 技术实现求职全流程自动化,降低用户时间成本,提升简历与职位的匹配度。
| 功能模块 | 功能描述 | 技术实现 |
|---|---|---|
| 简历解析 | 从 Word/PDF 提取结构化信息 | minimax-docx/pdf + 视觉能力 |
| 知识库管理 | 构建和维护 CV 知识库 | 本地 JSON 文件存储 |
| 简历优化 | 基于 Agent + principles.md 原则智能优化 | 大模型 Agent 完全处理 |
| 简历生成 | 基于 JD 生成定制简历(保持原排版) | 内容整理 + 排版分离 |
| JD 抓取 | 从多平台抓取职位信息 | Playwright 浏览器自动化 |
| 智能扩展搜索 | 根据目标公司和职位智能扩展搜索范围 | 多平台扩展算法 |
| 自动投递 | 自动化投递流程管理(含反检测机制) | 浏览器自动化 + 反检测 |
CV-Assistant 采用内容与排版分离的创新架构设计:
┌─────────────────────────────────────────────────────────────────────────┐
│ 内容与排版分离架构 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 内容整理 │ ───▶ │ 内容优化 │ ───▶ │ 排版输出 │ │
│ │ (Agent/AI) │ │ (Agent/AI) │ │(CVFormatter)│ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │principles.md│ │ principles │ │ 内联Style │ │
│ │ 用户原则机制 │ │ 大模型处理 │ │ (原样式保持)│ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
-
内容整理 (Agent/AI)
- 由大模型根据
principles.md原则整理信息 - 结合用户特定原则 (
user_principles.py)
- 由大模型根据
-
内容优化 (Agent/AI) - 完全由大模型处理
- 根据 principles.md 原则进行深度优化
- 不再使用脚本算法,完全依赖 Agent 能力
-
排版模块 (
cv_formatter.py)- 参考微信模板转换器机制
- 使用内联 style 保证排版一致性
- 支持保持原简历排版样式
-
原简历样式保持
- 视觉能力分析:上传简历截图,AI 提取布局、字体、配色
- 文档读取分析:从 PDF/DOCX 提取边距、字号、行距等样式参数
flowchart TB
subgraph User["用户层"]
UI[用户界面]
end
subgraph Core["核心功能层"]
CVP[CV Parser<br/>简历解析]
KB[Knowledge Base<br/>知识库]
CVO[CV Optimizer<br/>简历优化]
CVG[CV Generator<br/>简历生成]
JDS[JD Scraper<br/>JD抓取]
JSE[Job Expander<br/>智能搜索]
JD[JD Delivery<br/>自动投递]
end
subgraph Agent["AI Agent 层"]
LLM[大模型 Agent]
PR[Principles Engine<br/>原则引擎]
UP[User Principles<br/>用户原则管理]
end
subgraph Infrastructure["基础设施层"]
PF[Playwright<br/>浏览器自动化]
DB[(本地JSON<br/>知识库)]
VI[Vision Interface<br/>视觉能力]
FM[CV Formatter<br/>排版输出]
SD[Stealth Utils<br/>反检测机制]
end
subgraph External["外部服务"]
DOCX[minimax-docx]
PDF[minimax-pdf]
BOSS[Boss直聘]
LP[猎聘]
LI[LinkedIn]
end
UI --> Core
CVP -->|解析简历| External
CVP --> VI
KB <--> DB
CVG --> LLM
CVG --> PR
CVG --> UP
CVG --> FM
JDS --> PF
JSE --> PF
JD --> PF
JD --> SD
PF --> BOSS
PF --> LP
PF --> LI
flowchart LR
subgraph Input["输入"]
RES[原简历文件]
JD[职位描述 JD]
UN[用户名]
end
subgraph Process["处理流程"]
SP[样式解析]
CG[内容整理]
CO[内容优化]
FO[排版输出]
end
subgraph Output["输出"]
PDF[PDF简历]
DOCX[Word简历]
HTML[HTML简历]
end
RES --> SP
JD --> CG
UN --> CG
SP --> CG
CG --> CO
CO --> FO
FO --> PDF
FO --> DOCX
FO --> HTML
flowchart TB
subgraph CVAssistant["CV-Assistant 主技能"]
CVG[cv_generator.py<br/>简历生成主模块]
end
subgraph ExternalSkills["外部技能"]
DOCX[minimax-docx<br/>文档读取]
PDF[minimax-pdf<br/>PDF读取]
end
subgraph CoreModules["核心模块"]
KB[CVKnowledge<br/>知识库]
UP[UserPrinciples<br/>用户原则]
FM[CVFormatter<br/>排版输出]
end
subgraph AI["AI 能力"]
LLM[大模型 Agent]
VI[视觉理解]
end
subgraph Browser["浏览器自动化"]
PF[Playwright]
ST[Stealth Utils<br/>反检测]
end
CVG --> DOCX
CVG --> PDF
CVG --> KB
CVG --> UP
CVG --> FM
FM --> VI
FM --> LLM
CVG --> PF
PF --> ST
文件: cv_parser.py
功能:
- 从 Word/PDF 提取结构化信息
- 优先调用外部技能读取(minimax-docx/minimax-pdf)
- 备用使用 python-docx、PyMuPDF/pdfplumber
- 视觉能力分析样式
提取字段:
- 个人信息(姓名、电话、邮箱、GitHub、LinkedIn)
- 教育经历(学校、学位、专业、GPA、荣誉)
- 工作经历(公司、职位、时间、描述、技术栈、成就)
- 项目经历(名称、角色、描述、技术栈、亮点)
- 技能标签、证书认证、荣誉奖项
文件: cv_knowledge.py
存储方式: 本地 JSON 文件 (~/.cv-assistant/knowledge/)
功能:
- 维护用户简历信息的结构化存储
- 支持增删改查操作
- 版本管理历史记录
文件: cv_generator.py
核心功能:
- 协调各模块完成简历生成
- 缺口检测:分析 JD 与知识库的技能差距
- 智能问答:引导用户补充缺失信息
Gap Detection 配置:
{
"severity_thresholds": {
"high": 0.8,
"medium": 0.5,
"low": 0.0
},
"auto_prompt": true,
"max_questions_per_session": 5
}文件: cv_formatter.py
设计原则:
- 模块化:每个简历模块独立处理
- 内联 Style:所有样式使用内联 style 属性
- 可配置:支持自定义排版参数
- 保持原样式:优先保持原简历的排版风格
默认配置:
- 页面:A4 (210mm × 297mm)
- 边距:20mm
- 字体:Microsoft YaHei / PingFang SC
- 行高:1.6
功能:
- 按姓名识别用户,分别管理原则配置
- 自动保存用户的特殊优化要求
- 支持个性化定制
存储结构:
~/.cv-assistant/user_principles/
├── zhangsan_principles.json
├── zhangsan_profile.json
├── lisi_principles.json
└── default_principles.json
文件: jd_scraper.py
支持的平台:
| 平台 | 代码 | 说明 |
|---|---|---|
| Boss直聘 | boss | 国内主流招聘平台 |
| 猎聘 | liepin | 高端人才招聘 |
| 需海外网络 | ||
| 前程无忧 | 51job | 综合招聘平台 |
| 智联招聘 | zhaopin | 综合招聘平台 |
技术实现: Playwright 浏览器自动化
文件: stealth_utils.py
核心功能:
- HumanMouseSimulator: 模拟人类鼠标移动(Bezier 曲线、可变速度、自然轨迹)
- RateLimiter: 控制操作频率,避免检测
- CaptchaDetector: 检测和处理各种验证码类型
反检测策略:
- 随机化请求间隔(5-15秒)
- 模拟真人操作轨迹
- 自动更换 User-Agent
- 失败自动重试(最多3次)
相比传统的 STAR 原则,CV-Assistant 采用更先进的 PART 原则:
| 要素 | 说明 |
|---|---|
| Problem(问题) | 先描述遇到的具体问题 |
| Approach(方法) | 解释采取的策略和方法 |
| Result(结果) | 展示取得的成果(数据化) |
| Take away(收获) | 强调学到的经验和应用 |
- 数据化成果 - 用数字体现价值
- 匹配岗位关键词 - 对照 JD 要求修改表述
- 突出核心经历 - 最相关的放最前面
- 拒绝口语化 - 使用动词开头
- 去掉无关经历 - 保证岗位垂直导向
- 格式统一清爽 - 字体、间距规整
- 排版设计越简单越好
- 简历篇幅不超过一页
- 层级清晰,模块之间有明显分界线
- 学校名称、职位名称必须加粗显示
flowchart TB
subgraph LocalStorage["本地存储 (~/.cv-assistant)"]
KB[knowledge/<br/>知识库]
UP[uploads/<br/>上传文件]
GD[generated/<br/>生成简历]
CD[cache/<br/>缓存]
BD[browser_data/<br/>浏览器数据]
LG[logs/<br/>日志]
UG[user_principles/<br/>用户原则]
end
subgraph Config["配置文件"]
CFG[config.json]
SET[settings.json]
CRT[credentials.enc<br/>加密凭证]
end
数据目录结构:
~/.cv-assistant/
├── knowledge/ # 知识库数据
│ ├── cv_master.json # 主简历数据
│ └── versions/ # 版本历史
├── uploads/ # 上传文件
├── generated/ # 生成的简历
├── cache/ # 缓存文件
│ └── jd_cache/ # JD 缓存
├── browser_data/ # 浏览器数据
├── user_principles/ # 用户原则
├── logs/ # 日志文件
├── settings.json # 设置
└── credentials.enc # 加密凭证
-
内容与排版分离架构
- 业界创新的设计理念
- 大模型负责内容优化,排版模块负责样式保持
- 确保生成的简历既专业又保持原有风格
-
AI 驱动的简历优化
- 完全基于大模型 Agent 处理
- 融合专业简历优化原则(PART 原则)
- 支持个性化用户原则定制
-
强大的反检测机制
- 模拟人类操作行为
- 多种验证码识别与处理
- 提高自动投递成功率
-
多平台职位抓取
- 支持国内主流招聘平台
- 统一的抓取接口设计
- 智能扩展搜索能力
| 维度 | CV-Assistant | 竞品 |
|---|---|---|
| 简历生成 | AI 定制 + 原排版保持 | 模板填充 |
| 优化方式 | Agent 完全处理 | 规则匹配 |
| 投递自动化 | 完整流程 + 反检测 | 单一投递 |
| 数据存储 | 本地隐私保护 | 云端存储 |
| 扩展性 | 模块化设计 | 固定功能 |
- 求职者 - 一站式完成简历优化、职位搜索、自动投递
- HR 从业者 - 批量处理候选人简历
- 职业教练 - 辅助客户进行简历优化
- 猎头 - 高效筛选和投递候选人简历
CV-Assistant 通过创新的内容与排版分离架构,结合大模型 Agent 智能优化和Playwright 浏览器自动化技术,为用户提供了一个高效、隐私保护的智能求职助手。其核心价值在于:
- ✅ 一站式求职流程自动化
- ✅ AI 驱动的简历定制优化
- ✅ 多平台职位智能抓取
- ✅ 强大的反检测投递机制
- ✅ 本地化数据隐私保护
- ✅ 模块化架构易于扩展
文档生成时间: 2026-04-12 项目版本: CV-Assistant v2026-04