Description
北森 iTalent N8N 集成插件
一个功能完整的 N8N 自定义节点,用于集成北森 iTalent AI面试官 API,支持工作意向题目、作答结果、邀请链接、应聘者信息等核心功能。
🚀 特性
- ✅ AI面试官模块,完整支持北森AI面试官API
- ✅ 安全认证,自动管理Access Token和凭证刷新
- ✅ 智能分页,支持自动分页获取大量数据
- ✅ 批处理支持,可配置批量请求和请求间隔
- ✅ 数组限制,智能验证inviteIds数量(10/20/100)
- ✅ 表达式支持,完美支持n8n表达式传递数组数据
- ✅ TypeScript支持,完整的类型定义和智能提示
- ✅ 灵活扩展,基于模块化设计,易于添加新功能
📦 安装
方式一:NPM 安装 (推荐)
npm install @luka-cat-mimi/n8n-nodes-italent
方式二:手动安装
- 下载项目到本地
- 编译项目
npm install
npm run build
- 将编译后的文件复制到 N8N 的
custom目录
⚙️ 配置
1. 创建凭据
在 N8N 中创建新的 "北森 iTalent API" 凭据,填入以下信息:
| 字段 | 说明 | 示例 |
|---|---|---|
| 请求地址 | 北森API的基础地址 | https://open.italent.cn |
| App Key | 应用的App Key | your_app_key |
| App Secret | 应用的App Secret | your_app_secret |
2. 获取凭据信息
请求地址
默认使用北森开放平台地址:https://open.italent.cn
如果您使用的是私有化部署,请联系北森技术支持获取对应的API地址。
App Key 和 App Secret
- 登录北森开放平台(https://open.italent.cn)
- 进入"应用管理"页面
- 创建或查看应用,获取 App Key 和 App Secret
📊 功能模块
AI面试官模块
| 操作 | 限制 | 主要功能 |
|---|---|---|
| 获取工作意向题目详情 | – | 获取AI面试的工作意向题目,支持自动分页 |
| 获取作答结果 | 最多10个ID | 批量获取面试作答结果 |
| 发起AI面试 | – | 根据规则对象发起AI面试 |
| 获取邀请链接 | 最多20个ID | 批量获取面试邀请链接 |
| 获取通知模板列表 | – | 获取所有启用的AI面试通知模板,支持自动分页 |
| 取消AI面试 | 最多100个ID | 批量取消AI面试 |
| 获取应聘者信息 | 最多100个ID | 获取AI面试应聘者详细信息 |
| 获取活动数据 | – | 获取所有启用的AI面试活动,支持自动分页 |
核心特性
1. 智能数组限制
不同操作有不同的inviteIds数量限制:
- 获取作答结果:最多 10 个
- 获取邀请链接:最多 20 个
- 获取应聘者信息:最多 100 个
- 取消AI面试:最多 100 个
2. 表达式支持
所有inviteIds字段支持:
- JSON字符串:
["id1", "id2", "id3"] - n8n表达式:
{{ $json.inviteIds }} - 自动类型转换和验证
3. 自动分页
以下操作支持 Return All 开关自动获取所有分页数据:
- 获取工作意向题目详情
- 获取通知模板列表
- 获取活动数据
4. 批处理配置
所有操作都支持Options配置:
- Batching:批量处理和间隔控制
- Timeout:请求超时设置
🔧 使用示例
示例1:获取作答结果
// 使用JSON字符串
Invite IDs: ["7e35949f-6e10-401a-b507-618eaa015130", "bf50fc2a-e009-49c2-8b1b-c2e1675a0dc9"]
// 或使用表达式
Invite IDs: {{ $json.inviteIds }}
示例2:获取邀请链接
// 最多20个ID
Invite IDs: {{ $items().map(item => item.json.inviteId).slice(0, 20) }}
示例3:自动分页获取工作意向题目
- 选择操作:获取工作意向题目详情
- 开启 Return All 开关
- 系统自动处理分页,返回所有题目数据
示例4:批量获取应聘者信息
// 最多100个ID,支持额外字段
Invite IDs: {{ $json.inviteIds }}
Ext Columns: ["name", "height", "weight", "Email"]
// 配置批处理(避免频控)
Options → Batching:
- Items per Batch: 50
- Batch Interval: 1000ms
🔧 开发
项目结构
n8n-nodes-italent/
├── credentials/ # 凭据定义
│ └── ITalentApi.credentials.ts
├── nodes/ # 节点定义
│ ├── help/ # 工具类和类型定义
│ │ ├── builder/ # 资源构建器
│ │ ├── type/ # 类型定义
│ │ └── utils/ # 工具函数
│ └── ITalent/
│ ├── ITalent.node.ts
│ └── resource/ # 资源模块
│ └── aiInterview/ # AI面试官模块
│ ├── GetWorkIntentionQuestions.ts
│ ├── GetAIInterviewReportResult.ts
│ ├── ArrangeAIInterview.ts
│ ├── GetInviteTestUrl.ts
│ ├── GetSysMessageTemplateList.ts
│ ├── CancelAIInterview.ts
│ ├── GetInviteRecordInfo.ts
│ └── GetActivityViewActivities.ts
└── package.json
构建命令
# 开发模式
npm run dev
# 构建
npm run build
# 代码检查
npm run lint
# 格式化代码
npm run format
添加新操作
参考现有的AI面试官操作文件,在 nodes/ITalent/resource/aiInterview/ 下创建新的操作文件。
所有操作都遵循统一的模式:
- 支持表达式和JSON字符串输入
- 包含Options配置(Batching和Timeout)
- 智能验证和错误提示
- 自动批次延迟处理
就这样! 无需修改其他任何代码,新操作会被自动发现和加载。
🤝 贡献
欢迎提交 Issue 和 Pull Request!
贡献指南
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
📝 许可证
本项目采用 MIT 许可证。详情请参见 LICENSE.md 文件。
🆘 支持
- 📧 邮箱:luka.cat.mimi@gmail.com
- 🐛 问题反馈:GitHub Issues
- 📖 北森开放平台:官方文档
⭐ 致谢
感谢 N8N 提供的强大自动化平台
如果这个项目对你有帮助,请给它一个 ⭐️!