北森 iTalent Skill
覆盖对接北森最常见的业务:换 token 与连接器授权、组织与岗位、员工与任职记录的全量 / 增量同步、入职转正调动离职、假勤读取与异步推送、招聘申请与入职管理。重点讲清滚动查询的 10 秒 / 90 天限制、各类 ID 的差别、三套响应外壳,以及文档自相矛盾的地方。
安装
选你用的 Agent,复制命令。
npx -y skills add fxp/skillify --skill beisen --agent claude-code --yes装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。
npx -y skills add fxp/skillify --skill beisen --agent codex --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill beisen --agent cursor --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill beisen --agent opencode --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill beisen --agent gemini-cli --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill beisen --agent github-copilot --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill beisen --agent trae --yes装到项目的 .trae/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill beisen --agent windsurf --yes装到项目的 .windsurf/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill beisen --agent qwen-code --yes把 --agent 换成你用的 Agent 标识,可以一次写多个。skills CLI 1.5.25 共支持 79 个,例如 qwen-code、kimi-code-cli、trae-cn、qoder、lingma、cline、roo。
或者让 Agent 自己装
读 https://github.com/fxp/skillify/blob/main/skills/beisen/prompt.md 并照它执行装对了的标志:references/ 下有 7 份文档,里面 grep '<!-- Gap:' 能搜到 1 处。
装好后,可以这样问你的 Agent
这份 Skill 覆盖的典型任务。点一下复制。
7 类能力
每类能力对应一份 reference,Agent 按任务只打开需要的那份。
鉴权与全局约定
换 token、Bearer 头、连接器与受信 IP、各类 ID、三套响应外壳、异步任务状态
组织与岗位
组织单元时间窗拉取、下级组织、按编码查、职位与职务
员工与任职记录
全量 / 增量同步、按 UserID 查、工号邮箱手机号反查、状态枚举、字段翻译
入转调离
新建待入职、入职、转正、调动、离职与外部 ID 映射
假勤
休假、假期余额、考勤记录、打卡读取与异步推送
招聘
增量拉申请、应聘者与简历、流程阶段转移、职位、单招聘入职
错误码与限流
网关错误、业务 code、公开错误码表、限流档位与重试策略
当前事实
整理自官方文档(抓取于 2026-09-11),还没有用真实凭证验证。
| 项 | 值 |
|---|---|
| Base URL | https://openapi.italent.cn |
| 换 token | POST /OAuth/Token,表单:app_id、secret、tenant_id、grant_type=client_credentials |
| 鉴权 | Authorization: Bearer <access_token>,业务接口 JSON body |
| 分页 | 组织员工 scrollId(≤300/批、≤90 天、间隔 ≤10 秒);假勤游标;招聘 batchId |
| 最易选错 | 员工当前部门要 isGetLatestRecord:false;UserID、组织 OId、职位 GUID 类型各不相同 |
照通用经验写容易错的 6 件事
来自官方文档,还没有用真实凭证验证。
- 换 token 是表单 POST 到 /OAuth/Token。不是 JSON,也不是文档模板里的 /token(无凭证探测:404);参数表要求 app_id,Demo 却没带。
- 查询也是 POST,而且没有 page/pageSize。组织员工用 scrollId 滚动,两次调用间隔超过 10 秒就续不上,时间窗超过 90 天报 417,以 data 为空结束。
- 默认取到的是“最新”而不是“当前”任职。isGetLatestRecord 默认 true;empStatus 传 null 和传 [] 结果不同;默认不含离职与实习生。
- 枚举按数字传,但起点不统一。schema 写字符串枚举名、示例全用数字;人员状态从 0 起,时间窗查询类型从 1 起;enableTranslate 已停用。
- HTTP 200 不等于成功。组织员工 code 是字符串 "417"、招聘是整数、假勤推送是大写 Code;打卡和休假推送是异步的,要用响应头 X-PAAS-Request-ID 查结果。
- 限流按租户×接口计,多个连接器共享。分钟额度常远小于秒额度×60,另有每日总量;调动、离职等相同参数 3 秒内只能请求一次。
无凭证探测
- POST /OAuth/Token 用伪造 tenant_id 返回 HTTP 400,body 为 {"error":"invalid_tenantid"},响应头带 X-RateLimit-Limit-second: 400。
- 业务接口不带 Authorization 头返回 400 {"message":"Authorization header is empty"};带伪造 token(有无 Bearer 前缀都一样)返回 401 {"message":"un-authorized"}。
- 伪造 token 请求不存在的路径同样返回 401:网关先鉴权后路由,401 不能证明路径存在。
- 文档模板里的 https://openapi.italent.cn/token 返回 404;旧版 v2.0 路径带伪造 token 返回 HTTP 500 且 body 为空。