recruitment-processor
SKILL.md
招聘信息处理Skill
任务目标
- 本Skill用于:批量处理包含招聘信息的markdown文档,自动识别图片内容(包括本地图片和在线图片链接),提取关键信息,根据条件筛选并生成结构化报告
- 能力包含:文件路径识别与扫描、自适应分批处理、图片链接识别、图片下载、图片识别与OCR、文本理解、信息提取、条件匹配、进度跟踪、完整性验证、报告生成
- 触发条件:用户提供招聘markdown文档(单个文件或文件夹)及筛选条件
前置准备
- 依赖说明:图片下载功能依赖requests库,版本>=2.28.0
操作步骤
标准流程
阶段一:文件扫描与规划
-
输入路径识别
- 判断用户提供的路径是:
- 单个文件:直接添加到处理列表
- 文件夹:扫描文件夹内所有markdown文件
- 记录文件类型和路径
- 判断用户提供的路径是:
-
文件扫描(针对文件夹)
- 如果是文件夹,扫描该目录下的所有markdown文件
- 支持的文件扩展名:
.md,.markdown - 递归扫描子目录(可选,根据用户需求决定)
- 记录所有文件的完整路径
- 必须扫描所有文件,不得遗漏
-
数量评估与分批决策
- 统计需要处理的文档总数
- 自适应分批规则:
- 文档数量 ≤ 10:一次性处理所有文档
- 文档数量 > 10:分批处理,每批处理10个文档
- 计算需要分多少批
- 记录批次规划:总批次、每批文件列表
-
进度跟踪初始化
- 记录以下信息:
- 总文件数
- 已处理数(初始为0)
- 待处理数(初始为总文件数)
- 当前批次(初始为0)
- 成功处理数(初始为0)
- 失败处理数(初始为0)
- 记录以下信息:
阶段二:分批处理文档
-
批次循环处理 对于每个批次(按顺序执行):
5.1 批次初始化
- 当前批次编号 += 1
- 确定本批次处理的文件列表(按编号顺序取10个或剩余文件)
- 报告本批次进度:"正在处理第X批,共Y批,文件数Z个"
5.2 逐个文档处理 对于本批次中的每个招聘文档,必须完整处理,不得跳过:
5.2.1 图片链接识别与提取
- 扫描文档中所有图片引用,识别两种格式:
- 本地图片:
 - 在线图片:

- 本地图片:
- 提取所有图片的URL或路径
- 记录图片在文档中的位置和上下文
5.2.2 在线图片下载 对于每个在线图片链接:
- 调用
python /workspace/projects/recruitment-processor/scripts/download_image.py --image-url <URL> --output-dir ./downloaded_images - 捕获下载结果,获取本地保存路径
- 如下载失败,记录错误但继续处理其他图片
- 记录图片来源(在线下载/本地文件)
5.2.3 图片识别与内容提取
- 对于所有可访问的图片(下载成功的在线图片和本地图片)
- 使用图像识别能力提取每张图片中的文字信息
- 必须逐一识别所有图片,不得遗漏任何一张
- 记录图片内容与上下文的对应关系
- 标注每张图片的信息来源
5.2.4 文本理解与整合
- 阅读文档文本内容
- 将图片识别的文字信息与文本内容进行整合理解
- 确保文本和图片信息都被充分利用
- 形成对该招聘文档的完整认知
5.2.5 关键信息提取 提取以下信息(如文档中未明确提及某项信息,标注"未提及"):
- 职位名称
- 公司名称
- 薪资待遇(明确范围或具体数值)
- 截止时间
- 发布时间
- 企业性质(国企/民企/外企/事业单位等)
- 工作地点
- 学历要求
- 工作经验要求
- 岗位职责
- 任职要求
- 图片数量及来源统计
5.2.6 错误处理
-
如果某个文件处理失败:
- 记录失败原因
- 失败处理数 += 1
- 不影响其他文件的处理,继续处理批次中的剩余文件
-
如果文件处理成功:
- 成功处理数 += 1
- 将提取的信息暂存
5.3 批次进度更新
- 已处理数 += 本批次文件数
- 待处理数 = 总文件数 - 已处理数
- 报告批次进度:"第X批完成,已处理A个文件,待处理B个文件"
阶段三:条件筛选与汇总
-
条件筛选
- 读取用户提供的筛选条件(参考筛选条件模板格式)
- 对所有成功提取的招聘信息进行条件匹配
- 严格判断是否符合所有筛选条件
- 保留所有符合条件的信息,剔除不符合的
- 每个文档都必须经过筛选判断,不得跳过
-
完整性验证
- 验证处理结果:
- 已处理数 + 待处理数 = 总文件数
- 每个文件都有处理结果(成功或失败)
- 如果发现遗漏:
- 立即补充处理遗漏的文件
- 更新进度跟踪信息
- 必须确保所有文件都经过审查,不得有任何遗漏
- 验证处理结果:
-
生成总结文档 对筛选后的所有招聘信息生成结构化总结报告,包含:
8.1 报告概览
- 处理的文档总数
- 批次处理情况:总批次数、每批文件数
- 成功处理的文档数量
- 失败的文档数量及失败原因列表
- 提取的图片总数(在线图片/本地图片)
- 筛选符合条件的数量
- 处理时间
8.2 招聘信息列表 对每个符合条件的招聘信息,按以下格式呈现:
## [职位名称] - [公司名称] **基本信息** - 薪资待遇:[具体数值或范围] - 企业性质:[国企/民企/外企等] - 工作地点:[城市/地区] **时间信息** - 截止时间:[具体日期] - 发布时间:[具体日期] **要求信息** - 学历要求:[学历层次] - 工作经验:[年限要求] **岗位详情** - 岗位职责:[摘要] - 任职要求:[摘要] **图片信息** - 图片总数:[数量]张(在线图片X张,本地图片Y张) - 图片来源标注:[哪些关键信息来源于图片] ---8.3 失败文件列表
- 列出所有处理失败的文件
- 说明每个文件的失败原因
- 提供可能的解决方案
8.4 处理进度报告
- 批次处理时间线
- 每批处理的文件列表
- 进度跟踪信息
8.5 注意事项
- 标注信息来源于图片或文本
- 标注缺失的关键信息
- 说明图片下载和识别的情况
-
输出结果
- 将总结文档输出为markdown格式
- 文件名格式:招聘信息总结_YYYYMMDD_HHMMSS.md
资源索引
- 必要脚本:见 scripts/download_image.py(用途:从URL下载在线图片,参数:--image-url --output-dir <目录>)
- 筛选条件模板:见 references/筛选条件模板.md(用途:定义筛选条件的标准格式)
- 信息提取指南:见 references/信息提取指南.md(用途:指导如何准确提取关键信息)
注意事项
完整性要求(最高优先级)
- 必须完整读取所有提供的文档,严禁跳过任何文档
- 必须逐一识别文档中的所有图片,不得遗漏任何一张
- 必须处理所有图片链接,包括本地图片和在线图片
- 必须确保所有文件都经过审查,不得有任何遗漏
- 处理完成后必须进行完整性验证
自适应分批处理
- 根据文档数量自动选择处理策略:
- 少量文档(≤10):一次性处理
- 大量文档(>10):分批处理,每批10个
- 分批处理时严格按顺序执行,不跳过任何批次
- 每批处理完成后报告进度
- 如果某批处理失败,不影响后续批次的处理
- 所有批次完成后统一进行筛选和汇总
进度跟踪
- 实时跟踪处理进度
- 记录每个文件的处理状态
- 每批次完成后更新进度信息
- 便于监控整体处理情况和排查问题
错误处理
- 单个文件处理失败不影响其他文件
- 记录所有失败的文件和失败原因
- 在总结文档中单独列出失败文件
- 提供错误原因和可能的解决方案
图片链接处理
- 识别markdown中的图片语法:
- 区分本地图片路径和在线URL
- 在线图片必须先下载到本地再进行识别
- 下载失败的图片要记录错误但不影响整体处理
图片识别准确性
- 仔细核对图片提取的文字与上下文的一致性,必要时多次识别确保准确性
条件筛选严格性
- 用户提出的每个条件都必须严格满足,部分不符合即视为不符合
信息缺失处理
- 对于文档中未明确提及的信息,必须标注"未提及",不要主观推断
时间格式统一
- 所有时间信息统一为YYYY-MM-DD格式
薪资格式规范
- 薪资信息应包含数值范围和单位(如:15-25K/月,年薪30-40万)
使用示例
示例1:处理单个文件
- 功能说明:用户提供单个markdown文件
- 执行方式:一次性处理
- 关键要点:
- 直接读取文件内容
- 完整处理所有图片
- 提取关键信息
- 进行条件筛选
- 筛选条件:
薪资范围:15-25K/月 企业性质:国企
示例2:处理少量文件(≤10个)
- 功能说明:用户提供包含5个markdown文件的文件夹
- 执行方式:一次性处理
- 关键要点:
- 扫描文件夹内所有markdown文件
- 文档数量≤10,一次性处理
- 逐个处理每个文件
- 统一进行筛选和汇总
- 筛选条件:
工作地点:北京 学历要求:本科及以上
示例3:处理大量文件(>10个)- 分批处理
- 功能说明:用户提供包含25个markdown文件的文件夹
- 执行方式:分批处理(3批:10+10+5)
- 关键要点:
- 扫描文件夹,识别25个文件
- 文档数量>10,自动分批
- 第1批:处理文件1-10
- 第2批:处理文件11-20
- 第3批:处理文件21-25
- 每批处理完成后报告进度
- 所有批次完成后统一筛选
- 确保所有文件都经过审查
- 筛选条件:
薪资范围:15-25K/月 企业性质:国企
示例4:处理包含在线图片的文档
- 功能说明:文档中包含在线图片链接,需要先下载再识别
- 执行方式:智能体调用脚本下载图片 + 智能体识别
- 关键要点:
- 识别markdown中的图片URL
- 调用download_image.py下载图片
- 识别下载后的图片内容
- 记录图片来源为"在线下载"
- 筛选条件:
薪资范围:15-25K/月 企业性质:国企
示例5:多条件组合筛选
- 功能说明:筛选北京地区的、本科学历、1-3年经验的技术岗位
- 执行方式:智能体处理
- 关键要点:
- 地点信息可能在正文或图片中
- 工作经验要求可能模糊表述(如"应届生可"、"有相关经验者优先"),需要准确判断
- 学历要求可能有多个层次,选取最低要求作为筛选依据
- 逐一识别所有图片,确保不遗漏关键信息
- 严格按分批逻辑处理所有文件
- 筛选条件:
工作地点:北京 学历要求:本科及以上 工作经验:1-3年 职位类型:技术岗位
示例6:处理混合图片来源的文档
- 功能说明:文档中同时包含本地图片和在线图片链接
- 执行方式:智能体调用脚本下载在线图片 + 智能体识别所有图片
- 关键要点:
- 区分本地图片和在线图片
- 下载所有在线图片
- 逐一识别所有图片(本地+下载)
- 在总结中标注图片来源
- 确保所有图片都被识别
- 筛选条件:
无特殊条件,仅提取信息
分批处理流程示例
场景:处理30个文件的文件夹
阶段一:文件扫描与规划
- 扫描文件夹,发现30个markdown文件
- 文档数量 > 10,决定分批处理
- 计算批次:30个文件,每批10个,共3批
- 初始化进度:总文件数=30,已处理=0,待处理=30
阶段二:分批处理
第1批处理
- 当前批次=1,处理文件1-10
- 扫描文件1-10,识别图片,提取信息
- 处理结果:成功10个,失败0个
- 更新进度:已处理=10,待处理=20
- 报告:"第1批完成,已处理10个文件,待处理20个文件"
第2批处理
- 当前批次=2,处理文件11-20
- 扫描文件11-20,识别图片,提取信息
- 处理结果:成功9个,失败1个(文件15损坏)
- 更新进度:已处理=20,待处理=10
- 报告:"第2批完成,已处理20个文件,待处理10个文件"
第3批处理
- 当前批次=3,处理文件21-30
- 扫描文件21-30,识别图片,提取信息
- 处理结果:成功10个,失败0个
- 更新进度:已处理=30,待处理=0
- 报告:"第3批完成,已处理30个文件,待处理0个文件"
阶段三:条件筛选与汇总
- 对29个成功处理的招聘信息进行条件筛选
- 完整性验证:已处理30个=总文件数30个,验证通过
- 生成总结文档,包含:
- 处理概览:总30个,成功29个,失败1个
- 符合条件的招聘信息列表
- 失败文件列表(文件15:文件损坏)
- 批次处理进度报告
图片下载脚本使用说明
调用方式
python /workspace/projects/recruitment-processor/scripts/download_image.py --image-url <图片URL> --output-dir <输出目录>
参数说明
--image-url:必填,图片的URL地址--output-dir:可选,图片保存目录,默认为./downloaded_images
返回结果
- 成功:输出
SUCCESS:<本地路径> - 失败:输出
ERROR:<错误信息>到标准错误流
使用场景
当文档中包含在线图片链接(如https://example.com/image.jpg)时,先调用此脚本下载图片,然后对下载后的本地文件进行图像识别。
示例
# 下载图片到默认目录
python /workspace/projects/recruitment-processor/scripts/download_image.py --image-url https://example.com/salary.jpg
# 下载图片到指定目录
python /workspace/projects/recruitment-processor/scripts/download_image.py --image-url https://example.com/salary.jpg --output-dir ./temp_images
Weekly Installs
24
Repository
morning-start/c…e-skillsGitHub Stars
1
First Seen
Feb 18, 2026
Security Audits
Installed on
gemini-cli24
github-copilot24
codex24
kimi-cli24
amp24
opencode24