招聘平台 API 接口文档
招聘平台 API 接口文档
文档说明
本文档详细描述了招聘平台系统的RESTful API接口规范,包括请求格式、响应格式、错误码定义等。
文档版本
- 版本: v3.0.0
- 更新日期: 2026-01-25
- 作者: Geluli
- 状态: 生产环境可用
更新日志
v3.0.0
- ✅ 所有接口统一改为POST请求(原GET接口已废弃)
- ✅ 所有请求体(PUT/DELETE)改为POST请求
- ✅ 所有接口支持 lang 参数用于国际化
- ✅ 优化语言检测优先级机制
- ✅ 完善请求结构体定义
v2.1.0
- ✅ 多语言支持完善
- ✅ 数据库低耦合改造(移除外键约束)
基础信息
- API Base URL:
- 认证方式: JWT Bearer Token
- 数据格式: JSON
- 字符编码: UTF-8
- 请求方法: 所有接口统一使用 POST
- 测试验证码: 123456 (短信和邮箱通用,临时测试用)
- 支持语言: zh-CN, en, kk, ar
多语言支持
系统支持多语言国际化,所有接口响应将根据语言设置返回对应语言的错误消息和提示信息。
语言设置方式
优先级顺序:
- 请求头中的 Accept-Language 字段(最高优先级)
- URL查询参数 ?lang=zh-CN
- JSON请求体中的 lang 字段
- 用户个人资料中的语言偏好
- 系统默认语言(zh-CN)
支持的语言列表
| 语言 | 代码 | 地区 | 状态 |
|---|---|---|---|
| 中文简体 | zh-CN | 中国 | ✅ 已支持 |
| 英语 | en | 国际通用 | ✅ 已支持 |
| 哈萨克语 | kk | 哈萨克斯坦 | ✅ 已支持 |
| 阿拉伯语 | ar | 迪拜/中东地区 | ✅ 已支持 |
通用约定
请求头(Request Headers)
Content-Type: application/json
Accept: application/json
Accept-Language: zh-CN # 可选:zh-CN, en, kk, ar
Authorization: Bearer {jwt_token} # 需要认证的接口请求参数中的 lang 字段
**所有接口都支持 **
- 类型: string
- 必填: 否
- 说明: 指定响应消息的语言
- 示例值: zh-CN, en, kk, ar
- 默认: 用户偏好语言或系统默认语言(zh-CN)
使用示例:
{
"username": "testuser",
"password": "123456",
"lang": "en"
}响应格式(Response Format)
{
"code": 200,
"message": "操作成功",
"data": {
// 具体业务数据
},
"timestamp": "2026-01-25T10:30:00Z"
}错误码(Error Codes)
| 错误码 | 说明 | HTTP状态码 |
|---|---|---|
| 200 | 成功 | 200 |
| 400 | 请求参数错误 | 400 |
| 401 | 未授权 | 401 |
| 403 | 权限不足 | 403 |
| 404 | 资源不存在 | 404 |
| 409 | 资源冲突 | 409 |
| 500 | 服务器内部错误 | 500 |
目录
- 认证接口
- 验证码接口
- 密码重置接口
- 公共功能接口
- 用户资料接口
- 求职者接口
- 简历管理接口
- 企业认证接口
- 企业管理接口
- 职位管理接口
- 人才库管理接口
- VIP会员接口
认证接口(Authentication)
1. 用户注册
接口地址
认证
请求参数
{
"phone": "13800138000", // 手机号(与邮箱二选一)
"email": "user@example.com", // 邮箱(与手机号二选一)
"password": "123456", // 密码(必填,最少6位)
"user_type": "jobseeker", // 用户类型(必填):jobseeker/company/both
"country": "CN", // 国家代码(可选)
"phone_code": "123456", // 手机验证码(可选)
"email_code": "123456", // 邮箱验证码(可选)
"lang": "zh-CN" // 语言代码(可选)
}说明
- 必填字段:password、user_type
- 二选一字段:phone 和 email 至少提供一个
- 可选字段:country、phone_code、email_code、lang
- 验证码:开发环境下可省略,或使用默认验证码 123456
- 不传验证码:直接注册成功(开发环境)
- 传 123456:验证通过(开发环境默认验证码)
- 传其他值:需要配置短信/邮箱服务验证(生产环境)
- user_type:
- jobseeker:求职者
- company:企业
- both:既是求职者又是企业
响应示例
{
"code": 200,
"message": "注册成功",
"data": {
"user_id": 1,
"username": "user_13800138000",
"phone": "13800138000",
"email": "user@example.com",
"country": "CN",
"resume_id": 1
},
"timestamp": "2026-01-25T10:30:00Z"
}说明
- user_id: 用户ID
- username: 系统自动生成的用户名
- phone/email: 手机号或邮箱(取决于注册时使用的是哪个)
- country: 国家代码
- resume_id: 简历ID(仅求职者或双重角色返回)
- 系统会自动为求职者创建一份空简历
- 后续可使用此 resume_id 来完善简历信息
- 企业用户注册时不会返回此字段
错误响应
{
"code": 409,
"message": "手机号已存在",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}2. 用户登录
接口地址
认证
请求参数
{
"account": "13800138000", // 手机号或邮箱(必填)
"password": "123456", // 密码(必填)
"current_role": "jobseeker", // 当前角色(可选):jobseeker/company
"code": "123456", // 验证码(可选)
"code_type": "sms", // 验证码类型(可选):sms/email
"lang": "zh-CN" // 语言代码(可选)
}说明
- 必填字段:account、password
- 可选字段:current_role、code、code_type、lang
- 验证码:开发环境下可省略,或使用默认验证码 123456
- 不传验证码:直接登录成功(开发环境)
- 传 123456:验证通过(开发环境默认验证码)
- 传其他值:需要配置短信/邮箱服务验证(生产环境)
- current_role:
- 如果用户只有一种角色,可省略
- 如果用户有多种角色(jobseeker和company),必须指定当前角色
响应示例
{
"code": 200,
"message": "登录成功",
"data": {
"user_id": 1,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "",
"expires_in": 259200,
"current_role": "jobseeker",
"available_roles": ["jobseeker", "company"],
"user_info": {
"user_id": 1,
"user_type": "both",
"phone": "13800138000",
"email": "user@example.com",
"avatar": "",
"status": "active",
"country": "CN",
"lang": "zh-CN",
"is_authenticated": false,
"vip_level": 0,
"resume_id": 1
}
},
"timestamp": "2026-01-25T10:30:00Z"
}说明
- user_info.resume_id: 简历ID(仅当 current_role 为 jobseeker 时返回)
- 企业角色登录时不会有此字段
3. 切换角色
接口地址
认证
请求参数
{
"role": "company", // 目标角色(必填):jobseeker/company
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "角色切换成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"current_role": "company"
},
"timestamp": "2026-01-25T10:30:00Z"
}4. 获取用户角色列表
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "获取数据成功",
"data": {
"current_role": "jobseeker",
"available_roles": [
{
"role": "jobseeker",
"name": "求职者",
"status": "active",
"authenticated": false
},
{
"role": "company",
"name": "企业用户",
"status": "active",
"authenticated": false
}
]
},
"timestamp": "2026-01-25T10:30:00Z"
}5. 用户登出
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "登出成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}6. 修改密码
接口地址
认证
请求参数
{
"old_password": "123456", // 原密码(必填)
"new_password": "654321", // 新密码(必填,最少6位)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "密码修改成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}7. 获取用户资料
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "获取数据成功",
"data": {
"user_id": 1,
"username": "user_13800138000",
"phone": "13800138000",
"email": "user@example.com",
"country": "CN",
"lang": "zh-CN",
"avatar": "",
"status": "active"
},
"timestamp": "2026-01-25T10:30:00Z"
}8. 更新用户资料
接口地址
认证
请求参数
{
"username": "newusername", // 用户名(可选)
"country": "CN", // 国家代码(可选)
"lang": "zh-CN", // 语言代码(可选)
"avatar": "http://example.com/avatar.jpg" // 头像URL(可选)
}响应示例
{
"code": 200,
"message": "资料更新成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}9. 更新用户头像
接口地址
认证
请求类型
请求参数
- avatar: 头像文件(必填,最大2MB,支持jpg/png/gif)
响应示例
{
"code": 200,
"message": "头像更新成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}验证码接口(Verification)
1. 发送短信验证码
接口地址
认证
请求参数
{
"phone": "13800138000", // 手机号(必填)
"type": "register", // 验证码类型(必填):register/login/reset_password/change_phone
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "验证码发送成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}2. 发送邮箱验证码
接口地址
认证
请求参数
{
"email": "user@example.com", // 邮箱(必填)
"type": "register", // 验证码类型(必填):register/login/reset_password/change_email
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "验证码发送成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}3. 验证验证码
接口地址
认证
请求参数
{
"phone": "13800138000", // 手机号(与邮箱二选一)
"email": "user@example.com", // 邮箱(与手机号二选一)
"code": "123456", // 验证码(必填)
"type": "register", // 验证码类型(必填)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "验证码验证成功",
"data": {
"valid": true
},
"timestamp": "2026-01-25T10:30:00Z"
}密码重置接口(Password)
1. 发送重置密码验证码
接口地址
认证
请求参数
{
"account": "13800138000", // 手机号或邮箱(必填)
"code_type": "sms", // 验证码类型(必填):sms/email
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "验证码发送成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}2. 重置密码
接口地址
认证
请求参数
{
"account": "13800138000", // 手机号或邮箱(必填)
"code": "123456", // 验证码(必填)
"code_type": "sms", // 验证码类型(必填):sms/email
"new_password": "654321", // 新密码(必填,最少6位)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "密码重置成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}公共功能接口(Public Features)
1. 获取轮播图
接口地址
认证
请求参数
{
"position": "home", // 位置(必填):home/job/company/all
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "获取轮播图成功",
"data": {
"banners": [
{
"id": 1,
"title": "新年特招",
"image_url": "http://example.com/banner1.jpg",
"link_url": "http://example.com/event1",
"position": "home",
"order": 1,
"status": "active"
}
],
"position": "home"
},
"timestamp": "2026-01-25T10:30:00Z"
}2. 获取热门搜索关键词
接口地址
认证
请求参数
{
"type": "job", // 类型(必填):job/company/all
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "获取热门搜索成功",
"data": {
"keywords": [
"Java开发",
"产品经理",
"UI设计师",
"数据分析师"
],
"type": "job"
},
"timestamp": "2026-01-25T10:30:00Z"
}3. 健康检查
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "服务健康",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}求职者接口(Jobseeker)
1. 获取求职者个人资料
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "获取数据成功",
"data": {
"user_id": 1,
"real_name": "张三",
"phone": "13800138000",
"email": "user@example.com",
"gender": "male",
"birth_date": "1990-01-01",
"location": "北京",
"avatar": "http://example.com/avatar.jpg"
},
"timestamp": "2026-01-25T10:30:00Z"
}2. 获取投递记录
接口地址
认证
请求参数
{
"page": 1, // 页码(可选,默认1)
"pageSize": 10, // 每页数量(可选,默认10)
"status": "pending", // 投递状态(可选):pending/viewed/interview/rejected/hired
"lang": "zh-CN" // 语言代码(可选)
}说明
- 必填字段:无
- 可选字段:page、pageSize、status、lang
- status 状态说明:
- pending:已投递(等待查看)
- viewed:已查看(企业已查看简历)
- interview:面试中(已邀请面试)
- rejected:不合适(已拒绝)
- hired:已录用
- 不传 status:返回所有状态的投递记录
响应示例
{
"code": 200,
"message": "获取数据成功",
"data": {
"deliveries": [
{
"id": 1,
"job_id": 100,
"job_title": "Java开发工程师",
"company_name": "某科技公司",
"status": "pending",
"created_at": "2026-01-20T10:00:00Z"
}
],
"total": 50,
"page": 1,
"pageSize": 10,
"totalPage": 5
},
"timestamp": "2026-01-25T10:30:00Z"
}2.1. 取消投递记录
接口地址
认证
请求参数
{
"deliveryId": 1, // 投递记录ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "取消投递成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}3. 获取收藏列表
接口地址
认证
请求参数
{
"type": "job", // 收藏类型(可选):job/company/all
"page": 1, // 页码(可选,默认1)
"page_size": 10, // 每页数量(可选,默认10)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "获取数据成功",
"data": {
"favorites": [
{
"id": 1,
"type": "job",
"target_id": 100,
"job_title": "Java开发工程师",
"company_name": "某科技公司"
}
],
"total": 20,
"page": 1,
"page_size": 10
},
"timestamp": "2026-01-25T10:30:00Z"
}4. 添加收藏
接口地址
认证
请求参数
{
"type": "job", // 收藏类型(必填):job/company
"targetId": 100, // 目标ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "收藏成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}5. 取消收藏
接口地址
认证
请求参数
{
"favoriteId": 1, // 收藏ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "取消收藏成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}6. 投递职位
接口地址
认证
请求参数
{
"jobId": 100, // 职位ID(必填)
"resumeId": 1, // 简历ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "投递成功",
"data": null,
"timestamp": "2026-01-25T10:30:00Z"
}7. 获取面试通知
接口地址
认证
请求参数
{
"page": 1, // 页码(可选,默认1)
"pageSize": 10, // 每页数量(可选,默认10)
"status": "upcoming", // 面试状态(可选):upcoming/completed/cancelled
"lang": "zh-CN" // 语言代码(可选)
}说明
- 必填字段:无
- 可选字段:page、pageSize、status、lang
- status 状态说明:
- upcoming:即将进行的面试
- completed:已完成的面试
- cancelled:已取消的面试
- 不传 status:返回所有状态的面试
响应示例
{
"code": 200,
"message": "获取数据成功",
"data": {
"interviews": [
{
"id": 1,
"company_name": "某科技公司",
"job_title": "Java开发工程师",
"interview_time": "2026-01-30T14:00:00Z",
"interview_type": "online",
"location": "线上面试",
"status": "upcoming"
}
],
"total": 5,
"page": 1,
"pageSize": 10,
"totalPage": 1
},
"timestamp": "2026-01-25T10:30:00Z"
}简历管理接口(Resume)
说明
- 求职者注册时系统会自动创建一份简历
- 求职者用户登录后可通过 user_info.resume_id 获取简历ID
- 一个用户只有一份简历,无需创建多份简历
- 所有简历相关操作需要提供 resume_id 参数
1. 获取工作经历
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "简历创建成功",
"data": {
"resume_id": 1,
"status": "pending",
"created_at": "2026-01-25T10:30:00Z"
},
"timestamp": "2026-01-25T10:30:00Z"
}说明
- resume_id: 新创建的简历ID(用于后续简历操作)
- status: 初始状态为 pending(待完善)
- 创建后可以通过其他接口完善简历信息(基本信息、工作经历、教育经历等)
3. 获取工作经历
接口地址
认证
请求参数
{
"resume_id": 1, // 简历ID(可选)
"lang": "zh-CN" // 语言代码(可选)
}2. 创建工作经历
接口地址
认证
请求参数
{
"resumeId": 1, // 简历ID(必填)
"companyName": "某科技公司", // 公司名称(必填)
"position": "Java开发工程师", // 职位(必填)
"industry": "互联网", // 行业(可选)
"startDate": "2020-01", // 开始日期(必填)
"endDate": "2022-12", // 结束日期(可选)
"isCurrent": false, // 是否在职(可选)
"location": "北京", // 工作地点(可选)
"description": "负责后端开发", // 工作描述(可选)
"salaryMin": 15000, // 最低薪资(可选)
"salaryMax": 20000, // 最高薪资(可选)
"currency": "CNY", // 货币(可选)
"workType": "full_time", // 工作类型(可选)
"displayOrder": 1, // 显示顺序(可选)
"lang": "zh-CN" // 语言代码(可选)
}3. 更新工作经历
接口地址
认证
请求参数
{
"id": 1, // 工作经历ID(必填)
"resume_id": 1, // 简历ID(可选)
"company_name": "某科技公司", // 公司名称(必填)
"position": "Java开发工程师", // 职位(必填)
"industry": "互联网", // 行业(可选)
"start_date": "2020-01", // 开始日期(必填)
"end_date": "2022-12", // 结束日期(可选)
"is_current": false, // 是否在职(可选)
"location": "北京", // 工作地点(可选)
"description": "负责后端开发", // 工作描述(可选)
"salary_min": 15000, // 最低薪资(可选)
"salary_max": 20000, // 最高薪资(可选)
"currency": "CNY", // 货币(可选)
"work_type": "full_time", // 工作类型(可选)
"display_order": 1, // 显示顺序(可选)
"lang": "zh-CN" // 语言代码(可选)
}4. 删除工作经历
接口地址
认证
请求参数
{
"id": 1, // 工作经历ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}5. 获取教育经历
接口地址
认证
请求参数
{
"resume_id": 1, // 简历ID(可选)
"lang": "zh-CN" // 语言代码(可选)
}6. 创建教育经历
接口地址
认证
请求参数
{
"resumeId": 1, // 简历ID(必填)
"schoolName": "北京大学", // 学校名称(必填)
"degree": "本科", // 学位(必填)
"major": "计算机科学与技术", // 专业(必填)
"educationLevel": "bachelor", // 学历层次(必填)
"startDate": "2016-09", // 开始日期(必填)
"endDate": "2020-06", // 结束日期(可选)
"isCurrent": false, // 是否在读(可选)
"location": "北京", // 学校地点(可选)
"description": "优秀毕业生", // 描述(可选)
"gpa": 3.8, // GPA(可选)
"displayOrder": 1, // 显示顺序(可选)
"lang": "zh-CN" // 语言代码(可选)
}7. 更新教育经历
接口地址
认证
请求参数
{
"id": 1, // 教育经历ID(必填)
"resume_id": 1, // 简历ID(可选)
"school_name": "北京大学", // 学校名称(必填)
"degree": "本科", // 学位(必填)
"major": "计算机科学与技术", // 专业(必填)
"education_level": "bachelor", // 学历层次(必填)
"start_date": "2016-09", // 开始日期(必填)
"end_date": "2020-06", // 结束日期(可选)
"is_current": false, // 是否在读(可选)
"location": "北京", // 学校地点(可选)
"description": "优秀毕业生", // 描述(可选)
"gpa": 3.8, // GPA(可选)
"display_order": 1, // 显示顺序(可选)
"lang": "zh-CN" // 语言代码(可选)
}8. 删除教育经历
接口地址
认证
请求参数
{
"id": 1, // 教育经历ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}9. 获取技能列表
接口地址
认证
请求参数
{
"resume_id": 1, // 简历ID(可选)
"lang": "zh-CN" // 语言代码(可选)
}10. 更新技能
接口地址
认证
请求参数
{
"resumeId": 1, // 简历ID(必填)
"skills": [ // 技能列表(必填)
{
"skillName": "Java", // 技能名称(必填)
"skillLevel": "熟练", // 技能等级(必填)
"category": "编程语言", // 分类(可选)
"monthsOfExperience": 36, // 经验月数(可选)
"displayOrder": 1 // 显示顺序(可选)
}
],
"lang": "zh-CN" // 语言代码(可选)
}11. 获取附件列表
接口地址
认证
请求参数
{
"resume_id": 1, // 简历ID(可选)
"lang": "zh-CN" // 语言代码(可选)
}12. 创建附件
接口地址
认证
请求参数
{
"resumeId": 1, // 简历ID(必填)
"fileName": "简历.pdf", // 文件名(必填)
"fileUrl": "http://example.com/resume.pdf", // 文件URL(必填)
"fileSize": 102400, // 文件大小(必填,字节)
"fileType": "pdf", // 文件类型(必填)
"attachmentType": "resume", // 附件类型(必填)
"isPrimary": true, // 是否主简历(可选)
"lang": "zh-CN" // 语言代码(可选)
}13. 删除附件
接口地址
认证
请求参数
{
"id": 1, // 附件ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}14. 设置主附件
接口地址
认证
请求参数
{
"id": 1, // 附件ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}15. 获取简历预览
接口地址
认证
请求参数
{
"resume_id": 1, // 简历ID(可选)
"lang": "zh-CN" // 语言代码(可选)
}16. 获取简历状态
接口地址
认证
请求参数
{
"resume_id": 1, // 简历ID(可选)
"lang": "zh-CN" // 语言代码(可选)
}17. 求职者身份认证提交
接口地址
认证
请求参数
{
"userId": 1, // 用户ID(必填)
"realName": "张三", // 真实姓名(必填)
"idCardNumber": "110101199001011234", // 身份证号(必填)
"idCardFront": "http://example.com/front.jpg", // 身份证正面(必填)
"idCardBack": "http://example.com/back.jpg", // 身份证背面(必填)
"lang": "zh-CN" // 语言代码(可选)
}18. 获取身份认证状态
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}19. 获取身份认证详情
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}企业认证接口(Company Authentication)
1. 提交企业认证
接口地址
认证
请求参数
{
"name": "某科技公司", // 企业名称(必填)
"industry": "互联网", // 行业(必填)
"scale": "100-499人", // 规模(必填)
"location": "北京", // 地址(必填)
"website": "http://example.com", // 网站(可选)
"introduction": "一家领先的互联网公司", // 简介(必填)
"business_license": "http://example.com/license.jpg", // 营业执照(必填)
"logo": "http://example.com/logo.jpg", // Logo(可选)
"lang": "zh-CN" // 语言代码(可选)
}2. 获取企业信息
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}3. 更新企业信息
接口地址
认证
请求参数
{
"name": "某科技公司", // 企业名称(可选)
"industry": "互联网", // 行业(可选)
"scale": "100-499人", // 规模(可选)
"location": "北京", // 地址(可选)
"website": "http://example.com", // 网站(可选)
"introduction": "一家领先的互联网公司", // 简介(可选)
"logo": "http://example.com/logo.jpg", // Logo(可选)
"lang": "zh-CN" // 语言代码(可选)
}企业管理接口(Company Management)
1. 获取企业仪表板
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "获取数据成功",
"data": {
"total_jobs": 50,
"active_jobs": 30,
"total_deliveries": 500,
"pending_interviews": 10,
"recent_jobs": [],
"recent_interviews": []
},
"timestamp": "2026-01-25T10:30:00Z"
}2. 获取职位列表
接口地址
认证
请求参数
{
"page": 1, // 页码(可选,默认1)
"pageSize": 10, // 每页数量(可选,默认10)
"lang": "zh-CN" // 语言代码(可选)
}3. 创建职位
接口地址
认证
请求参数
{
"title": "Java开发工程师", // 职位标题(必填)
"description": "岗位描述", // 职位描述(必填)
"salaryMin": 15000.0, // 最低薪资(必填)
"salaryMax": 20000.0, // 最高薪资(必填)
"salaryUnit": "month", // 薪资单位(必填)
"workLocation": "北京", // 工作地点(必填)
"workType": "full_time", // 工作类型(必填)
"experience": "3-5年", // 工作经验(可选)
"education": "本科", // 学历要求(可选)
"skills": ["Java", "Spring"], // 技能要求(可选)
"benefits": ["五险一金", "年终奖"], // 福利待遇(可选)
"tags": ["急招", "高薪"], // 职位标签(可选)
"lang": "zh-CN" // 语言代码(可选)
}4. 获取职位详情
接口地址
认证
请求参数
{
"job_id": 1, // 职位ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}5. 更新职位
接口地址
认证
请求参数
{
"job_id": 1, // 职位ID(必填)
"title": "Java开发工程师", // 职位标题(必填)
"description": "岗位描述", // 职位描述(必填)
"salaryMin": 15000.0, // 最低薪资(必填)
"salaryMax": 20000.0, // 最高薪资(必填)
"salaryUnit": "month", // 薪资单位(必填)
"workLocation": "北京", // 工作地点(必填)
"workType": "full_time", // 工作类型(必填)
"experience": "3-5年", // 工作经验(可选)
"education": "本科", // 学历要求(可选)
"skills": ["Java", "Spring"], // 技能要求(可选)
"benefits": ["五险一金", "年终奖"], // 福利待遇(可选)
"tags": ["急招", "高薪"], // 职位标签(可选)
"lang": "zh-CN" // 语言代码(可选)
}6. 删除职位
接口地址
认证
请求参数
{
"job_id": 1, // 职位ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}7. 更新职位状态
接口地址
认证
请求参数
{
"job_id": 1, // 职位ID(必填)
"status": "active", // 状态(必填):draft/active/closed/filled
"lang": "zh-CN" // 语言代码(可选)
}8. 获取面试列表
接口地址
认证
请求参数
{
"page": 1, // 页码(可选,默认1)
"page_size": 10, // 每页数量(可选,默认10)
"lang": "zh-CN" // 语言代码(可选)
}9. 发起面试邀约
接口地址
认证
请求参数
{
"userId": 1, // 求职者ID(必填)
"jobId": 1, // 职位ID(必填)
"interviewTime": "2026-01-30T14:00:00Z", // 面试时间(必填)
"interviewType": "online", // 面试类型(必填):online/offline
"location": "线上面试", // 面试地点(线下必填)
"interviewer": "张经理", // 面试官(可选)
"interviewerPhone": "13800138000", // 面试官电话(可选)
"notes": "请准备作品集", // 备注(可选)
"lang": "zh-CN" // 语言代码(可选)
}公共前端接口(Public)
1. 获取首页内容
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}2. 搜索职位
接口地址
认证
请求参数
{
"keyword": "Java", // 关键词(可选)
"location": "北京", // 地点(可选)
"industry": "互联网", // 行业(可选)
"salary_min": 10000, // 最低薪资(可选)
"salary_max": 30000, // 最高薪资(可选)
"work_type": "full_time", // 工作类型(可选)
"experience": "3-5年", // 工作经验(可选)
"education": "本科", // 学历(可选)
"page": 1, // 页码(可选,默认1)
"page_size": 10, // 每页数量(可选,默认10)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "搜索成功",
"data": {
"jobs": [
{
"id": 1,
"title": "Java开发工程师",
"company_name": "某科技公司",
"salary_min": 15000,
"salary_max": 20000,
"salary_unit": "month",
"location": "北京",
"work_type": "full_time"
}
],
"total": 100,
"page": 1,
"page_size": 10
},
"timestamp": "2026-01-25T10:30:00Z"
}3. 获取职位详情(公共)
接口地址
认证
请求参数
{
"job_id": 1, // 职位ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}4. 搜索公司
接口地址
认证
请求参数
{
"keyword": "科技", // 关键词(可选)
"industry": "互联网", // 行业(可选)
"location": "北京", // 地点(可选)
"page": 1, // 页码(可选,默认1)
"page_size": 10, // 每页数量(可选,默认10)
"lang": "zh-CN" // 语言代码(可选)
}5. 获取公司详情
接口地址
认证
请求参数
{
"company_id": 1, // 公司ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}6. 获取公司职位列表
接口地址
认证
请求参数
{
"company_id": 1, // 公司ID(必填)
"page": 1, // 页码(可选,默认1)
"page_size": 10, // 每页数量(可选,默认10)
"lang": "zh-CN" // 语言代码(可选)
}人才库管理接口(Talent Pool)
1. 获取人才库列表
接口地址
认证
请求参数
{
"page": 1, // 页码(可选,默认1)
"page_size": 10, // 每页数量(可选,默认10)
"lang": "zh-CN" // 语言代码(可选)
}2. 添加到人才库
接口地址
认证
请求参数
{
"jobseekerId": 1, // 求职者ID(必填)
"source": "delivery", // 来源(必填):delivery/search/manual
"notes": "优秀的候选人", // 备注(可选)
"lang": "zh-CN" // 语言代码(可选)
}3. 更新人才库状态
接口地址
认证
请求参数
{
"id": 1, // 人才库记录ID(必填)
"status": "contacted", // 状态(必填):new/contacted/interviewed/hired/rejected
"notes": "已电话沟通", // 备注(可选)
"lang": "zh-CN" // 语言代码(可选)
}4. 从人才库移除
接口地址
认证
请求参数
{
"id": 1, // 人才库记录ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}VIP会员接口(VIP)
1. 获取VIP套餐列表
接口地址
认证
请求参数
{
"type": "jobseeker", // 套餐类型(可选):jobseeker/company/all
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "获取数据成功",
"data": {
"packages": [
{
"id": 1,
"name": "求职者月卡",
"type": "jobseeker",
"price": 9900,
"currency": "CNY",
"duration": 30,
"benefits": ["查看联系方式", "优先推荐"]
}
]
},
"timestamp": "2026-01-25T10:30:00Z"
}2. 获取VIP状态
接口地址
认证
请求参数
{
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "获取数据成功",
"data": {
"is_vip": true,
"level": 1,
"expire_at": "2026-02-25T10:30:00Z",
"remaining_days": 30
},
"timestamp": "2026-01-25T10:30:00Z"
}3. 创建订单
接口地址
认证
请求参数
{
"packageId": "1", // 套餐ID(必填)
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "订单创建成功",
"data": {
"order_no": "20260125001",
"amount": 9900,
"status": "pending"
},
"timestamp": "2026-01-25T10:30:00Z"
}4. 支付订单
接口地址
认证
请求参数
{
"orderNo": "20260125001", // 订单号(必填)
"paymentMethod": "alipay", // 支付方式(必填):alipay/wechat/balance
"lang": "zh-CN" // 语言代码(可选)
}响应示例
{
"code": 200,
"message": "支付成功",
"data": {
"order_no": "20260125001",
"status": "paid"
},
"timestamp": "2026-01-25T10:30:00Z"
}5. 获取订单列表
接口地址
认证
请求参数
{
"page": 1, // 页码(可选,默认1)
"page_size": 10, // 每页数量(可选,默认10)
"lang": "zh-CN" // 语言代码(可选)
}6. 获取订单详情
接口地址
认证
请求参数
{
"order_no": "20260125001", // 订单号(必填)
"lang": "zh-CN" // 语言代码(可选)
}附录
A. 错误码完整列表
| 错误码 | 英文标识 | 中文说明 |
|---|---|---|
| 200 | success | 操作成功 |
| 400 | params_invalid | 请求参数错误 |
| 400 | password_incorrect | 密码错误 |
| 400 | code_invalid | 验证码错误或已过期 |
| 400 | user_not_found | 用户不存在 |
| 400 | sms_code_invalid | 短信验证码错误 |
| 400 | email_code_invalid | 邮箱验证码错误 |
| 400 | avatar_required | 头像文件必传 |
| 400 | avatar_too_large | 头像文件过大(最大2MB) |
| 400 | avatar_format_invalid | 头像格式不支持(仅支持jpg/png/gif) |
| 400 | username_exists | 用户名已被占用 |
| 400 | profile_update_failed | 资料更新失败 |
| 400 | password_update_failed | 密码更新失败 |
| 401 | unauthorized | 未授权,请先登录 |
| 403 | forbidden | 权限不足 |
| 404 | user_not_found | 用户不存在 |
| 404 | job_not_found | 职位不存在 |
| 404 | company_not_found | 企业不存在 |
| 404 | resume_not_found | 简历不存在 |
| 404 | authentication_not_found | 认证信息不存在 |
| 409 | phone_exists | 手机号已存在 |
| 409 | email_exists | 邮箱已存在 |
| 409 | username_exists | 用户名已存在 |
| 500 | internal_error | 服务器内部错误 |
| 500 | get_data_failed | 获取数据失败 |
| 500 | operation_failed | 操作失败 |
| 500 | avatar_update_failed | 头像更新失败 |
B. 数据字典
用户类型(user_type)
| 值 | 说明 |
|---|---|
| jobseeker | 求职者 |
| company | 企业用户 |
| both | 双重角色 |
角色类型(role)
| 值 | 说明 |
|---|---|
| jobseeker | 求职者角色 |
| company | 企业角色 |
用户状态(status)
| 值 | 说明 |
|---|---|
| active | 活跃 |
| inactive | 非活跃 |
| banned | 已封禁 |
职位状态(job_status)
| 值 | 说明 |
|---|---|
| draft | 草稿 |
| active | 招聘中 |
| closed | 已关闭 |
| filled | 已招满 |
工作类型(work_type)
| 值 | 说明 |
|---|---|
| full_time | 全职 |
| part_time | 兼职 |
| contract | 合同工 |
| internship | 实习 |
薪资单位(salary_unit)
| 值 | 说明 |
|---|---|
| month | 月薪 |
| year | 年薪 |
| hour | 时薪 |
| day | 日薪 |
学历层次(education_level)
| 值 | 说明 |
|---|---|
| high_school | 高中及以下 |
| college | 大专 |
| bachelor | 本科 |
| master | 硕士 |
| phd | 博士 |
工作经验(experience)
| 值 | 说明 |
|---|---|
| entry | 应届生 |
| 1-3年 | 1-3年 |
| 3-5年 | 3-5年 |
| 5-10年 | 5-10年 |
| 10+年 | 10年以上 |
企业规模(scale)
| 值 | 说明 |
|---|---|
| 0-15人 | 0-15人 |
| 15-50人 | 15-50人 |
| 50-150人 | 50-150人 |
| 150-500人 | 150-500人 |
| 500-2000人 | 500-2000人 |
| 2000+人 | 2000人以上 |
认证状态(authentication_status)
| 值 | 说明 |
|---|---|
| pending | 待审核 |
| approved | 已通过 |
| rejected | 已拒绝 |
订单状态(order_status)
| 值 | 说明 |
|---|---|
| pending | 待支付 |
| paid | 已支付 |
| cancelled | 已取消 |
| refunded | 已退款 |
支付方式(payment_method)
| 值 | 说明 |
|---|---|
| alipay | 支付宝 |
| 微信支付 | |
| balance | 余额支付 |
人才库状态(talent_status)
| 值 | 说明 |
|---|---|
| new | 新增 |
| contacted | 已联系 |
| interviewed | 已面试 |
| hired | 已录用 |
| rejected | 已拒绝 |
人才库来源(talent_source)
| 值 | 说明 |
|---|---|
| delivery | 投递来源 |
| search | 搜索来源 |
| manual | 手动添加 |
面试类型(interview_type)
| 值 | 说明 |
|---|---|
| online | 线上面试 |
| offline | 线下面试 |
C. 联系方式
- 技术支持: support@example.com
- 商务合作: business@example.com
- 官方网站:
文档结束