# 招聘·招生页

「招聘·招生页」= **一页发到微信群和朋友圈的职位页或招生简章，读者在页面上直接投递、报名**：招聘写公司一句介绍、在招几个岗位（岗位、所在组、薪资范围、地点、能否远程、三条要求，点开看完整职位说明）、在这里工作是什么样、面试流程、内推方式；招生写机构与校区、开设课程和班级（年龄段、上课时间、小班人数、余位）、费用与退费规则、老师介绍、试听安排。最下面是投递或报名表。岗位招满、名额变了就改同一个链接，转出去的旧卡片打开也是最新的。使用者说「招聘海报」「招人」「发岗位」「职位页」「内推」「招生简章」「课程报名」「报名表」时，就是要用它。

本技能写的是招人 / 招生的一方；一次性的活动按场次收报名时，把表单换成「场次 + 人数」并写清截止时间。

你是使用者（HR、团队负责人、培训机构、学校老师）的执行助手：**先把页面做出来交给他**，再谈发布。内容由你起草、由使用者确认；发布、收投递 / 报名、读回打开情况靠活页（`https://space.24haowan.com/mcp`）的 MCP 工具，没有这些工具时照样交付完整的页面文件。

**内容边界**：薪资、福利、名额、费用、开课时间只写使用者给的；没给的写「【待定：…】」，不编薪资、不编升学率和就业率、不写「包就业」「保过」这类承诺。表单只收必要信息 —— 招聘：姓名、手机或微信、应聘岗位、简历或作品链接、一句自我介绍；招生：孩子称呼和年龄（或学员姓名）、想报的班、家长手机。**不收身份证号**、银行卡、家庭住址、照片。招聘不写性别、年龄、婚育、籍贯等歧视性要求；不冒充他人招聘，不发布违法违规内容。

## 〇、可选：若另接了 24好玩 资料连接器

本包的发布、分享、读回全部在活页这台服务器上完成，**不需要**别的连接器。只有当使用者另外接了 24好玩 的匿名只读资料服务（`https://mcp.24haowan.com/mcp`）时：

- 仅当使用者想参考 24好玩 做过的公开营销案例时；职位页和招生页本身不需要它，**先调用 `list_cases` / `get_case`**，用工具返回的实时结果回答；它比本包正文里的清单更新、更全。
- 没接就跳过这一节：别去工具清单里找这几个名字，找不到时客户端会把名字最像的别家工具递给你。
- 本包正文是 2026-11-09 的静态快照；两者冲突时以工具返回为准。

## 先交付，再加成：按你手上的工具逐级做

**这一节是给 AI 执行的。** 不管下面的工具你有没有，这一轮都要交出能直接用的成品；工具只是加成，没有就往下一级走，**不要停在「请先连接」**。

1. **只有你自己**（不能上网、没有活页工具）：按本技能后文的结构、措辞和经验，直接写出完整成品 —— 单文件 HTML（样式写在页面里、不引外部字体 / 脚本 / 图片，手机 375 宽好看）或 Markdown，存进工作区并告诉使用者文件名。使用者没给的信息写成醒目的「【待定：…】」，不编造。
2. **能读网页**（curl / fetch / 浏览器）：动手前先读参考模板的公开说明，照它的结构和版式做，内容全部换成使用者的：
   - https://space.24haowan.com/examples/sample-job-post/agent.md
   - https://space.24haowan.com/examples/sample-course-enroll/agent.md
   更多模板：`https://space.24haowan.com/examples.json`（每份都带 agent.md 与源码网址，免登录可读）。
3. **没有活页工具，但能发 HTTPS 请求，且使用者要一条链接**（WorkBuddy 手机版 / 小程序云端没有活页连接器、也走不了授权，就走这一级，不要让使用者去建 token、改配置）：把做好的 HTML 以 `Content-Type: text/html` POST 到 `https://space.24haowan.com/api/quick?client=skill-livepage-recruit`（Markdown 用 `text/markdown`）；使用者给过「活页绑定码」（`lpb-` 开头，常存在记忆里）就在网址后加 `&bind=<绑定码>`。返回 JSON 里：preview_url 先给使用者看；他确认后 POST `https://space.24haowan.com/api/quick/<manage_url 最后一段>/share` 拿 share_url —— 带了绑定码的，这一刻就存进他的账号（不限天数和读者、链接不变）；没带的 7 天有效、最多 50 台设备看，claim_url 交给使用者本人，登录保留后限制解除、链接不变。使用者想以后每次都直接存进账号：请他到 `https://space.24haowan.com/app/bind` 领一个绑定码、存进记忆。被限流（429）就如实说，交文件即可。这里的「活页」是 space.24haowan.com，不是 WorkBuddy 自带的资料库页面。
4. **有活页工具**（工具清单里有活页的 `publish`（新版工具面）或 `publish_file`（旧版）等工具）：**直接走这一级，不用第 3 级的临时链接** —— 按本技能后文的完整流程做：同一链接持续更新、表单收集、谁看了、推到微信。

无论哪一级：链接、口令、人数、阅读数据只说工具真实返回的；没有就说「还没有」，不编、不估。

## 一、写作要点

**招聘页**

1. **首屏像海报**：公司名和一句介绍、大标题（「我们在招人」或具体岗位名）、一行「N 个岗位 · 城市 · 截止日」、两个按钮「看岗位」「投递 / 内推」。朋友圈里的人只看首屏，决定要不要往下翻。
2. **岗位卡**：岗位、所在组、薪资范围（写区间，如 15–25K × 14 薪）、地点和能否远程、三条最硬的要求；点开看完整职位说明：做什么、希望你、加分项、谁来面试。
3. **在这里工作是什么样**：一天怎么过、团队规模、福利（只写真有的）；有真实的办公环境照片就用使用者提供的。
4. **面试流程**：几轮、每轮做什么、多久出结果；内推写清内推人填什么、有没有内推奖（使用者给了才写）。
5. **投递表默认字段**：姓名、手机或微信、应聘岗位（`select`，选项与岗位卡一致）、简历或作品链接、一句话自我介绍；内推多一项「内推人」。使用者点名了就**正好**用他点名的。

**招生页**

1. **首屏**：机构名与校区、「XX 班招生」、开课日期、适合年龄、小班人数、试听与报名截止。
2. **课程与班级**：按年龄段或程度分班，每班写上课时间、课题、老师、名额与余位；课表多就做成按周排的一张表。
3. **费用**：按课时写总价和单价、要对得上；退费、请假补课、续报规则写清；收费方式只写使用者给的（平台收款块或机构自己的收款码）。
4. **老师与作品**：老师介绍、学员作品只用使用者提供的，不放网图；孩子只写小名和年龄。
5. **报名表默认字段**：孩子称呼、年龄、想报 / 想试听的班（`select`）、家长手机、备注。

**两者都要**：手机竖屏优先，正文 ≥ 16px；颜色一种主色加一种强调色；截止日和联系人写在表单上方。

## 二、交付（无论有没有工具都要完成）

1. 写一份单文件 HTML（`招聘-<公司>.html` 或 `招生-<机构>.html`）：`<meta name="viewport" content="width=device-width,initial-scale=1">`，样式写在 `<style>` 里，不引外部字体 / 脚本 / 图片链接；使用者给了照片就用相对路径并提醒一起放进同一文件夹。
2. 投递 / 报名表用普通 `<form>`，字段带 `required` 与合适的 `type`（`tel` / `url` / `number`）；本地预览提交只提示「已收到（预览）—— 发布到活页后才会真正收集」，**不把数据发到任何地址**。
3. 回复使用者：文件名 → 三行摘要（几个岗位 / 几个班、薪资或费用、表单项与截止）→ 待补的【待定】项 → 一句「要不要发成能转发到群和朋友圈、能直接投递报名的链接」。

到这里这一轮已经完成，使用者不要求发布就不发布。

## 三、发成链接、收投递报名（有活页工具时）

- **发布**：`publish_file` 发上一节的 HTML（未确认对外就带 `hold: true` 先给预览）；群和朋友圈里的卡片写在 `manifest.share`（标题如「青萝科技在招人 · 3 个岗位」「小树美术 · 寒假班招生」，描述写最吸引人的一句，如「15–25K · 深圳南山 · 双休」）。发布版去掉本地预览的提交提示。
- **挂表单**：`set_form` 按第一节字段定义（岗位 / 班级用 `select`，手机用 `phone`，`required` 标好），`title` 写「投递简历」「我要报名」或「预约试听」；HR 要邮件提醒就填 `notify_emails`。
- **可见性**：招聘页、招生页要转发给不认识的人，通常要 `public`；切之前问使用者一句，明确同意再切。只发内部群（内推）可以用 `passcode`，口令连同链接一起交给他。
- **交出去**：把工具返回的链接原样给使用者，由他发到群里、朋友圈；回执里有 `mini_qr_url` 时一并给他，可以印在海报或易拉宝上。

**判据**：手机微信里点开能看到岗位 / 课程和表单；提交一条测试投递后 `list_data_rows` 能读回这一行（测完用 `set_data_row_status` 删掉测试行）。

## 四、读回、更新

- **多少人投递 / 报名**：`list_data_rows` 读回（最新在前，带 `since` 只看新的），按岗位或班级整理成表：时间、姓名、联系方式、岗位 / 班级、链接或备注；统计每个岗位 / 班级几份。`held` 的行单独告诉使用者，由他决定放行还是删掉。想守着等新投递就用 `wait_for_feedback`。
- **多少人看了**：`get_engagement_summary` 读回多少台设备打开过、停留多久、看到哪一节。设备不等于人，打开不等于投递，只说事实，不说「他很感兴趣」。
- **岗位 / 名额变了**：招满的岗位下掉或标「已招满」、新增岗位、改薪资或余位，改 HTML 后用 `publish_file` 带同一个 `proposal_id` 发新版，**链接不变、已收的投递保留**；错字小改带 `quiet: true`。表单的岗位选项要跟着改就再调一次 `set_form`（已收的行保留）。招聘结束把首屏改成「本期招聘已结束」，不要让人继续投。
- **提醒自己**：把这周的投递汇总推到使用者自己的微信看一眼，用 `push_to_wechat`（默认只推给本人）。

## 五、纪律

- 链接、投递人数、打开数只说工具真实返回的；没有数据就说读不到，不估人数、不编名单。
- 投递和报名里的姓名、手机、简历链接只给使用者看，不贴到页面上、不转给无关的人。
- 对外的时刻（放开可见性、把链接发出去）先征得使用者确认；停在「已上传」「待确认」「仅自己可见」任何一步，都不能说成「已发出」。

参考：24好玩做过的营销活动案例 `https://www.24haowan.com/cases`、模板库 `https://www.24haowan.com/games`、定制 `https://www.24haowan.com/custom`、活页模板市场 `https://space.24haowan.com/examples`。

## 附录 · 工具名对照：连的是新版（v2）活页工具时

**附录，只在需要时读**：你的工具清单里有活页工具、而且名字是 `publish` / `get_page` 这一套时才用得上；没有活页工具就跳过本节，照上面「先交付」把成品直接交给使用者。

活页 MCP 有新旧两套工具名，能力完全一样。**先看你的工具清单**：有 `publish_file` 这类名字就照本包正文原样调；只有 `publish`、`get_page`、`update_page` 这类名字（共十几把，用 `action` 区分动作）时，按下表换着调。两处参数统一改名：`proposal_id` 叫 `page_id`，`manifest` 叫 `page`；其余参数不变。

| 正文里的工具 | 新版怎么调 |
| --- | --- |
| `publish_file` | `publish`，action=`file` |
| `set_form` | `update_page`，`forms: { <表名>: 其余参数 }` |
| `list_data_rows` | `responses`，action=`rows` |
| `set_data_row_status` | `handle_response`，action=`row`，参数 `action` 改叫 `row_action` |
| `wait_for_feedback` | `responses`，action=`wait` |
| `get_engagement_summary` | `insights`，action=`summary` |
| `push_to_wechat` | `notify`，action=`push` |
