网淘吧来吧,欢迎您!

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

Zoho Recruit

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

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

资源

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

相关文章

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