网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Zoho Recruit技能使用说明

2026-03-25 新闻来源:网淘吧 围观:61
电脑广告
手机广告

Zoho Recruit

通过托管的 OAuth 认证访问 Zoho Recruit API。管理候选人、职位空缺、面试、申请和招聘工作流,支持完整的增删改查操作。

快速开始

# 列出所有候选人
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates?per_page=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

基础 URL

https://gateway.maton.ai/zoho-recruit/{原生API路径}

替换{原生API路径}为实际的 Zoho Recruit API 端点路径。网关会将请求代理至recruit.zoho.com并自动注入您的 OAuth 令牌。

认证

所有请求都要求在 Authorization 请求头中包含 Maton API 密钥:

Authorization: Bearer $MATON_API_KEY

环境变量:将您的 API 密钥设置为MATON_API_KEY:

export MATON_API_KEY="您的API密钥"

获取您的 API 密钥

  1. 请登录或前往maton.ai
  2. 前往maton.ai/settings
  3. 复制您的API密钥

连接管理

在以下地址管理您的Zoho Recruit OAuth连接https://ctrl.maton.ai。

列出连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=zoho-recruit&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

创建连接

python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'zoho-recruit'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

获取连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

响应:

{
  "connection": {
    "connection_id": "0c9fa9b1-80b6-4caa-afc2-8629fe4d9661",
    "status": "ACTIVE",
    "creation_time": "2026-02-06T07:48:59.474215Z",
    "last_updated_time": "2026-02-06T07:57:52.950167Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "zoho-recruit",
    "metadata": {}
  }
}

在浏览器中打开返回的url以完成OAuth授权。

删除连接

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

指定连接

如果您有多个Zoho Recruit连接,请通过以下方式指定要使用的连接Maton-连接请求头:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '0c9fa9b1-80b6-4caa-afc2-8629fe4d9661')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

如果省略,网关将使用默认(最早创建的)活动连接。

API 参考

模块

列出所有模块

获取您的 Zoho Recruit 账户中所有可用模块的列表。

GET /zoho-recruit/recruit/v2/settings/modules

示例:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/settings/modules')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

候选人

列出候选人

GET /zoho-recruit/recruit/v2/Candidates

查询参数:

参数 类型 默认值 描述
fields 字符串 - 逗号分隔的字段API名称
排序顺序 字符串 - 升序或降序
排序依据 字符串 - 用于排序的字段API名称
已转化 字符串 - 真,假, 或两者
已批准 字符串 - 真,假,或两者
页面 整数 1 页码
每页记录数 整数 200 每页记录数(最多200条)

示例:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates?per_page=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

响应:

{
  "data": [
    {
      "id": "846336000000552208",
      "First_Name": "Christina",
      "Last_Name": "Palaskas",
      "Email": "c.palaskas@example.com",
      "Candidate_Status": "已转换 - 员工",
      "Current_Employer": "Chandlers",
      "Current_Job_Title": "技术顾问",
      "Experience_in_Years": 3,
      "Skill_Set": "沟通、演示、客户服务",
      "Candidate_Owner": {
        "name": "Byungkyu Park",
        "id": "846336000000549541"
      }
    }
  ],
  "info": {
    "per_page": 10,
    "count": 1,
    "page": 1,
    "more_records": false
  }
}

通过ID获取候选人

GET /zoho-recruit/recruit/v2/Candidates/{record_id}

示例:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates/846336000000552208')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

搜索候选人

GET /zoho-recruit/recruit/v2/Candidates/search?criteria={criteria}

查询参数:

参数 类型 描述
criteria 字符串 搜索条件(例如:(Last_Name:contains:Smith))
email 字符串 按邮箱搜索
phone 字符串 按电话搜索
word 字符串 全局词语搜索
page 整数 页码
per_page 整数 每页记录数

搜索运算符:

  • 文本:等于,不等于,以...开头,以...结尾,包含,不包含,在...中
  • 日期/数字:等于,不等于大于小于大于等于小于等于介于示例:python <<'EOF' import urllib.request, os, json import urllib.parse criteria = urllib.parse.quote('(Candidate_Status:equals:Active)') req = urllib.request.Request(f'https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates/search?criteria={criteria}') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF创建候选人POST /zoho-recruit/recruit/v2/Candidates Content-Type: application/json { "data": [ { "First_Name": "John", "Last_Name": "Doe", "Email": "john.doe@example.com", "Phone": "555-123-4567", "Current_Job_Title": "Software Engineer" } ] }示例:

python <<'EOF' import urllib.request, os, json data = json.dumps({ "data": [{ "First_Name": "John", "Last_Name": "Doe", "Email": "john.doe@example.com", "Phone": "555-123-4567" }] }).encode() req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates', data=data, method='POST') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') req.add_header('Content-Type', 'application/json') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF

响应:

{ "data": [ { "code": "SUCCESS", "status": "success", "message": "record added", "details": { "id": "846336000000600001", "Created_Time": "2026-02-06T10:00:00-08:00", "Created_By": { "name": "User Name", "id": "846336000000549541" } } } ] }

更新候选人

PUT /zoho-recruit/recruit/v2/Candidates/{record_id} Content-Type: application/json { "data": [ { "Current_Job_Title": "Senior Software Engineer" } ] }

示例:

python <<'EOF' import urllib.request, os, json data = json.dumps({ "data": [{ "Current_Job_Title": "Senior Software Engineer" }] }).encode() req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates/846336000000552208', data=data, method='PUT') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') req.add_header('Content-Type', 'application/json') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF

删除候选人

Update Candidate

PUT /zoho-recruit/recruit/v2/Candidates/{record_id}
Content-Type: application/json

{
  "data": [
    {
      "Current_Job_Title": "Senior Software Engineer"
    }
  ]
}

Example:

python <<'EOF'
import urllib.request, os, json
data = json.dumps({
    "data": [{
        "Current_Job_Title": "Senior Software Engineer"
    }]
}).encode()
req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates/846336000000552208', data=data, method='PUT')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Delete Candidates

DELETE /zoho-recruit/recruit/v2/Candidates?ids={record_id1},{record_id2}

职位空缺

列出职位空缺

GET /zoho-recruit/recruit/v2/Job_Openings

示例:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Job_Openings?per_page=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

响应:

{
  "data": [
    {
      "id": "846336000000552093",
      "Posting_Title": "高级会计师(示例)",
      "Job_Opening_Status": "等待批准",
      "Date_Opened": "2026-01-21",
      "Target_Date": "2026-02-20",
      "Industry": "会计",
      "City": "塔拉哈西",
      "No_of_Candidates_Hired": 0,
      "No_of_Candidates_Associated": 0
    }
  ],
  "info": {
    "per_page": 10,
    "count": 1,
    "page": 1,
    "more_records": false
  }
}

根据ID获取职位空缺

GET /zoho-recruit/recruit/v2/Job_Openings/{record_id}

创建职位空缺

POST /zoho-recruit/recruit/v2/Job_Openings
Content-Type: application/json

{
  "data": [
    {
      "Posting_Title": "软件工程师",
      "Job_Opening_Status": "进行中",
      "Date_Opened": "2026-02-01",
      "Target_Date": "2026-03-01"
    }
  ]
}

更新职位空缺

PUT /zoho-recruit/recruit/v2/Job_Openings/{record_id}
Content-Type: application/json

删除职位空缺

DELETE /zoho-recruit/recruit/v2/Job_Openings?ids={record_id1},{record_id2}

面试

列出面试

GET /zoho-recruit/recruit/v2/Interviews

示例:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Interviews?per_page=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

通过ID获取面试

GET /zoho-recruit/recruit/v2/Interviews/{record_id}

创建面试

POST /zoho-recruit/recruit/v2/Interviews
Content-Type: application/json

{
  "data": [
    {
      "Interview_Name": "技术面试",
      "Candidate_Name": {"id": "846336000000552208"},
      "Posting_Title": {"id": "846336000000552093"},
      "Start_DateTime": "2026-02-10T10:00:00-08:00",
      "End_DateTime": "2026-02-10T11:00:00-08:00"
    }
  ]
}

部门

列出部门

GET /zoho-recruit/recruit/v2/Departments

示例:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/zoho-recruit/recruit/v2/Departments?per_page=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

申请

列出申请

GET /zoho-recruit/recruit/v2/Applications

通用记录操作

所有模块都支持相同的CRUD操作:

# 列出记录
GET /zoho-recruit/recruit/v2/{module_api_name}

# 通过ID获取记录
GET /zoho-recruit/recruit/v2/{module_api_name}/{record_id}

# 创建记录
POST /zoho-recruit/recruit/v2/{module_api_name}

# 更新记录
PUT /zoho-recruit/recruit/v2/{module_api_name}/{record_id}

# 删除记录
DELETE /zoho-recruit/recruit/v2/{module_api_name}?ids={id1},{id2}

# 搜索记录
GET /zoho-recruit/recruit/v2/{module_api_name}/search?criteria={criteria}

可用模块

模块 API名称 描述
候选人 Candidates 求职者
职位空缺 职位空缺 空缺职位
申请 申请 求职申请
面试 面试 已安排面试
部门 部门 公司部门
客户 客户 客户公司
联系人 联系人 联系人
活动 活动 招聘活动
推荐 推荐 员工推荐
任务 任务 待办事项
事件 事件 日历事件
供应商 供应商 外部供应商

分页

Zoho Recruit 使用基于页面的分页:

GET /zoho-recruit/recruit/v2/{module_api_name}?page=1&per_page=200
  • 页面:页码(默认:1)
  • 每页记录数:每页记录数(默认:200,最大:200)

响应包含分页信息:

{
  "data": [...],
  "info": {
    "per_page": 200,
    "count": 50,
    "page": 1,
    "more_records": false
  }
}

代码示例

JavaScript

const response = await fetch(
  'https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates?per_page=10',
  {
    headers: {
      'Authorization': `Bearer ${process.env.MATON_API_KEY}`
    }
  }
);
const data = await response.json();

Python

import os
import requests

response = requests.get(
    'https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates',
    headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'},
    params={'per_page': 10}
)
data = response.json()

注意事项

  • 记录ID是数字字符串(例如,846336000000552208)
  • 每个GET请求最多200条记录
  • 每个POST/PUT请求最多100条记录
  • 每个DELETE请求最多100条记录
  • 模块API名称区分大小写(例如,Job_Openings,而不是job_openings)
  • Last_Name是候选人模块的必填字段
  • 日期格式:yyyy-MM-dd
  • 日期时间格式:yyyy-MM-ddTHH:mm:ss±HH:mm(ISO 8601标准)
  • 查找字段使用包含id以及可选地包含name
  • 的JSON对象。重要提示:当使用curl命令时,如果URL包含特殊字符,请使用curl -g
  • 。重要提示:当将curl输出通过管道传递给jq或其他命令时,在某些shell环境中,像$MATON_API_KEY

这样的环境变量可能无法正确展开。

错误处理 状态码
含义 400
缺少Zoho Recruit连接或请求无效 无效或缺失的Maton API密钥
429 请求频率受限
4xx/5xx 来自Zoho Recruit API的穿透错误

常见错误代码

代码 描述
INVALID_DATA 字段值无效
MANDATORY_NOT_FOUND 缺少必填字段
DUPLICATE_DATA 检测到重复记录
INVALID_MODULE 模块API名称无效
NO_PERMISSION 权限不足

故障排除:API密钥问题

  1. 请检查MATON_API_KEY环境变量已设置:
echo $MATON_API_KEY
  1. 通过列出连接来验证API密钥是否有效:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

故障排除:应用名称无效

  1. 请确保您的URL路径以zoho-recruit开头。例如:
  • 正确示例:https://gateway.maton.ai/zoho-recruit/recruit/v2/Candidates
  • 错误示例:https://gateway.maton.ai/recruit/v2/Candidates

资源

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第252780名访客 今日有49篇新文章/评论