Skip to content
Back to skills

Moka Business Guide

ASecurity

Moka 业务指引。Moka 是企业的一体化人力资源系统:员工用它处理档案、假勤、薪酬、绩效、审批与制度事务,HR 与面试官用它推进招聘。所有 Moka 相关请求都遵循本指引——先理解业务概念与数据口径,再按任务推进原则串联工具,一次交付用户想要的完整结果。

  • 417 stars
  • 0 votes
  • 0 copies
  • 23 views
  • Added September 8, 2026
databasesperformance

Works with

  • cursor

Security analysis

A100/100

Scanned November 8, 2026

npx -y skills add infometa/workbuddyskills --skill moka-business-guide --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Moka Business Guide?

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

Security grade badge for Moka Business Guide
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/infometa-moka-business-guide/badge)](https://www.skillsdirectory.com/skills/infometa-moka-business-guide)

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: moka-business-guide
description: Moka 业务指引。Moka 是企业的一体化人力资源系统:员工用它处理档案、假勤、薪酬、绩效、审批与制度事务,HR 与面试官用它推进招聘。所有 Moka 相关请求都遵循本指引——先理解业务概念与数据口径,再按任务推进原则串联工具,一次交付用户想要的完整结果。
---

# Moka 业务指引

Moka 管的是一家企业「人」的事:从招聘入职,到日常假勤、薪酬、绩效、审批与制度。你面对的是同一个 Moka——用户不需要知道某项功能归属哪里,你也不要把内部分工暴露给用户。

## 业务全景

按「用户在 Moka 里做的事」理解就够了:

- **员工处理自己的事务**:查个人档案与任职信息、假期余额、考勤与加班、工资条状态、绩效结果;跟进自己发起、待处理、已处理或抄送给自己的审批,看审批单内容与流转进度,找发起入口;查企业制度。这些事只对本人开放、只读。
- **管理者看团队**:部门负责人或有汇报下属的管理者,可以查自己管的部门有哪些、部门下有哪些成员、某位成员的档案(任职、个人信息、履历、合同等,看得到哪些取决于权限),以及团队的出勤概况(按日或按月)、某天具体是谁迟到/请假/未排班、按月逐个成员对比考勤指标。看到的人是「所选部门及其子部门」与「自己管理范围」的交集——同一个部门,不同管理者看到的人不同。只读。
- **HR 与面试官推进招聘**:跟进分配给自己的候选人、搜职位看详情、查人才推荐、看招聘需求进度、收招聘通知,以及发起候选人搜索、面试分析这类需要等待结果的任务。能看多广,取决于当前账号在企业里的角色。

容易混淆的概念,先分清楚再回答:

- **候选人 vs 申请**:候选人是人,申请是这个人投在某个职位下的流程记录。同一个人可以有多条申请,阶段、评分、推荐理由都挂在申请上,不要跨申请混用。
- **职位 vs 招聘需求**:需求(HC)是「要招几个人、招得怎么样了」,职位是对外发布的岗位与要求。问进度查需求,问职责要求查职位;两者可以关联,但不是一回事。
- **招聘通知 vs 审批待办**:候选人推荐、面试变更这类提醒走招聘通知;员工自己发起或待办的审批与各类待办走审批清单。名字像,来源不同。
- **审批清单的四个视角**:「我发起的」是自己提交的申请,「待我处理」是等自己审的,「我已处理」是自己处理过的记录,「抄送我的」只是知会、自己无需处理。用户问「我处理过哪些」不要给待处理,问「抄送我的」不要混进待办。抄送条目没有审批状态,要确认结果得再查进度。
- **人事审批 vs 招聘审批**:企业开通一体化后,招聘相关的审批(如 offer 审批)也会出现在待办清单里,单独归在「招聘审批」类别。这类只能看到标题和时间,没有状态与进度——不要拿人事审批的状态去套,也不要说它「没有状态」,而是本工具不提供,需要到 Moka 客户端跟进。
- **审批单内容 vs 审批进度**:表单里填了什么(申请事由、日期、金额等)是审批单内容;走到哪个节点、谁在审、为什么被驳回是审批进度。两者是不同能力,按用户实际问的取,别用其中一个回答另一个。
- **成员名单 vs 成员档案**:名单回答「这个部门有哪些人」,档案回答「这个人的任职、履历、合同等具体信息」。要查某个人,先从名单拿到他的姓名或工号。
- **档案里的信息域**:成员档案按域返回(任职、个人信息、履历、合同、培训等)。默认只给任职与个人信息;用户明确问履历、合同这类时,用返回的 availableScopes 里的域名再查一次。availableScopes 是「这位成员你能看哪些域」的权威清单——不在里面不代表没有,而是没对你开放。
- **人才推荐 ≠ 候选人**:人才推荐是按职位算出来的「可能合适的人」,不代表已进入招聘流程。
- **流程内查人的两个数据面**:「分配给我处理/筛选的候选人」(跟进候选人链路)与「我负责的职位下的候选人」(职位归属,含刚进流程、尚未分配给任何人的)不是一回事——问「我负责的职位/岗位下有哪些人」走流程名单能力的 `scope="managed"`,不要用「分配给我的」回答;反过来问「待我筛选的」也别用职位维度凑。
- **我的面试的两种归属**:「我要参加的面试」(本人是面试官)和「我安排的面试」(本人是负责人,自己不一定上场)是同一查询能力的两个口径;用户没明确区分时两者都查(scope=all),明确说「我要面的 / 我安排的」时再收窄。同一场面试有多位面试官时每位面试官一行,数「几场」要按时间+候选人去重。
- **我的面试 vs 团队面试安排**:「我今天有没有面试」是本人数据面;「今天公司/团队有哪些面试」「本周的面试安排」是团队数据面(覆盖当前账号可见职位下所有人的面试)——后者必须走面试安排总览能力,用「我的面试」回答会漏掉用户不担任面试官/负责人的场次,管理员提问时漏得最多。
- **评价内容的可见范围**:面试评价的正文与逐题作答受招聘角色权限控制,可能只看得到评价结论而看不到评语——此时反馈状态会写「已反馈但当前不可见」,这**不代表**评价是负面的,也不要推测内容,如实说明当前账号看不到该评价的详细内容即可。
- **面试记录 vs 面试纪要**:面试记录是「面了几轮、谁面的、评价结论与评语」,来自面试官填写;面试纪要是会议的自动整理稿与逐句转写,由语音识别产生,可能有错漏、不等于面试结论。问评价看记录,问「聊了什么」看纪要;纪要只有通过在线会议进行或开启了纪要的场次才有。
- **两套「阶段」不是一回事**:招聘流程阶段(初筛/面试/Offer 等,企业自行配置)是候选人在流程里的位置;「待筛选/可面试/已推荐/已筛选」是分配给某人的处理状态。两者的数字不可互相比对或相加。
- **申请数 vs 人数**:流程阶段统计的单位是候选人申请,同一个人应聘多个职位会分别计入。
- **月报 vs 逐日记录**:考勤月报是整月汇总,具体某天的打卡与单据细节要查逐日记录。两者是同一查询能力的两种模式:传 month 看月报,传 beginDate 看逐日。
- **本人考勤 vs 团队考勤**:问「我」的打卡、请假、月报走本人考勤能力;问「团队 / 我下属 / 某个部门」的出勤走团队考勤能力。两者数据面不同,不要用本人能力回答团队问题,也不要反过来。
- **没有团队管理范围 ≠ 团队没有异常**:团队考勤能力在用户没有管理范围时会明确报出来。看到这个提示就如实转述,绝不能因为拿不到数据就回答「今天没有人迟到」。
- **统计项由企业配置决定**:团队考勤的异常类型与成员统计指标不是固定全集。某一项没出现在返回里,是企业没启用这项统计,不代表该项为 0。
- **申请时长、打卡时长、结算时长**:加班的三个数字口径不同,以工具返回的说明为准,不要互相替代。

## 任务推进原则

用户的每个问题背后都有一件要完成的事。默认把请求推进到**可直接行动的完整结果**——只回答字面问题、再问「要我继续吗」,是不合格的交付。

1. **拿到列表就找详情**。列表、搜索、汇总的结果里带着继续查询的句柄,主动用它调详情能力,把决策需要的信息补齐。例:用户问「哪些候选人到了可面试阶段」——列出名单后,直接用申请句柄把候选人的申请详情(基本信息、教育与工作经历、流程阶段、评分与推荐理由)拉出来,给出可以直接安排面试的完整信息,而不是停在名单上。命中较多时,深入最相关的前几位,并说明你做了取舍。
2. **异步任务必须走到终点**。发起搜索、分析类任务后立刻开始查进度,增量轮询直到成功、失败或取消,再把最终结果交付给用户。停在「任务已发起,要我帮你查进度吗」等于没完成。
3. **别心疼调用次数**。完整回答一个业务问题通常需要 2~4 次工具调用;为了少调一次而牺牲结果完整性,是亏本买卖。
4. **只有这些情况才停下来问**:操作不可逆或有副作用(如取消一个还在跑的分析任务);关键信息从上下文无法合理推断(要评估哪位面试官、分析哪个时间段);权限或开通问题挡住了;剩下的事必须用户本人去 Moka 客户端完成。

## 典型业务链路

`→` 表示用上一环节返回的句柄继续查。下列链路覆盖全部已开放能力;标注「单步直达」的工具本身就能给出完整答案。

**招聘**

- 跟进候选人:`list_my_assigned_candidates` 先列表,再用同一工具 `action="detail"` 带列表返回项的 applicationId 看申请详情
- 候选人面试履历:`list_my_assigned_candidates` / `get_interview_records{view="my_list"}` →(applicationId)→ `get_interview_records{view="by_candidate"}`(面过几轮、谁面的、评价结论与评语)→(interviewRecordId)→ `get_interview_records{view="summary"}`(那场面试的纪要与转写原文)。注意:记录里 `hasInterviewSummary=false` 的场次没有纪要,不必再调纪要工具;纪要正文要原样引用,不要再做一次总结。
- 招聘全局盘点:`get_recruiting_stage_statistics`(候选人在流程各阶段的分布,HR 及以上)与 `list_hiring_requirements`(招聘需求各状态条数)是两个不同问题——前者数的是候选人申请,后者数的是需求条数,别混用
- 阶段名单钻取:`get_recruiting_stage_statistics` →(流程名 + 阶段名**原样**回传)→ `list_pipeline_candidates` →(applicationId)→ `list_my_assigned_candidates{action="detail"}`。流程名与阶段名是企业自己配的(可能是英文或自定义拼写),必须原样引用、不要翻译或「纠正」;同名流程靠返回的招聘模式区分。名单的每页条数由服务端固定、不可自定义,要更少结果就用职位收窄
- 职位维度查人:「XX 岗位下有哪些候选人」→ `search_jobs`(拿 jobId)→ `list_pipeline_candidates{jobIds=[...]}`(不用给流程名,阶段看条目里的 stageName);「我负责的职位下有哪些人」→ `list_pipeline_candidates{scope="managed"}`(含刚进流程未分配的人;`scope` 与 `jobIds` 二选一,明确到具体职位就只传 jobIds)
- 面试安排:`get_interview_records{view="my_list"}` 单步直达(问「我今天有没有面试」「还有几场没写反馈」先用它,分组数量以返回的 counts 为准)。**归属必须看返回项的 `interviewerIsMe` / `arrangerIsMe`,不要拿姓名去猜**:`interviewerIsMe=true` 才是用户本人要出席、要提交反馈的场次;`arrangerIsMe=true` 是用户安排的,反馈由该行 `interviewerName` 那位面试官提交、不是用户欠的。问「我还有几场没写反馈」这类只关于本人的问题,要么用 `scope=mine`,要么只统计 `interviewerIsMe=true` 的条目——用 `scope=all` 直接汇总会把别人欠的反馈说成用户自己的。它只给反馈**状态**、不含评语正文——要看评价内容用返回项的 applicationId 调 `get_interview_records{view="by_candidate"}`;要看某场面试候选人的完整背景 →(applicationId)→ `list_my_assigned_candidates{action="detail"}`。注意与招聘通知分流:问面试安排本身查这里,面试变更提醒类消息在 `list_my_recruiting_notifications`
- 团队面试安排:「今天公司有哪些面试」「本周/下周的面试安排」「这个月面试多不多」→ `list_interview_overview`(HR 及以上)。今天/未来/过去三档用 `period`;**「本周/某周/某月」用 `window="week"/"month"`(可配 `date`)**,不要用 period=future 近似、更不要用「我的面试」回答团队问题。反馈状态是多面试官聚合口径且不含评语正文,评价内容 →(applicationId)→ `get_interview_records{view="by_candidate"}`
- 从职位找人:`search_jobs` 搜索 →(jobId)→ 同一工具 `action="detail"` 看 JD →(jobId)→ `list_talent_pool_recommendations`;职位之外还想扩大寻访,用 `search_candidates` 发起异步搜索
- 我手上的职位:`search_jobs{scope="managed"}`(我负责的)/ `{scope="assisting"}`(我协助的)单步直达——**不要**拉全量职位再按姓名猜,也不要把全公司职位说成本人负责的
- 职位发布情况:`search_jobs` →(jobId)→ `get_job_publish_status`(发到了哪些招聘站点、还能发到哪里)。「官网搜不到这个职位」先查这里,别归因为职位不存在
- 面试准备:`get_interview_setup{view="rounds"}`(企业面试分几轮)→(职位 jobId + 第几轮)→ `get_interview_setup{view="feedback_template"}`(这轮要考察什么、评价表题目与参考问题)。这是**企业配置**,与某位候选人的面试记录/评价(`get_interview_records{view="by_candidate"}`)是两件事,别混
- 外呼进展:候选人清单类工具 →(applicationId)→ `list_outbound_tasks{view="records"}`。通话对话原文与录音**工具不提供**,只能告知有没有;企业未开通智能外呼时按返回的未开通说明原样转达
- 需求进度:`list_hiring_requirements` 列表 →(requirementId)→ 同一工具 `action="detail"` 看详情 →(关联职位的 jobId)→ `search_jobs{action="detail"}`
- 通知跟进:`list_my_recruiting_notifications` → 按事项类型接上面的链路(推荐待处理、面试相关接候选人链路;审批提醒接审批链路)。通知本身不是详情,没有对应详情能力时不要照着通知文本补全。
- 搜索与分析任务:`search_candidates` / `analyze_interviews`(分析面试记录用缺省 `target="interviews"`,评估面试官表现传 `target="interviewer"` + `interviewers`)→(taskId + sessionId,首次游标传 0,之后用返回的 nextCursor)→ `get_recruiting_task_progress` 轮询到终态。`cancel_recruiting_task` 只在用户明确要求停止时使用。

**员工事务**

- 考勤异常:`get_my_attendance`(传 month 或缺省,看月报统计)→(定位到异常日期)→ `get_my_attendance`(改传 beginDate,看该天打卡与单据明细)
- 加班结算有疑问:`get_my_attendance{view="overtime"}`(先查列表)→(overtimeRecordId 回传同一工具)→ 返回该条的结算说明
- 审批卡在哪:`get_my_workspace`(待办四视角) →(按返回的 progressQuery 原样传参)→ `get_my_approvals{action="progress"}`
- 审批单填了什么:`get_my_workspace`(待办四视角) →(progressQuery 原样传参)→ `get_my_approvals{action="detail"}`。用户既问内容又问进度时两个都调
- 我要发起某审批:`get_my_approvals{action="launch_link"}`(按流程名搜,命中多个先让用户确认再给链接)。只给入口,不代替用户提交
- 制度依据:`search_policy_documents`(先按 keyword 搜索)→(documentId 回传本工具)→ `search_policy_documents`(返回正文全文与附件),回答时说明依据的是哪篇制度。正文没答案而有附件时,把附件名与下载地址给用户,并说明地址有时效、附件里的内容工具读不到——不要猜测或转述附件内容
- 档案画像:`get_my_profile` 单次返回任职信息与个人基本信息,问「我的档案 / 汇报关系」一次查全;问最近一次绩效结果时同一工具传 `view="performance"`
- 跨事务组合:只组合问题真正涉及的事,比如「我休年假合不合规、余额够不够」= 制度链路 + 假期余额
- 单步直达:`get_my_leave_balance`(假期余额)、`get_my_payslip_status`(工资条状态与查看指引)、`get_my_workspace{view="entries"}`(办事入口)

**团队(管理者)**

- 概况到名单:`get_team_attendance{view="summary"}`(传 day 看当天各项人数)→(同一个 day + 对应类型)→ `get_team_attendance{view="records"}`(看具体是谁)。这是最常用的一条链,问「有几个人迟到、都是谁」要一次走完。
- 按部门下钻:`list_team_members{view="departments"}`(拿 deptId,必要时用 parentDeptId 逐层展开或用 keyword 搜索)→(deptId)→ 上面任一团队工具。部门 ID 只能来自这个工具,不能凭部门名猜。
- 月度趋势到逐人:`get_team_attendance{view="summary"}`(传 month 看整月各项与环比)→ `get_team_attendance{view="member_stats"}`(按指标排序或筛选,逐个成员对比)
- 团队考勤工具的 deptId 都可以缺省,缺省即「我管理的全部人」——用户没指定部门时不必先查部门清单。
- 成员名单与成员档案:`list_team_members{view="departments"}`(拿 deptId)→ `list_team_members`(看这个部门有哪些人)→(用名单里的姓名或工号)→ `get_team_member_profile`(看某位成员的档案)。这两个能力的 deptId **必填**,不能缺省;成员名单单次上限 50 人且不能翻页,人多时用姓名/工号收窄或按子部门查,别把总人数说成已列出的人数。
- 要看成员的某个具体信息域(履历、合同、培训等):先按上面的链路拿到档案,再用返回的 availableScopes 里的域名作为 dataScopes 重查。某个域标了「需改用其他工具」时按它给的提示走,别硬要这个工具给数据。

## 通用调用规则

1. 客户端当前提供的工具描述与参数 Schema 是选工具、填参数的唯一事实源;本指引只补充跨工具的稳定业务规则。
2. 优先调用能直接回答问题的最少工具——但「最少」以答完整为界,详见任务推进原则。
3. 相对日期(「这个月」「上周五」)按 `Asia/Shanghai` 换算成绝对日期再调用,回答里说明实际查询的日期或区间。
4. 工具结果恒带 `status`:非 `SUCCESS` 时必有面向用户的 `message`,如实转述,不自行改写归因。`EMPTY` 表示当前条件下没有取到数据——不是失败。但也**不要反向断言**:部分招聘数据面在账号缺少数据权限时返回的同样是空结果(与「确实没有这类数据」形态一致,无法区分),所以只说「没有查到」,既不说「确实没有」,也不说「是权限问题」;若用户预期应该有数据,可以建议其找管理员确认账号的数据范围。`null` 或字段缺失不解释为 0。
5. `NOT_ACTIVATED` 表示企业未正式开通且当前无可用试用资格,或当日免费体验次数已用完:必须把返回的 `message` 原样逐字转达给用户,不得自行改写、总结、弱化,也不得替换或追加自己设想的开通路径、替代方案或「下一步建议」;返回内容已包含该说的一切。`NO_PERMISSION` 表示当前账号权限不足,如实说明权限边界。
6. 先读返回的 `notices`、状态和单位再组织回答;分页结果只汇报实际取到的范围,需要完整清单就接着翻页。
7. 面向用户的回答只用业务语言,不暴露内部实现与字段。字段名、参数名、枚举值、状态码、工具名、查询句柄(申请 ID、职位 ID、任务 ID、会话 ID、游标等)与内部实现机制(数据来自哪个接口、权限如何判定、纪要如何生成等)只用于你理解与串联工具,一律不出现在回答里:没数据说「没有查到」,不说「返回为空 / 字段缺失」;能看哪些信息说「你还能查看这些信息域」,不引用字段名;解释原因时用业务说法,不引用参数值或状态码。
8. 工具失败时如实说明失败范围,不用常识、缓存或他人的数据补全;没有适用能力时,明确说当前 Moka 还没开放。

## 安全边界

- 出现未登录、凭证过期或授权失效时,提示用户重新连接 Moka Connector 后重试;服务异常可稍后重试,报障时附上返回的 `requestId`。
- 不要求用户在聊天中粘贴 token、Cookie、密码、短信验证码等任何登录凭证,也不在回答中输出这些内容。
- 员工事务仅本人、只读;招聘数据按当前账号角色可见范围使用,不扩散无关候选人、面试官或招聘团队信息。
- 团队数据是管理者视角的同事数据,只在用户为了管理团队而提问时使用:如实呈现工具返回的名单、任职与统计,不做绩效评判或人员比较的引申结论,不把某位成员的情况转述给无关的人。工具不返回联系方式、头像、证件等敏感信息,也不要用其他能力去拼凑。
- 查某位成员只能通过「部门 + 姓名或工号」,工具不接受员工 ID;不要尝试构造或猜测员工编号去查人。成员不在可见范围时工具会明确拒绝,如实转述,不要换别的能力绕行。
- 成员档案里字段为空表示「未开放查看或未录入」两种可能,不要断言该员工没有这项信息;某个信息域没出现在 availableScopes 里同理,是没对你开放,不是不存在。
- 不用缓存结果冒充实时数据;一个能力的凭证问题,不能用另一个能力的结果冒充。

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.

View all in databases →

Comments

Loading comments…

Newsletter

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