Skip to content
Back to skills

Job Description Writer

ASecurity

招聘 JD——把岗位需求写成职责清楚、门槛分层、没有歧视性表述的招聘启事。当用户说「帮我写个 JD」「任职要求怎么写」「招聘文案怎么写」「JD 里薪资怎么写」时使用。

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 13, 2026
ai-agentspythonjavabashsqlbackend

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 13, 2026

npx -y skills add po-et/workbuddy-skills --skill job-description-writer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Job Description Writer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Job Description Writer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/po-et-job-description-writer/badge)](https://www.skillsdirectory.com/skills/po-et-job-description-writer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: job-description-writer
description: "招聘 JD——把岗位需求写成职责清楚、门槛分层、没有歧视性表述的招聘启事。当用户说「帮我写个 JD」「任职要求怎么写」「招聘文案怎么写」「JD 里薪资怎么写」时使用。"
author: Captain
version: 0.1.1
display_name: "招聘 JD"
display_name_en: "Job Description Writer"
description_zh: "写招聘 JD:分清岗位职责与任职要求、必要条件与加分项,用「为什么值得来、你要做什么、你能得到什么」三段结构吸引候选人,写清薪资区间与结构,排查年龄、性别、婚育等歧视性表述;附技术岗、运营岗、实习生三份模板。只做写作与风险提示,不做法律合规审查。"
description_en: "Write job descriptions that separate responsibilities from requirements and must-haves from nice-to-haves, state pay clearly, avoid discriminatory wording and follow a three-part structure, with templates for engineering, operations and intern roles; no legal compliance review."
tags:
  - "招聘 JD"
  - "JD"
  - "招聘启事"
  - "职位描述"
  - "岗位职责"
  - "任职要求"
  - "招聘文案"
  - "job description"
  - "hiring"
examples_zh:
  - "帮我写个 JD,招一个三年左右经验的 Java 后端"
  - "任职要求怎么写,老板列了十二条,条条都说是必须"
  - "暑期实习生的招聘文案怎么写才有人投"
examples_en:
  - "Write a JD for a Java backend engineer with about three years of experience"
  - "My boss listed twelve requirements and says every one is a must. How do I write the requirements section?"
  - "How do I write a summer internship posting that people will actually apply to?"
---

# 招聘 JD

定位一句话:**JD 既是写给候选人的广告,也是写给面试官的评分表:职责说「来了做什么」,要求说「凭什么能做」,两者混写,两头都失效。**

## 何时使用

用户这样说时用本技能:

- 「帮我写个 JD,招一个三年左右经验的 Java 后端」——新开岗位要对外发布
- 「用人部门口述了一段需求,帮我改成能对外发的招聘启事」
- 「任职要求老板列了十二条,条条都说是必须」——要分出必要条件与加分项
- 「这个 JD 挂了一个月没人投」「投来的人都不对口」——旧 JD 诊断与重写
- 「暑期实习生、校招启事怎么写才有人投」
- 「JD 里薪资怎么写,能不能写面议」

不适用(遇到时这样处理):

- 问试用期、竞业限制、用工形式、合同条款合不合法 → 不下结论,请用户找 HR 或劳动法律师;可以帮忙把要问的问题列出来。
- 要出面试题、筛简历、评价某个候选人 → 不在本技能范围;技术岗面试可转「技术面试」(tech-interview-expert)。本技能只给「必要条件 → 面试问题」的对应表。
- 要定薪资、定职级 → 由 HR 与用人部门决定,本技能只把已批准的方案写清楚。

本技能只负责写作与风险提示,不替代 HR 或法务的合规审查。

## 先判断什么:动笔前问清五件事

1. **为什么现在招**:新业务、补离职还是扩编?这决定开头的「钩子」写什么。
2. **入职半年后怎样算招对了**:写出两三个看得见的产出,职责就从这里倒推。
3. **真正的淘汰条件**:缺了就一定干不了的能力,通常三到五条。
4. **薪资区间与结构批了没有**:没批就先留空,不要用「面议」糊过去。
5. **工作条件**:汇报对象、团队规模、地点、坐班或远程、出差比例、要不要值班。

第 2、3 条答不上来先别写,否则写出来的一定是随处可见的通用 JD,吸引不到对的人。用户一次答不全时,先问第 1–3 条,其余按「信息不全或出错时」的办法占位。

## 写作步骤:职责、要求、必要与加分

- **岗位名称用候选人会搜的词**:写「后端开发工程师(Java)」,不写「系统研发专员」;方向、职级放括号里,不加「急聘」「高薪」这类字眼。
- **职责 = 动词 + 对象 + 结果或标准**,四到七条,按时间占比排序,第一条是最主要的工作。反例「负责后端开发工作」,改为「负责订单与支付服务的设计、开发和线上维护,保障大促期间核心接口稳定」。
- **要求 = 能力或经历的证据**:做过什么、做到什么程度。「抗压能力强、积极主动、有责任心」没人能验证,改成「有线上故障排查与值班经验」。
- **必要条件与加分项的检验法**:问用人经理「缺这一条、其他都很强的人,你给不给面试?」给,就是加分项;不给,才是必要条件。必要条件不超过五条,加分项不超过四条并注明「非必须」。必要条件列得越多,越会把合适但不完全匹配的人挡在门外。
- **年限与学历**:年限写大致区间并说明要它做什么(「三年左右后端经验,能独立负责一个服务」);学历只在岗位确有需要(资质、准入)时列为必要条件,否则写「本科及以上,或具备同等能力」。实习与校招不写工作年限,改看课程、项目、竞赛这类证据。
- **工作条件写事实**:出差、值班、倒班写清频率(「每月出差约一周」),比「能接受出差」更能筛出对的人,也减少入职后反悔。
- **把必要条件变成面试评分项**:每条对应一个面试问题和一个及格标准;JD 里没写的要求,面试时不要临时加码。

## 三段结构与薪资写法

```
第一段 为什么值得来   三到五行:团队在做什么、这个岗位要解决什么问题、做成了意味着什么;
                     用事实(业务阶段、用户规模、技术栈),不写「行业领先、发展空间大」
第二段 你要做什么     职责四到七条;必要条件三到五条;加分项另列,注明非必须
第三段 你能得到什么   薪资福利、工作方式、成长机会(导师、带人、分享)、
                     面试流程与周期(如两轮业务面加一轮 HR 面,一周内给结论)、投递方式
```

第一段最容易写空。反例:「我们是一家行业领先的互联网公司,发展空间大,福利待遇优厚。」改为:「我们做面向中小餐馆的收银与进货系统,已服务【N】家门店;明年要把进货从电话下单搬到线上,这个岗位负责其中的订单链路。」候选人读完能说出「去了做什么、为什么重要」,这一段才算合格。

薪资写法:

- 写区间不写「面议」;上限一般不超过下限的 1.5 倍(如 25–35K),太宽等于没写。
- 写清单位和结构:月薪还是年薪、税前、一年几薪(如 25–35K × 15 薪);固定与浮动分开,绩效奖金、提成、期权各写一句发放规则。
- 提成岗写底薪加提成规则;想写「团队去年平均收入」,必须是真实数据并注明口径。
- 实习生写日薪或月薪、每周到岗天数、最短实习时长、有没有留用机会,以及餐补、房补。
- 不写做不到的承诺,如「年薪百万不是梦」「三个月必升主管」。

## 三份模板:技术岗、运营岗、实习生

模板全文见 [references/jd-templates.md](references/jd-templates.md)。按岗位类型只取一份,不要三份一起贴给用户:

| 岗位类型 | 模板侧重 | 适用 |
|---|---|---|
| 技术岗(后端开发工程师) | 服务与可用性目标、值班频率、一次线上故障排查 | 研发、测试、运维类 |
| 运营岗(用户运营) | 季度指标、活动从方案到复盘、表格分析 | 运营、市场、增长类 |
| 实习生(数据分析实习生) | 每周到岗天数、最短实习时长、导师与留用机会 | 实习、校招 |

三份模板共用同一骨架:一句话钩子 → 你会做 → 我们需要你 → 加分项(非必须)→ 你能得到 → 流程与投递方式。

## 歧视性表述检查

先用脚本粗筛,再人工通读(命中不等于违规,但每一处都要看):

```bash
python3 {baseDir}/scripts/jd_risk_scan.py jd.txt            # UTF-8 的 .txt 或 .md
python3 {baseDir}/scripts/jd_risk_scan.py - < draft.md      # 从标准输入读
```

脚本只读不改文件,只用 Python 标准库,覆盖年龄、性别、婚育、户籍地域、外貌健康、学校标签六类字面表述,每处命中给出改写方向;退出码见下文「信息不全或出错时」。

```
高风险写法                                  改成
「限男性」「女性优先」                       删除;确有体力要求的写具体条件,如「需搬运 20 公斤货物」
「35 岁以下」「22–28 岁」「年轻有活力」      删除,写经验与能力,如「3–5 年相关经验」
「已婚已育优先」「未婚」「近两年无生育计划」 删除,面试中也不要问
「本地户口」「限某省籍」                     删除;确因资质或政策需要,请 HR 核实依据后再写具体要求
「身体健康无乙肝」「形象好」「身高 165 以上」 删除;岗位确需证照的(如健康证),写证照名称
「985/211 优先」「名校毕业」                 改写为能力证据;学校标签缩窄人才池,也容易被视为学历歧视
```

与工作无关的信息,如照片、婚恋状况、星座血型,不要在 JD 或报名表里要求候选人提供。

我国《就业促进法》等法律对公平就业有专门规定,各地还有细则,招聘平台也有各自的发布规则;上表只是风险提示与改写建议,是否合规由 HR 或法务按现行规定判断。

## 信息不全或出错时

| 情况 | 怎么处理 | 对用户说的话(模板) |
|---|---|---|
| E1 缺关键信息:只说「帮我写个招聘」,没给岗位或产出 | 只问 3 个:招什么岗位、入职半年后做出什么算招对了、缺了哪几条一定不面;地点、汇报对象等按常见写法先填并标【待确认】,薪资标【待补】 | 「先确认三件事就能动笔:招什么岗位?半年后做出什么算招对了?缺了哪几条一定不面?其余我先按常见写法填,标了【待确认】的你再改。」 |
| E2 输入自相矛盾:「应届生」却要「五年经验」;薪资下限高于上限;写了「远程」又要「每天坐班」 | 摘出矛盾的两处原文,给两个可选理解;用户选定前,这一项不写进正文 | 「这两处对不上:一处写……,另一处写……。你指的是①……,还是②……?」 |
| E3 必要条件过多(超过 5 条)或全是形容词 | 用「缺这一条、其他都很强,给不给面试」逐条问;形容词改成经历证据,改不了的删 | 「这 12 条里,缺哪几条你就一定不面?其余的我放进加分项,注明非必须。」 |
| E4 薪资没批,或只肯写「面议」 | 薪资位置写【待补:薪资区间与结构】,交付时提醒发布前补齐;不替用户编数字 | 「薪资批下来之前我先留空。发布前请补上区间,只写『面议』是投递少的常见原因。」 |
| E5 超出范围:合同条款、试用期、竞业限制合不合法;筛简历、评候选人 | 说明不在本技能范围,转 HR、劳动法律师或面试类技能;可以帮忙列要问的问题 | 「这部分需要 HR 或劳动法律师按现行规定判断,我可以先帮你把要问的问题列出来。」 |
| E6 坚持写高风险要求:「限 35 岁以下」「限男性」「985 优先」 | 不写进 JD;说明风险,给按经验、能力或具体条件写的替代说法;是否发布由用户与 HR、法务决定 | 「这一条我不写进 JD,它属于高风险表述。可以改成……;最终怎么发,请 HR 或法务把关。」 |
| E7 时间紧,只要一版能先发的 | 交最小可用版:岗位名称+一句话钩子+职责 3 条+必要条件 3 条+薪资(或【待补】)+投递方式;确认单与风险清单随后补 | 「先给你一版能发的精简 JD,确认单和风险检查我随后补上。」 |

脚本 `jd_risk_scan.py` 的退出码与报错:

| 退出码 / 报错 | 原因 | 修正办法 |
|---|---|---|
| 0 | 没有命中风险词表 | 仍需人工通读一遍 |
| 3 | 有命中,已逐条列出 | 按建议改写;「女装」「品牌形象」这类误报可忽略 |
| 1「参数错误」「内容为空」 | 没给文件路径,或文件里没有文字 | 按 `jd_risk_scan.py 文件路径` 重跑;从标准输入读用 `-` |
| 2「找不到文件」「是文件夹」「没有读取权限」 | 路径错、文件名有空格没加引号、权限不够 | 检查路径,文件名含空格时用引号包住 |
| 2「像是 Word、PDF」「不是 UTF-8 文本」 | 传了 .docx、.pdf,或 GBK 编码的文本 | 把正文复制进 UTF-8 的 .txt 或 .md 再扫 |
| 130 | 按了 Ctrl+C | 重新运行即可 |

## 输出契约

交付物按下面的固定顺序给出;某部分本次不交付,就在原位置写「本次未交付:原因」,不调换顺序:

1. **岗位摘要一行**:岗位名称|地点与办公方式|汇报对象|薪资区间与结构(没批写【待补】)。
2. **JD 正文**(Markdown,可直接发布):为什么值得来 → 你要做什么(职责 4–7 条;必要条件 3–5 条;加分项另列,注明非必须)→ 你能得到什么(薪资福利、工作方式、成长、面试流程与投递方式)。
3. **用人经理确认单**:必要条件逐条列出,每条留「缺了就不面:是 / 否」,并对应一个面试问题和及格标准。
4. **风险提示清单**:命中的表述、原句与改写建议;没有命中也写明「已按清单检查,仍需 HR 复核」。
5. **待补 / 待确认清单**:每条注明出现在正文哪一段。
6. **精简版**(需要多平台发布时):300 字以内。

占位符规则:

- 【待补:……】=用户没提供、也不能替用户编的信息:薪资、团队规模、用户数据、福利、融资情况。
- 【待确认:……】=按常见写法先填了、需要用人经理确认的内容:汇报对象、值班或出差频率、面试流程。
- 发布前所有【】都要清空;正文里不留其他临时记号。

交付前自检(逐条答「是 / 否」,有一条「否」就先改再交):

- [ ] 职责每条都是「动词 + 对象 + 结果或标准」,不超过 7 条,第一条是最主要的工作
- [ ] 必要条件不超过 5 条,加分项单列并注明「非必须」
- [ ] 薪资写了区间与结构,或明确标了【待补】,全文没有「面议」
- [ ] 风险词脚本跑过(或已按高风险对照表人工逐条查过),命中项都已改写或说明
- [ ] 没有编造团队规模、融资、用户数据和福利
- [ ] 第一段有具体事实(业务阶段、规模或技术栈),没有「行业领先」「发展空间大」

## 示例

以下为示例,团队与数字均为虚构,薪资等信息来自示例中「用户」的回答。

**用户:** 暑期实习生的招聘文案怎么写才有人投?我们是做本地生活小程序的数据组。

**助手(先问 3 件事):** ① 实习期起止、每周到岗几天、在哪,能不能远程?② 实习生主要做什么:只做日常取数和报表,还是也要独立做一个专题?③ 日薪多少,有没有餐补房补,有没有留用机会?

**用户:** 7 月到 9 月,每周至少 4 天,上海,不能远程;取数报表加一个专题;日薪 200,有餐补,有导师一对一带,表现好可以留用。

**助手(交付):**

```markdown
岗位摘要:数据分析实习生(暑期)|上海,到岗办公|汇报对象【待确认:数据组负责人】|日薪 200 元,含餐补

**数据分析实习生(暑期)**

我们做本地生活小程序,数据组负责【待补:一句话写清团队在做什么、服务多少用户】。
实习期 7 月至 9 月,每周到岗至少 4 天,地点上海,不支持远程。

**你会做**
1. 在导师指导下完成日常取数与报表维护
2. 参与一个专题分析,从提出问题到写出结论,实习结束前独立汇报一次

**我们需要你**
1. 【待确认:年级与专业方向,或同等能力】,能保证每周到岗 4 天、实习到 9 月
2. 会用 SQL 或 Python 做基础数据处理
3. 能把分析结论讲给非专业的人听,课程报告或项目作品均可证明

**你能得到**:日薪 200 元,餐补;一对一导师;表现好有留用机会
**流程**:【待确认:一轮面试,一周内给结论】;投递 jobs@example.com,附简历与一份作品(课程作业也可以)

用人经理确认单:SQL 或 Python 基础处理|每周到岗 4 天|能讲清分析结论——每条「缺了就不面:是 / 否」
风险提示:已按清单检查,未命中;仍需 HR 复核
待补 / 待确认:团队一句话(第一段)、汇报对象、年级与专业、面试流程
```

更多完整示例:

- [examples/java-backend-jd.md](examples/java-backend-jd.md):技术岗从澄清到交付的六件套,含脚本实际输出、确认单与 300 字精简版
- [examples/trim-requirements.md](examples/trim-requirements.md):老板列了十二条必要条件,逐条判定、砍到五条以内

## 常见问题(FAQ)

**问:薪资还没批下来,能先写「面议」吗?**
答:不写「面议」。先在薪资位置写【待补:薪资区间与结构】,批下来再发布;只写「面议」或不写薪资,都是投递少的常见原因。

**问:JD 挂了很久没人投,先改哪里?**
答:按这个顺序查:岗位名称是不是候选人会搜的词、写没写薪资、必要条件是否过多、第一段有没有具体事实。

**问:投来的人都不对口怎么办?**
答:先查职责是否太泛(如「负责后端开发工作」),再查必要条件是不是写成了形容词;两处都改成能验证的具体内容。

**问:老板坚持要写「35 岁以下」「985 优先」怎么办?**
答:这类表述不写进 JD,会给出按经验、能力或具体条件写的替代说法;要不要发、怎么发,由 HR 或法务按现行规定判断。

**问:必要条件和加分项到底怎么分?**
答:问用人经理:「缺这一条、其他都很强的人,你给不给面试?」给,就是加分项;不给,才是必要条件。

**问:实习生、校招的 JD 和社招有什么不同?**
答:不写工作年限,改看课程、项目、竞赛;要写清日薪或月薪、每周到岗天数、最短实习时长和有没有留用机会。

**问:能直接帮我发到招聘网站,或者帮我筛简历吗?**
答:不代发布、不代筛简历。正文可以直接粘贴,另附 300 字以内的精简版方便多平台发布;各平台的格式与审核以平台现行规定为准。

## 常见错误(反模式)

| 错误做法 | 为什么错 | 正确做法 |
|---|---|---|
| 职责和要求写成一锅粥 | 候选人看不出来了做什么,面试官也没法按条打分 | 职责写「来了做什么」,要求写「凭什么能做」,分两块 |
| 照抄别家 JD,连对方的业务名都没改 | 招来的是别人要的人,也显得不专业 | 从「入职半年后怎样算招对了」倒推职责 |
| 十几条必要条件 | 合适但不完全匹配的人被直接挡在门外 | 用「给不给面试」逐条检验,必要条件不超过 5 条 |
| 只有形容词:抗压能力强、积极主动、有责任心 | 没人能验证,谁都能说自己符合 | 改成经历证据,如「有线上故障排查与值班经验」 |
| 岗位名称用内部叫法,还加「急聘」「高薪」 | 候选人搜不到,也显得不可信 | 用候选人会搜的词,方向和职级放括号里 |
| 薪资写「面议」,或区间宽到上限是下限的两三倍 | 等于没写,候选人不愿意投 | 写区间与结构,上限一般不超过下限的 1.5 倍 |
| 第一段写「行业领先、发展空间大、福利优厚」 | 放在哪家公司都成立,读完什么也记不住 | 写业务阶段、规模、这个岗位要解决的问题 |
| 发布前没让用人经理确认必要条件 | 面试时临时加码,JD 和面试标准对不上 | 附确认单,逐条确认「缺了就不面」 |

## 边界与不做什么

- 不做法律合规审查,不出「合法」或「违法」的结论;涉及用工形式、试用期、竞业限制、外籍人员、特殊资质岗位的,找 HR 或劳动法律师。
- 不替公司定薪资与职级,只把已批准的方案写清楚。
- 不写虚假或夸大的承诺,不编团队规模、融资情况、用户数据。
- 不代发布、不代筛简历、不评价具体候选人。
- 各招聘渠道的格式与审核规则以平台现行规定为准。

Files in this skill

  • SKILL.md20.6 KB
  • examples/java-backend-jd.md5.7 KB
  • examples/trim-requirements.md3.7 KB
  • references/jd-templates.md3.8 KB
  • scripts/jd_risk_scan.py5.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.