目录

招聘平台 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

多语言支持

系统支持多语言国际化,所有接口响应将根据语言设置返回对应语言的错误消息和提示信息。

语言设置方式

优先级顺序:

  1. 请求头中的 Accept-Language 字段(最高优先级)
  2. URL查询参数 ?lang=zh-CN
  3. JSON请求体中的 lang 字段
  4. 用户个人资料中的语言偏好
  5. 系统默认语言(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

目录

  1. 认证接口
  2. 验证码接口
  3. 密码重置接口
  4. 公共功能接口
  5. 用户资料接口
  6. 求职者接口
  7. 简历管理接口
  8. 企业认证接口
  9. 企业管理接口
  10. 职位管理接口
  11. 人才库管理接口
  12. 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 支付宝
wechat 微信支付
balance 余额支付

人才库状态(talent_status)

值 说明
new 新增
contacted 已联系
interviewed 已面试
hired 已录用
rejected 已拒绝

人才库来源(talent_source)

值 说明
delivery 投递来源
search 搜索来源
manual 手动添加

面试类型(interview_type)

值 说明
online 线上面试
offline 线下面试

C. 联系方式

文档结束