480 KiB
| title | language_tabs | toc_footers | includes | search | code_clipboard | highlight_theme | headingLevel | generator |
|---|---|---|---|---|---|---|---|---|
| 职来后端接口 | {shell Shell}] [{http HTTP}] [{javascript JavaScript}] [{ruby Ruby}] [{python Python}] [{php PHP}] [{java Java}] [{go Go} | [] | [] | true | true | darkula | 2 | @tarslib/widdershins v4.0.30 |
职来后端接口
Base URLs:
Authentication
- HTTP Authentication, scheme: bearer
通过 /auth/login 获取的 Access Token,请求头格式:Authorization: Bearer <token>
Default
GET 评分完整性概览(ADMIN)
GET /admin/scoring/fairness/overview
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| period | query | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"basis": "string",
"scope": "string",
"period": "string",
"capturedAt": "2019-08-24T14:15:22Z",
"populationSize": 0,
"computableSnapshotRatio": 0,
"confidence": "string",
"riskLevel": "string",
"versionCounts": {
"property1": 0,
"property2": 0
},
"mixedVersionCount": 0,
"unknownVersionCount": 0,
"distribution": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"distributionsByRulesVersion": {
"property1": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"property2": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
}
},
"coherentVersionSubset": [
"string"
],
"availability": "string",
"reason": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseFairnessResponseOverview |
| 400 | Bad Request | 非法 period | None |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | 非 ADMIN | None |
GET 评分维度分布(ADMIN)
GET /admin/scoring/fairness/dimensions
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| period | query | string | 是 | none |
| dimension | query | string | 否 | none |
| Authorization | header | string | 否 | none |
枚举值
| 属性 | 值 |
|---|---|
| dimension | EDUCATION |
| dimension | INTERNSHIP |
| dimension | ABILITY |
| dimension | COMPLIANCE |
| dimension | STABILITY |
| dimension | GROWTH |
| dimension | INTEGRITY |
| dimension | ACTIVITY |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"basis": "string",
"scope": "string",
"period": "string",
"capturedAt": "2019-08-24T14:15:22Z",
"dimensions": [
{
"dimension": "string",
"populationSize": 0,
"rowCount": 0,
"missingRowCount": 0,
"validSampleSize": 0,
"confidence": "string",
"missingRowRate": 0,
"nullScoreRate": 0,
"validCoverage": 0,
"statusCounts": {
"property1": 0,
"property2": 0
},
"versionCounts": {
"property1": 0,
"property2": 0
},
"inconsistentRecordCount": 0,
"unknownStatusCount": 0,
"outOfRangeScoreCount": 0,
"unknownRulesVersionCount": 0,
"distribution": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"distributionsByRulesVersion": {
"property1": {
"sampleSize": null,
"mean": null,
"median": null,
"p10": null,
"p25": null,
"p75": null,
"p90": null,
"min": null,
"max": null,
"standardDeviation": null,
"buckets": null,
"concentrationRate": null,
"riskLevel": null,
"availability": null,
"reason": null
},
"property2": {
"sampleSize": null,
"mean": null,
"median": null,
"p10": null,
"p25": null,
"p75": null,
"p90": null,
"min": null,
"max": null,
"standardDeviation": null,
"buckets": null,
"concentrationRate": null,
"riskLevel": null,
"availability": null,
"reason": null
}
},
"availability": "string",
"reason": "string"
}
],
"availability": "string",
"reason": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseFairnessResponseDimensions |
| 400 | Bad Request | 非法参数 | None |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | 非 ADMIN | None |
GET 评分历史漂移(ADMIN)
GET /admin/scoring/fairness/drift
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"availability": "UNAVAILABLE",
"reason": "string",
"capturedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseFairnessResponseUnavailable |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | 非 ADMIN | None |
GET 排名稳定性(ADMIN)
GET /admin/scoring/fairness/ranking-stability
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"availability": "UNAVAILABLE",
"reason": "string",
"capturedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseFairnessResponseUnavailable |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | 非 ADMIN | None |
GET 申诉纠错聚合(ADMIN)
GET /admin/scoring/fairness/appeals
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| from | query | string(date) | 否 | none |
| to | query | string(date) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"basis": "string",
"from": "2019-08-24",
"to": "2019-08-24",
"capturedAt": "2019-08-24T14:15:22Z",
"appealCount": 0,
"sampleSize": 0,
"statusCounts": {
"property1": 0,
"property2": 0
},
"statusEventCounts": {
"property1": 0,
"property2": 0
},
"statusCandidateCounts": {
"property1": 0,
"property2": 0
},
"confidence": "string",
"approvedEverCount": 0,
"approvalRate": 0,
"rollbackExecutionRate": 0,
"duplicateAppealCount": 0,
"duplicateAppealRate": 0,
"comparableRollbackCount": 0,
"comparableRollbackCandidateCount": 0,
"changedCount": 0,
"changedCandidateCount": 0,
"actualScoreChangeRate": 0,
"meanDelta": 0,
"meanAbsoluteDelta": 0,
"duplicateRollbackHistoryCount": 0,
"invalidScoreRollbackCount": 0,
"ruleVersionChangedRollbackCount": 0,
"reasonCounts": {
"property1": 0,
"property2": 0
},
"availability": "string",
"reason": "string",
"exposureAppealRateAvailability": "string",
"exposureAppealRateReason": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseFairnessResponseAppeals |
| 400 | Bad Request | 非法日期范围 | None |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | 非 ADMIN | None |
个人资料
GET 查询当前学生资料
GET /profile/me
查询当前登录学生(仅 STUDENT 角色)自己的学生资料。身份仅从 JWT/SecurityContext 获取,不接受 userId、studentUserId 等请求参数;本接口无 Path、Query、Body 参数。若尚未创建个人资料:HTTP 200,data 为空对象 {}(非 null),且不会自动创建数据库记录。当前未设置接口级限流。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
成功;有资料返回资料对象,无资料返回空对象 {};message=ok
{
"code": 200,
"message": "ok",
"data": {
"id": 1,
"userId": 2,
"realName": "张三",
"education": "本科",
"school": "某某大学",
"graduationYear": 2026,
"resumeUrl": "/uploads/resumes/2/resume.pdf",
"skills": "[Java, Spring Boot]",
"createdAt": "2026-08-24T10:00:00"
},
"timestamp": "2026-08-24T10:00:00Z"
}
未登录、Token 缺失/非法/过期;运行时实际返回 code=401、message=not authenticated
{
"code": 401,
"message": "not authenticated",
"timestamp": "2026-08-24T10:00:00Z"
}
已登录但不是 STUDENT 角色(COMPANY/ADMIN);code=2002、message=forbidden
{
"code": 2002,
"message": "forbidden",
"data": null,
"timestamp": "2026-08-24T10:00:00Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功;有资料返回资料对象,无资料返回空对象 {};message=ok | ApiResponseStudentProfileResponse |
| 401 | Unauthorized | 未登录、Token 缺失/非法/过期;运行时实际返回 code=401、message=not authenticated | Inline |
| 403 | Forbidden | 已登录但不是 STUDENT 角色(COMPANY/ADMIN);code=2002、message=forbidden | Inline |
返回数据结构
状态码 200
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » code | integer(int32) | false | none | none | |
| » message | string | false | none | none | |
| » data | StudentProfileResponse | false | none | none | |
| »» id | integer(int64) | false | none | none | |
| »» userId | integer(int64) | false | none | none | |
| »» realName | string | false | none | none | |
| »» bio | string | false | none | none | |
| »» location | string | false | none | none | |
| »» education | string | false | none | none | |
| »» school | string | false | none | none | |
| »» graduationYear | integer(int32) | false | none | none | |
| »» resumeUrl | string | false | none | none | |
| »» skills | string | false | none | none | |
| »» createdAt | string(date-time) | false | none | none | |
| » requestId | string | false | none | none | |
| » timestamp | string(date-time) | false | none | none |
PUT 更新学生资料
PUT /profile/me
仅更新传入的非 null 字段;不存在则自动创建
Body 请求参数
{
"realName": "string",
"bio": "string",
"location": "string",
"education": "string",
"school": "string",
"graduationYear": 0,
"resumeUrl": "string",
"skills": [
"string"
]
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | StudentProfileUpdateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 下载简历
GET /profile/me/resume
下载当前学生上传的简历文件,仅 STUDENT 角色
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
"string"
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | string |
POST 上传简历
POST /profile/me/resume
仅 STUDENT 角色;PDF/DOC/DOCX,≤10MB;上传新简历时替换旧文件
Body 请求参数
file: ""
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | object | 否 | none |
| » file | body | string(binary) | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
DELETE 删除简历
DELETE /profile/me/resume
删除当前学生的简历文件并清空 resumeUrl,仅 STUDENT 角色
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
岗位
GET 查询已发布岗位列表
GET /jobs
仅返回 PUBLISHED 岗位,支持关键词、城市、用工类型、薪资筛选和分页
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| keyword | query | string | 否 | none |
| city | query | string | 否 | none |
| employmentType | query | string | 否 | none |
| salaryMin | query | integer(int32) | 否 | none |
| salaryMax | query | integer(int32) | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 创建岗位
POST /jobs
仅企业账号可调用,新岗位默认 DRAFT 状态
Body 请求参数
{
"title": "string",
"description": "string",
"requirements": "string",
"city": "string",
"employmentType": "string",
"salaryMin": 0,
"salaryMax": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | JobCreateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 岗位筛选选项
GET /jobs/filters
返回当前 PUBLISHED 岗位可用的城市、用工类型和薪资范围
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 查询岗位详情(公开)
GET /jobs/public/{jobId}
仅返回 PUBLISHED 岗位详情;CLOSED 也可查看详情
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 岗位高级搜索
GET /jobs/search
仅返回 PUBLISHED 岗位,支持关键词、城市、用工类型、薪资、公司筛选、排序和分页
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| keyword | query | string | 否 | none |
| city | query | string | 否 | none |
| employmentType | query | string | 否 | none |
| salaryMin | query | integer(int32) | 否 | none |
| salaryMax | query | integer(int32) | 否 | none |
| companyId | query | integer(int64) | 否 | none |
| sort | query | string | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 查询岗位详情
GET /jobs/{jobId}
企业可查看自己管理的岗位详情
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 更新岗位
PUT /jobs/{jobId}
仅岗位所属企业可修改
Body 请求参数
{
"title": "string",
"description": "string",
"requirements": "string",
"city": "string",
"employmentType": "string",
"salaryMin": 0,
"salaryMax": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | JobUpdateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PATCH 发布/关闭岗位
PATCH /jobs/{jobId}/status
DRAFT→PUBLISHED,PUBLISHED→CLOSED;禁止非法回退
Body 请求参数
{
"status": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | JobStatusRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
企业
GET 查询当前企业资料
GET /companies/me
返回当前登录用户绑定的企业资料,未绑定企业返回 404
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 更新企业资料
PUT /companies/me
仅更新传入的非 null 字段;未绑定企业时返回 404
Body 请求参数
{
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | CompanyUpdateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 创建企业资料
POST /companies/me
仅 COMPANY 角色可调用;已存在时返回 409
Body 请求参数
{
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | CompanyCreateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 查询企业公开详情
GET /companies/{companyId}
匿名可访问,仅返回 6 个公开字段
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| companyId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"name":"string","logoUrl":"string","description":"string","industry":"string","verified":true},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCompanyPublicView |
GET 查询企业公开岗位列表
GET /companies/{companyId}/jobs
匿名可访问,仅返回 PUBLISHED 岗位
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| companyId | path | integer(int64) | 是 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| sort | query | string | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 查询企业入驻状态
GET /companies/me/onboarding
返回当前企业资料、认证状态和允许动作
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"company":{"id":0,"name":"string","logoUrl":"string","description":"string","industry":"string","website":"string","address":"string","verified":true},"onboardingStatus":"string","latestVerification":{"id":0,"status":"string","submittedAt":"2019-08-24T14:15:22Z","decidedAt":"2019-08-24T14:15:22Z"},"missingFields":["string"],"allowedActions":["string"]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCompanyOnboardingResponse |
认证
POST 手机号验证码登录
POST /auth/login
手机号验证码登录;新手机号创建 UNASSIGNED 统一账号,identitySelectionRequired=true 时前端必须进入首次身份选择;旧角色保持不变。保留原字段及成功码 200。
Body 请求参数
{
"phone": "string",
"code": "string",
"purpose": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | LoginRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 当前用户信息
GET /auth/me
需要 JWT 认证
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 发送短信验证码
POST /auth/sms/send
开发/测试使用 Mock 发送实现;生产环境未接入短信网关时返回服务不可用。验证码不会写入日志。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| phone | query | string | 是 | none |
| purpose | query | string | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":"string","property2":"string"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringString |
POST 刷新 Token
POST /auth/refresh
使用 Refresh Token 换取新的 Access/Refresh Token 对;旧 Refresh Token 立即失效
Body 请求参数
{
"refreshToken": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | RefreshTokenRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"accessToken": "string",
"refreshToken": "string",
"expiresIn": 0
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseTokenPairResponse |
POST 登出
POST /auth/logout
撤销当前登录会话;需要 Access Token,不接受任何请求体
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"property1": "string",
"property2": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseMapStringString |
POST 首次设置密码
POST /auth/password/set
Body 请求参数
{
"smsCode": "string",
"newPassword": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | PasswordSetRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"passwordConfigured":true,"reauthenticationRequired":true},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePasswordOperationResponse |
POST 短信找回并重置密码
POST /auth/password/reset
Body 请求参数
{
"phone": "string",
"smsCode": "string",
"newPassword": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | PasswordResetRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"passwordConfigured":true,"reauthenticationRequired":true},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePasswordOperationResponse |
POST 手机号密码登录
POST /auth/password/login
使用手机号和密码登录,返回 Access/Refresh Token;不自动创建账号
Body 请求参数
{
"phone": "string",
"password": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | PasswordLoginRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 修改密码
POST /auth/password/change
Body 请求参数
{
"currentPassword": "string",
"newPassword": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | PasswordChangeRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"passwordConfigured":true,"reauthenticationRequired":true},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePasswordOperationResponse |
POST 企业注册
POST /auth/company/register
使用 company-register 短信验证码创建企业账号和企业资料
Body 请求参数
{
"phone": "string",
"code": "string",
"password": "stringstring",
"company": {
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string"
}
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | CompanyRegistrationRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"userId":0,"companyId":0,"role":"string","onboardingStatus":"string","accessToken":"string","refreshToken":"string","expiresIn":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCompanyRegistrationResponse |
POST 首次选择账号身份
POST /auth/identity/select
统一账号一次性选择 STUDENT 或 COMPANY;COMPANY 必须提交 company 资料且注册开关开启。首次成功撤销全部旧会话并返回新凭证;同身份重复请求只返回状态,不重复颁发凭证。
Body 请求参数
{
"identity": "STUDENT",
"company": {
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string"
}
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | IdentitySelectionRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"userId":0,"role":"string","identitySelectionRequired":true,"companyId":0,"onboardingStatus":"string","accessToken":"string","refreshToken":"string","expiresIn":0,"reauthenticationRequired":true},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseIdentitySelectionResponse |
投递
POST 投递岗位
POST /applications
只能投递 PUBLISHED 状态的岗位,不可重复投递
Body 请求参数
{
"jobId": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | ApplicationCreateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 我的投递列表
GET /applications/me
查看当前学生自己的投递记录,支持 status 筛选和分页
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| status | query | string | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 投递详情
GET /applications/{id}
查看自己的投递记录详情
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PATCH 更新投递状态(企业)
PATCH /applications/{id}/status
SUBMITTED→VIEWED→INTERVIEW→REJECTED/HIRED
Body 请求参数
{
"status": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | ApplicationStatusRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 投递状态时间线
GET /applications/{id}/timeline
学生本人或岗位所属企业可查看状态变更历史
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
POST 撤回投递
POST /applications/{id}/withdraw
仅 SUBMITTED/VIEWED 状态可撤回,撤回后不可逆
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 查看岗位投递列表(企业)
GET /company/applications
企业查看自己发布的某个岗位收到的投递,支持 status 筛选和分页
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | query | integer(int64) | 是 | none |
| status | query | string | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 企业候选人列表
GET /company/candidates
跨岗位查询本企业所有候选人投递,支持按岗位、状态、关键词筛选,支持分页和排序
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | query | integer(int64) | 否 | none |
| status | query | string | 否 | none |
| keyword | query | string | 否 | none |
| sort | query | string | 否 | none |
| order | query | string | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"items":[{"applicationId":0,"jobId":0,"jobTitle":"string","status":"string","candidateName":"string","candidateSchool":"string","candidateEducation":"string","candidateGraduationYear":0,"candidateAvatarUrl":"string","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"}],"total":0,"page":0,"size":0,"totalPages":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateListResponse |
GET 企业候选人详情
GET /company/candidates/{applicationId}
查看投递详情及候选人公开资料,只能查看本企业岗位下的投递
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"applicationId":0,"jobId":0,"jobTitle":"string","jobCity":"string","jobEmploymentType":"string","status":"string","coverLetter":"string","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z","candidateName":"string","candidateAvatarUrl":"string","candidateBio":"string","candidateLocation":"string","candidateSchool":"string","candidateEducation":"string","candidateGraduationYear":0,"candidateSkills":["string"]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateDetailView |
GET 企业下载候选人简历
GET /company/candidates/{applicationId}/resume
按候选人隐私设置授权后返回简历文件流;不返回存储路径、学生 ID 或联系方式
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
"string"
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | string |
系统
GET 应用健康检查
GET /health
返回应用及依赖服务状态
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 应用信息
GET /info
返回应用版本、运行时信息
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
health-controller
GET healthDetails
GET /health/details
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
API
GET API 信息
GET /
返回 API v0.1 基本信息
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
简历版本
GET 简历版本列表
GET /profile/me/resume-versions
本人 ACTIVE 版本,version_no 倒序
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
POST 创建简历版本
POST /profile/me/resume-versions
仅本人(STUDENT);PDF/DOC/DOCX ≤10MB;可附版本名
Body 请求参数
file: ""
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| name | query | string | 否 | none |
| Authorization | header | string | 否 | none |
| body | body | object | 否 | none |
| » file | body | string(binary) | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 简历版本详情
GET /profile/me/resume-versions/{id}
仅本人可查看;他人 403,不存在 404
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 修改简历版本
PUT /profile/me/resume-versions/{id}
本人;可选重命名 + 可选替换文件(替换时删除旧文件)
Body 请求参数
file: ""
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| name | query | string | 否 | none |
| Authorization | header | string | 否 | none |
| body | body | object | 否 | none |
| » file | body | string(binary) | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
DELETE 删除简历版本
DELETE /profile/me/resume-versions/{id}
默认版本需先设其他默认;导出进行中不可删;删除文件并移除记录
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 设为默认简历
POST /profile/me/resume-versions/{id}/default
同用户最多一个默认;已默认幂等;并发冲突 409
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 创建简历导出任务
POST /profile/me/resume-versions/{id}/export
异步复制该版本文件到导出目录;返回任务状态
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 导出任务状态
GET /resume-export-tasks/{taskId}
仅本人可查询;SUCCESS 含输出文件,FAILED 含失败原因
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| taskId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 下载导出产物
GET /resume-export-tasks/{taskId}/download
仅本人且任务 SUCCESS 可下载;attachment;不暴露内部路径
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| taskId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
"string"
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | string |
求职偏好
GET 查询求职偏好
GET /profile/me/preferences
仅 STUDENT;无记录时返回空偏好对象
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 保存求职偏好
PUT /profile/me/preferences
仅 STUDENT;upsert,完全替换传入字段
Body 请求参数
{
"expectedSalaryMin": 0,
"expectedSalaryMax": 0,
"preferredCities": [
"string"
],
"employmentTypes": [
"string"
],
"preferredIndustries": [
"string"
],
"preferredJobTypes": [
"string"
],
"remoteAllowed": true,
"salaryRangeValid": true
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | StudentPreferenceRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
Offer
GET Offer 列表
GET /offers
候选人查看收到的、企业查看发出的 Offer;支持 status、applicationId 筛选与分页
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| status | query | string | 否 | none |
| applicationId | query | integer(int64) | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 创建 Offer
POST /offers
仅企业账号;投递存在、岗位属于本企业、投递状态可发、无有效 Offer;默认 DRAFT
Body 请求参数
{
"applicationId": 0,
"title": "string",
"salaryMin": 0,
"salaryMax": 0,
"salaryCurrency": "string",
"salaryPeriod": "string",
"workCity": "string",
"employmentType": "string",
"probationMonths": 0,
"benefits": "string",
"description": "string",
"expireAt": "2019-08-24T14:15:22Z",
"onboardingDate": "2019-08-24",
"baseSalary": 0,
"housingAllowance": 0,
"annualBonusMonths": 0,
"otherAllowances": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | OfferCreateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET Offer 比较
GET /offers/compare
仅候选人本人;比较 2-5 个非 DRAFT 的 Offer
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| ids | query | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
GET Offer 统计
GET /offers/statistics
仅企业;统计本企业 Offer 状态分布、接受率、平均响应时间
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| months | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET Offer 详情
GET /offers/{id}
仅目标候选人、所属企业可访问;其他账号返回无权限错误
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 修改 Offer
PUT /offers/{id}
仅所属企业、仅 DRAFT 状态可修改;其余状态返回业务错误
Body 请求参数
{
"title": "string",
"salaryMin": 0,
"salaryMax": 0,
"salaryCurrency": "string",
"salaryPeriod": "string",
"workCity": "string",
"employmentType": "string",
"probationMonths": 0,
"benefits": "string",
"description": "string",
"expireAt": "2019-08-24T14:15:22Z",
"onboardingDate": "2019-08-24",
"baseSalary": 0,
"housingAllowance": 0,
"annualBonusMonths": 0,
"otherAllowances": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | OfferUpdateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 还价列表
GET /offers/{id}/counter-offers
候选人查看本人 Offer 的还价、企业查看本企业 Offer 的还价
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
POST 发起还价
POST /offers/{id}/counter-offers
仅候选人本人;仅 SENT/NEGOTIATING 可发起;SENT 时自动进入 NEGOTIATING
Body 请求参数
{
"proposedSalaryMin": 0,
"proposedSalaryMax": 0,
"proposedOnboardingDate": "2019-08-24",
"reason": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | CounterOfferCreateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PATCH 接受还价
PATCH /offers/{id}/counter-offers/{coId}/accept
仅所属企业;接受后更新 Offer 薪资/入职日期并变为 ACCEPTED
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| coId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PATCH 拒绝还价
PATCH /offers/{id}/counter-offers/{coId}/reject
仅所属企业;拒绝后 Offer 保持 NEGOTIATING
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| coId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 手动提醒
POST /offers/{id}/remind
仅所属企业;仅 SENT/NEGOTIATING 可提醒;相同提醒不重复创建
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PATCH Offer 状态变更
PATCH /offers/{id}/status
DRAFT→SENT 企业;SENT/NEGOTIATING→ACCEPTED/REJECTED/NEGOTIATING 候选人;重复提交幂等
Body 请求参数
{
"status": "string",
"reason": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | OfferStatusRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET Offer 状态时间线
GET /offers/{id}/timeline
完整状态变更历史,含操作者、原因与请求 ID
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
岗位评价
GET 岗位对比
GET /jobs/compare
公开访问;ids 为 2-3 个公开岗位;返回公开岗位字段与公开评分
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| ids | query | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
GET 查询岗位评价列表
GET /jobs/{jobId}/reviews
公开访问;仅返回 PUBLISHED 评价,分页;每条含八维评分
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 创建岗位评价
POST /jobs/{jobId}/reviews
仅 STUDENT;同一学生对同一岗位只能评价一次
Body 请求参数
{
"rating": 1,
"content": "string",
"tags": [
"string"
],
"dimensionScores": {
"property1": 0,
"property2": 0
}
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | JobReviewCreateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 评分汇总
GET /jobs/{jobId}/reviews/summary
公开访问;统计 PUBLISHED 评价的平均分、分布和热门标签
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 岗位评价详情
GET /jobs/{jobId}/reviews/{reviewId}
公开访问;返回单条 PUBLISHED 评价与八维评分
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 修改评价
PUT /jobs/{jobId}/reviews/{reviewId}
仅评价本人可以修改
Body 请求参数
{
"rating": 1,
"content": "string",
"tags": [
"string"
],
"status": "string",
"dimensionScores": {
"property1": 0,
"property2": 0
}
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | JobReviewUpdateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
DELETE 删除评价
DELETE /jobs/{jobId}/reviews/{reviewId}
仅评价本人可以删除
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
候选人反馈
GET 查询候选人反馈
GET /applications/{applicationId}/feedback
该投递的企业或学生可查看
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":1,"applicationId":31,"rating":5,"content":"沟通良好","tags":["string"],"createdAt":"2026-08-25T10:00:00","updatedAt":"2026-08-25T10:00:00"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateFeedbackResponse |
PUT 修改候选人反馈
PUT /applications/{applicationId}/feedback
仅岗位所属企业
Body 请求参数
{
"rating": 1,
"content": "string",
"tags": [
"string"
]
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | CandidateFeedbackRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":1,"applicationId":31,"rating":5,"content":"沟通良好","tags":["string"],"createdAt":"2026-08-25T10:00:00","updatedAt":"2026-08-25T10:00:00"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateFeedbackResponse |
POST 创建候选人反馈
POST /applications/{applicationId}/feedback
仅岗位所属企业;同一投递只能反馈一次
Body 请求参数
{
"rating": 1,
"content": "string",
"tags": [
"string"
]
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | CandidateFeedbackRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":1,"applicationId":31,"rating":5,"content":"沟通良好","tags":["string"],"createdAt":"2026-08-25T10:00:00","updatedAt":"2026-08-25T10:00:00"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateFeedbackResponse |
DELETE 删除候选人反馈
DELETE /applications/{applicationId}/feedback
仅岗位所属企业
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
通知
GET 通知列表
GET /notifications
当前用户的通知,分页,按时间倒序
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 全部已读
POST /notifications/read-all
标记当前用户全部通知已读(幂等)
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 未读数
GET /notifications/unread-count
当前用户未读通知数
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 标记已读
POST /notifications/{id}/read
标记单条通知已读(幂等)
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
岗位收藏
GET 我的收藏列表
GET /jobs/favorites
仅 STUDENT;分页,按收藏时间倒序
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 收藏岗位
POST /jobs/{jobId}/favorite
仅 STUDENT;仅 PUBLISHED;幂等
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
DELETE 取消收藏
DELETE /jobs/{jobId}/favorite
仅 STUDENT;幂等,未收藏也返回 200
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
消息
GET 会话列表
GET /conversations
当前用户参与的所有会话
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
POST 创建/获取会话
POST /conversations
创建或返回与另一用户的 DIRECT 会话
Body 请求参数
{
"participantUserId": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | CreateConversationRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 发送消息
POST /conversations/messages
在会话中发送消息,仅成员可发送
Body 请求参数
{
"conversationId": 0,
"content": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | SendMessageRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 会话详情
GET /conversations/{id}
查看会话信息和未读数
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 消息列表
GET /conversations/{id}/messages
分页查询会话消息,倒序;仅成员可查看
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"items":[{"id":0,"conversationId":0,"senderUserId":0,"senderScope":"string","content":"string","status":"SENT","recalledAt":"2019-08-24T14:15:22Z","createdAt":"2019-08-24T14:15:22Z","isRead":true}],"total":0,"page":0,"size":0,"totalPages":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMessagePageResponse |
POST 标记已读
POST /conversations/{id}/read
将当前会话所有消息标记为已读
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 撤回消息
POST /conversations/{conversationId}/messages/{messageId}/recall
仅原发送者可在发送后两分钟内撤回消息;重复撤回幂等返回当前状态
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| conversationId | path | integer(int64) | 是 | none |
| messageId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"conversationId":0,"senderUserId":0,"senderScope":"string","content":"string","status":"SENT","recalledAt":"2019-08-24T14:15:22Z","createdAt":"2019-08-24T14:15:22Z","isRead":true},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMessageResponse |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | 非会话成员或非原发送者 | None |
| 404 | Not Found | 会话或消息不存在 | None |
| 409 | Conflict | 撤回窗口已过期或并发冲突 | None |
岗位匹配
GET 岗位匹配诊断
GET /jobs/{jobId}/match
仅 STUDENT;返回匹配分、硬性条件、缺口和说明
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
student-review-weight-controller
GET getPersonalizedScore
GET /jobs/{jobId}/personalized-review-score
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"jobId":0,"score":0,"status":"string","source":"string","templateCode":"string","configuredWeights":{"property1":0,"property2":0},"effectiveWeights":{"property1":0,"property2":0},"dimensionScores":{"property1":0,"property2":0},"coveredWeight":0,"missingDimensions":["string"]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePersonalizedScoreResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色 | ApiResponse |
GET getMyWeights
GET /profile/me/review-weights
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"source":"string","templateCode":"string","configuredWeights":{"property1":0,"property2":0},"updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseReviewWeightResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色 | ApiResponse |
PUT saveWeights
PUT /profile/me/review-weights
Body 请求参数
{
"templateCode": "string",
"weights": {
"property1": 0,
"property2": 0
}
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | SaveWeightRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"source":"string","templateCode":"string","configuredWeights":{"property1":0,"property2":0},"updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseReviewWeightResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色 | ApiResponse |
GET getTemplates
GET /review-weight-templates
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"code":"string","name":"string","description":"string","weights":{"property1":0,"property2":0}}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListWeightTemplateResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
双向匹配阈值
GET 查询企业匹配阈值
GET /companies/me/match-rule
未配置返回默认 60
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 更新企业匹配阈值
PUT /companies/me/match-rule
requiredCandidateScore 0-100;首次更新创建配置
Body 请求参数
{
"requiredCandidateScore": 100
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | CompanyMatchRuleRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 查询学生匹配阈值
GET /profile/me/match-rule
未配置返回默认 60
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 更新学生匹配阈值
PUT /profile/me/match-rule
requiredHrScore 0-100;首次更新创建配置
Body 请求参数
{
"requiredHrScore": 100
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | StudentMatchRuleRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
面试
GET 查询投递的面试列表
GET /applications/{applicationId}/interviews
学生本人或岗位所属企业可查看
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
POST 创建面试邀请
POST /applications/{applicationId}/interviews
企业为投递记录创建面试邀请
Body 请求参数
{
"roundNo": 0,
"title": "string",
"interviewType": "string",
"startAt": "2019-08-24T14:15:22Z",
"endAt": "2019-08-24T14:15:22Z",
"timezone": "string",
"meetingUrl": "string",
"address": "string",
"interviewerName": "string",
"notes": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | InterviewCreateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 我的面试列表
GET /interviews/me
查看当前用户相关的面试,支持 status/from/to 筛选和分页
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| status | query | string | 否 | none |
| from | query | string(date-time) | 否 | none |
| to | query | string(date-time) | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 面试详情
GET /interviews/{interviewId}
学生本人或企业可查看面试详情
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 修改面试
PUT /interviews/{interviewId}
企业修改面试时间、地点等信息,仅 SCHEDULED/CONFIRMED 状态可修改
Body 请求参数
{
"title": "string",
"startAt": "2019-08-24T14:15:22Z",
"endAt": "2019-08-24T14:15:22Z",
"timezone": "string",
"meetingUrl": "string",
"address": "string",
"interviewerName": "string",
"notes": "string",
"timeRangeValid": true
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | InterviewUpdateRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 取消面试
POST /interviews/{interviewId}/cancel
企业取消已安排的面试
Body 请求参数
{
"reason": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | InterviewCancelRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 完成面试
POST /interviews/{interviewId}/complete
企业在面试时间结束后将面试标记为完成
Body 请求参数
{
"property1": "string",
"property2": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | object | 否 | none |
| » additionalProperties | body | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 响应面试邀请
POST /interviews/{interviewId}/respond
学生接受、拒绝或申请改期
Body 请求参数
{
"action": "string",
"reason": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | InterviewRespondRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 面试状态时间线
GET /interviews/{interviewId}/timeline
查看面试状态变更历史
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
双向匹配
PUT 提交求职者岗位意愿分
PUT /applications/{id}/candidate-interest-score
仅投递本人(STUDENT);0-100;MATCHED/CLOSED 后不可修改
Body 请求参数
{
"score": 100
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | ScoreRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
PUT 提交企业 HR 适配分
PUT /applications/{id}/hr-suitability-score
仅岗位所属企业;0-100;MATCHED/CLOSED 后不可修改
Body 请求参数
{
"score": 100
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | ScoreRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 查询投递匹配状态
GET /applications/{id}/match
仅投递求职者或岗位所属企业;不暴露内部路径/事件 ID
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
企业认证
GET 待审核认证列表
GET /admin/companies/verifications
管理员查看认证申请列表,支持 status/from/to 筛选和分页
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| status | query | string | 否 | none |
| from | query | string(date-time) | 否 | none |
| to | query | string(date-time) | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 认证审核历史
GET /admin/companies/verifications/history
管理员查看某个认证申请的审核历史
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| verificationId | query | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"property1":null,"property2":null}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListMapStringObject |
GET 认证详情
GET /admin/companies/verifications/{id}
管理员查看认证申请详情
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 审核决定
POST /admin/companies/verifications/{id}/decision
管理员通过或拒绝认证申请,拒绝时必须填写原因
Body 请求参数
{
"decision": "string",
"reason": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | VerificationDecisionRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 查询企业认证状态
GET /companies/me/verification
企业查询自己的认证状态和历史
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 提交企业认证
POST /companies/me/verification
企业提交认证材料(营业执照等),只能提交自己的认证
Body 请求参数
{
"materialsJson": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | VerificationSubmitRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
双向匹配沟通
POST 创建/获取匹配会话
POST /applications/{id}/conversation
仅 MATCHED 双方可调用;重复调用返回同一会话
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
评价审核
GET 待审评价列表
GET /admin/reviews/pending
仅 ADMIN;分页 + jobId/riskLevel/createdFrom/createdTo 筛选;不返回明文 IP/UA
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | query | integer(int64) | 否 | none |
| riskLevel | query | string | 否 | none |
| createdFrom | query | string(date-time) | 否 | none |
| createdTo | query | string(date-time) | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 评价审核决策
POST /admin/reviews/{reviewId}/decision
仅 ADMIN;仅 PENDING 可审,重复提交 409;决策写入历史与 audit_logs
Body 请求参数
{
"decision": "string",
"reason": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | ReviewDecisionRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
GET 审核历史
GET /admin/reviews/history
仅 ADMIN;分页返回审核结果、审核人、时间与原因
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 企业回复审核决策
POST /admin/reviews/replies/{replyId}/decision
仅 ADMIN;仅 PENDING 可审,重复提交 409
Body 请求参数
{ "decision": "APPROVED", "reason": "内容合规,同意公开" }
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| replyId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | ReviewDecisionRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"content":"string","status":"string","version":0,"updatedAt":"2019-08-24T14:15:22Z","rejectionReason":"string"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCompanyReviewReplyResponse |
GET 待审企业回复列表
GET /admin/reviews/replies/pending
仅 ADMIN;分页 + 企业/岗位/回复状态/创建时间范围筛选;moderationStatus 缺省为 PENDING
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| companyId | query | integer(int64) | 否 | none |
| jobId | query | integer(int64) | 否 | none |
| moderationStatus | query | string | 否 | none |
| createdFrom | query | string(date-time) | 否 | none |
| createdTo | query | string(date-time) | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"items":[{"id":1,"reviewId":100,"companyUserId":5,"content":"感谢您的反馈,我们会持续改进","moderationStatus":"PENDING","moderationReason":"内容合规","createdAt":"2026-09-01T10:00:00","updatedAt":"2026-09-01T10:00:00","moderationUpdatedAt":"2026-09-01T10:00:00","jobId":50,"jobTitle":"Java 后端工程师","companyId":2,"companyName":"本源科技","reviewRating":3,"reviewContent":"整体体验不错","studentUserId":2}],"total":0,"page":0,"size":0,"totalPages":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePageResponseAdminCompanyReviewReplyResponse |
求职者评分卡
GET 查询百分位
GET /profile/me/candidate-percentile
仅 STUDENT;返回自己在候选人中的评分百分位
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"candidateId":0,"status":"string","scoreType":"string","score":0,"percentile":0,"cohortSize":0,"sampleCount":0,"minimumSampleCount":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidatePercentileResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色 | ApiResponse |
GET 查询求职者评分卡
GET /profile/me/candidate-score-card
仅 STUDENT;返回自己的评价聚合卡
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"candidateId":0,"status":"string","overallScore":0,"sampleCount":0,"feedbackSummary":{"totalCount":0,"averageRating":0,"ratingDistribution":{"property1":0,"property2":0},"tags":[{"name":"string","count":0}]},"matchSignals":{"candidateInterestScore":{"average":0,"sampleCount":0},"hrSuitabilityScore":{"average":0,"sampleCount":0}},"unsupportedDimensions":["string"],"generatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateScoreCardResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色 | ApiResponse |
GET 查询评分趋势
GET /profile/me/candidate-score-trend
仅 STUDENT;返回最近月份的反馈趋势
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| months | query | integer(int32) | 否 | 统计月数,默认 6,范围 1-24 |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"candidateId":0,"months":0,"items":[{"month":"string","feedbackCount":0,"averageRating":0,"ratingScore":0}]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateScoreTrendResponse |
| 400 | Bad Request | 参数不合法 | ApiResponseCandidateScoreTrendResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色 | ApiResponse |
求职者评分体系
GET 企业候选人评分卡
GET /company/candidates/{applicationId}/scoring
仅岗位所属企业;只读,仅返回 applicationId/overallScore/status/dimensions/generatedAt/rulesVersion,不泄露候选人敏感信息
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"applicationId":0,"overallScore":0,"status":"string","dimensions":[{"dimension":"string","score":0,"status":"string"}],"generatedAt":"2019-08-24T14:15:22Z","rulesVersion":"string"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCompanyCandidateScoringResponse |
GET 综合评分卡
GET /profile/me/candidate-scoring
仅 STUDENT;返回本人 8 维评分、综合分、权重与状态
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"candidateId":0,"status":"string","overallScore":0,"weights":{"property1":0,"property2":0},"dimensions":[{"dimension":"string","score":0,"status":"string","weight":0,"summary":"string"}],"rulesVersion":"string","generatedAt":"2019-08-24T14:15:22Z","explanationVersion":"string","coverage":{"computableDimensions":0,"totalDimensions":0,"includedDimensions":["string"],"excludedDimensions":[{"dimension":"string","status":"string","reason":"string"}]},"comparabilityNotice":"string"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateScoringOverviewResponse |
GET 单维度明细
GET /profile/me/candidate-scoring/dimensions/{dimension}
仅 STUDENT;返回某维度分项、归因与数据源;非法 dimension 返回 400
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| dimension | path | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"dimension":"string","score":0,"status":"string","subScores":[{"name":"string","score":0,"weight":0,"description":"string"}],"reasons":["string"],"dataSources":[{"source":"string","time":"2019-08-24T14:15:22Z","note":"string"}],"updatedAt":"2019-08-24T14:15:22Z","rulesVersion":"string","displayName":"string","whatItMeasures":"string","interpretation":"string","limitations":["string"],"evidenceLevel":"DIRECT_RULE","ruleContributions":[{"ruleCode":"string","outcome":"APPLIED","contribution":0,"maxContribution":0,"label":"string","observation":"string","explanation":"string"}],"improvementActions":["string"],"explanationVersion":"string","validity":{"completedAt":"2019-08-24T14:15:22Z","validUntil":"2019-08-24T14:15:22Z","expired":true},"calculatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseDimensionScoreDetailResponse |
GET 评分趋势
GET /profile/me/candidate-scoring/trend
仅 STUDENT;基于快照按月返回综合分与维度分(months 1-24)
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| months | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"candidateId":0,"months":0,"items":[{"period":"string","overallScore":0,"rulesVersion":"string","dimensions":{"property1":0,"property2":0}}]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateScoringTrendResponse |
评分治理
GET 全部申诉列表
GET /admin/candidate-scoring/appeals
仅 ADMIN
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| status | query | string | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 审核决定
POST /admin/candidate-scoring/appeals/{appealId}/decision
仅 ADMIN;APPROVE/REJECT,REJECT 必须填 reason
Body 请求参数
{
"decision": "string",
"reason": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appealId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | AppealDecisionRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"appealId":0,"candidateId":0,"dimension":"string","period":"string","status":"string","reason":"string","decision":"string","decisionReason":"string","reviewerId":0,"reviewedAt":"2019-08-24T14:15:22Z","rollbackAt":"2019-08-24T14:15:22Z","scoreAtAppeal":0,"snapshotVersionAtAppeal":0,"rulesVersion":"string","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAppealResponse |
GET 申诉历史
GET /admin/candidate-scoring/appeals/{appealId}/history
本人(脱敏,无 actorUserId)或 ADMIN(全量);此路径的本人放行先于 ADMIN 通用规则
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appealId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"id":0,"fromStatus":"string","toStatus":"string","actorUserId":0,"actorRole":"string","reason":"string","createdAt":"2019-08-24T14:15:22Z"}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListAppealHistoryItem |
POST 执行回滚
POST /admin/candidate-scoring/appeals/{appealId}/rollback
仅 ADMIN;记录前态+确定性重算+新版本;年 3 次上限
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appealId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"appealId":0,"candidateId":0,"dimension":"string","period":"string","status":"string","reason":"string","decision":"string","decisionReason":"string","reviewerId":0,"reviewedAt":"2019-08-24T14:15:22Z","rollbackAt":"2019-08-24T14:15:22Z","scoreAtAppeal":0,"snapshotVersionAtAppeal":0,"rulesVersion":"string","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAppealResponse |
GET 快照变更审计
GET /admin/candidate-scoring/snapshots/{candidateUserId}/{dimension}/{period}/history
仅 ADMIN;按学生+维度+周期查看回滚前后完整变化
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| candidateUserId | path | integer(int64) | 是 | none |
| dimension | path | string | 是 | none |
| period | path | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"id":0,"appealId":0,"action":"string","dimension":"string","period":"string","beforeScore":0,"afterScore":0,"beforeVersion":0,"afterVersion":0,"beforeRulesVersion":"string","afterRulesVersion":"string","createdAt":"2019-08-24T14:15:22Z"}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListSnapshotHistoryItem |
GET 我的申诉列表
GET /profile/me/candidate-scoring/appeals
仅 STUDENT 本人
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| status | query | string | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"property1":null,"property2":null},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseMapStringObject |
POST 提交评分申诉
POST /profile/me/candidate-scoring/appeals
仅 STUDENT 本人;同一学生+维度+周期 PENDING/APPROVED 唯一
Body 请求参数
{
"dimension": "string",
"period": "string",
"reason": "string",
"idempotencyKey": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | CreateAppealRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"appealId":0,"candidateId":0,"dimension":"string","period":"string","status":"string","reason":"string","decision":"string","decisionReason":"string","reviewerId":0,"reviewedAt":"2019-08-24T14:15:22Z","rollbackAt":"2019-08-24T14:15:22Z","scoreAtAppeal":0,"snapshotVersionAtAppeal":0,"rulesVersion":"string","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAppealResponse |
GET 申诉详情
GET /profile/me/candidate-scoring/appeals/{appealId}
本人或 ADMIN
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appealId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"appealId":0,"candidateId":0,"dimension":"string","period":"string","status":"string","reason":"string","decision":"string","decisionReason":"string","reviewerId":0,"reviewedAt":"2019-08-24T14:15:22Z","rollbackAt":"2019-08-24T14:15:22Z","scoreAtAppeal":0,"snapshotVersionAtAppeal":0,"rulesVersion":"string","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAppealResponse |
POST 撤销申诉
POST /profile/me/candidate-scoring/appeals/{appealId}/cancel
仅本人;仅 PENDING 可撤销
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| appealId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"appealId":0,"candidateId":0,"dimension":"string","period":"string","status":"string","reason":"string","decision":"string","decisionReason":"string","reviewerId":0,"reviewedAt":"2019-08-24T14:15:22Z","rollbackAt":"2019-08-24T14:15:22Z","scoreAtAppeal":0,"snapshotVersionAtAppeal":0,"rulesVersion":"string","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAppealResponse |
评分运营看板
GET 全局运营概览
GET /admin/scoring/dashboard/overview
仅 ADMIN
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"totalCompanies":0,"totalJobs":0,"totalCandidates":0,"avgCandidateScore":0,"topCompanies":[{"companyId":0,"companyName":"string","avgCandidateScore":0,"jobCount":0}]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAdminDashboardOverviewResponse |
GET 候选人评分排名
GET /company/scoring/dashboard/candidate-rankings
仅 COMPANY;按学生去重;overallScore DESC, applicationId DESC
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"items":[{"applicationId":0,"jobId":0,"candidateName":"string","candidateSchool":"string","overallScore":0,"percentile":0,"sampleCount":0}],"total":0,"page":0,"size":0,"totalPages":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateRankingListResponse |
GET 单候选人评分排名明细
GET /company/scoring/dashboard/candidate-rankings/{applicationId}
仅 COMPANY;跨企业 403/8004
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| applicationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"applicationId":0,"jobId":0,"candidateName":"string","candidateSchool":"string","overallScore":0,"percentile":0,"cohortSize":0,"dimensionScores":[{"dimension":"string","score":0,"status":"string"}]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCandidateRankingDetailResponse |
GET 岗位评分排名
GET /company/scoring/dashboard/job-rankings
仅 COMPANY;avgRating DESC, jobId DESC;审核通过评价
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"items":[{"jobId":0,"title":"string","city":"string","employmentType":"string","avgRating":0,"reviewCount":0,"rank":0,"cohortSize":0,"dimensionAverages":{"property1":0,"property2":0}}],"total":0,"page":0,"size":0,"totalPages":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseJobRankingListResponse |
GET 单岗位评分排名
GET /company/scoring/dashboard/job-rankings/{jobId}
仅 COMPANY;跨企业 403/8004
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"jobId":0,"title":"string","city":"string","employmentType":"string","avgRating":0,"reviewCount":0,"rank":0,"cohortSize":0,"dimensionAverages":{"property1":0,"property2":0}},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseJobRankingItem |
GET 企业评分运营概览
GET /company/scoring/dashboard/overview
仅 COMPANY;只返回本企业数据
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"companyId":0,"totalJobs":0,"publishedJobs":0,"avgJobScore":0,"totalCandidates":0,"avgCandidateScore":0,"scoreDistribution":{"property1":0,"property2":0},"updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseDashboardOverviewResponse |
GET 企业评分趋势
GET /company/scoring/dashboard/trend
仅 COMPANY;months 1–24
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| months | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"companyId":0,"months":0,"items":[{"period":"string","overallScore":0,"rulesVersion":"string","dimensions":{"property1":0,"property2":0}}]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseScoreTrendResponse |
GET 企业回复率统计
GET /company/review-reply/stats
仅企业;返回本公司本月回复率、行业平均回复率、本月待回复条数
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
账号
GET 查询注销状态
GET /account/deletion-request
查询注销状态
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 200,
"message": "success",
"requestId": "string",
"timestamp": "string",
"data": {
"id": 0,
"userId": 0,
"status": "string",
"applyTime": "string",
"expireTime": "string"
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | none | Inline |
返回数据结构
状态码 200
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » code | integer | true | none | none | |
| » message | string | true | none | none | |
| » requestId | string | true | none | none | |
| » timestamp | string(date‑time) | true | none | none | |
| » data | object¦null | true | none | none | |
| »» id | integer | false | none | none | |
| »» userId | integer | false | none | none | |
| »» status | string | false | none | PENDING待注销 / CANCELLED已撤销 / COMPLETED已注销 | |
| »» applyTime | string(date‑time) | false | none | none | |
| »» expireTime | string(date‑time) | false | none | none |
POST 注销账号
POST /account/deletion-request
注销账号
Body 请求参数
{
"reason": "ad exercitation ex in in"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | object | 是 | none |
| » reason | body | string | 是 | none |
返回示例
200 Response
{"code":200,"message":"ok","data":{"reason":"ad exercitation ex in in","completedAt":"2026-08-26T17:01:31.7861713","requestedAt":"2026-08-26T17:01:31.7861713","status":"COMPLETED"},"requestId":"dade5739b05d4fd2","timestamp":"2026-08-26T09:01:31.946347100Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | none | Inline |
返回数据结构
状态码 200
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| » code | integer | true | none | none | |
| » message | string | true | none | none | |
| » requestId | string | true | none | none | |
| » timestamp | string(date-time) | true | none | none | |
| » data | object | true | none | none | |
| »» id | integer | false | none | none | |
| »» userId | integer | false | none | none | |
| »» status | string | false | none | COMPLETED‑立即注销完成 | |
| »» applyTime | string(date-time) | false | none | none | |
| »» reason | string¦null | false | none | 用户填写的注销原因,非必填 |
同岗位竞争力排名
GET 同岗位竞争力排名
GET /jobs/{jobId}/competition-ranking
仅 STUDENT 且已投递该(PUBLISHED)岗位的学生可查看。返回本人排名/综合分/百分位/维度/缺口及匿名 Top 5。COMPANY/ADMIN 或未投递学生返回 403;岗位不存在或非 PUBLISHED 返回 404。身份仅取自 JWT,不接收 userId/studentUserId/candidateId 参数。topCandidates 每项仅含 rank 与 overallScore,不含任何身份字段(studentUserId/candidateId/name/school/phone/email/resumeUrl/applicationId)。cohort 排除 WITHDRAWN/REJECTED 投递。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponse |
| 400 | Bad Request | jobId 为空或 <=0 | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色或学生未投递该岗位 | ApiResponse |
| 404 | Not Found | 岗位不存在或岗位状态非 PUBLISHED | ApiResponse |
求职进度
GET 统一求职进度聚合
GET /profile/me/career-progress
只读学生端接口:汇总当前学生的投递分页、岗位摘要、下一场面试、最近已提交结构化面试评分、可展示 Offer、同岗位竞争力排名,以及待办/通知计数(仅计数,不含通知标题/正文/详情)。仅 STUDENT 可访问,身份仅从 JWT/SecurityContext 获取,不接受 userId/studentUserId/candidateId 参数;COMPANY/ADMIN 返回 403/2002,未登录返回 401,参数非法返回 400/1001。通知详情仍由既有 /notifications 提供。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| status | query | string | 否 | none |
| Authorization | header | string | 否 | none |
枚举值
| 属性 | 值 |
|---|---|
| status | SUBMITTED |
| status | VIEWED |
| status | INTERVIEW |
| status | HIRED |
| status | REJECTED |
| status | WITHDRAWN |
返回示例
200 Response
{"code":200,"message":"ok","data":{"todo":{"pendingInterviewResponseCount":0,"upcomingConfirmedInterviewCount":0,"pendingOfferResponseCount":0,"unreadNotificationCount":0,"unreadReportDecisionCount":0},"applications":{"items":[{"applicationId":0,"applicationStatus":"string","appliedAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z","job":{},"nextInterview":{},"latestSubmittedInterviewScore":{},"offer":{},"competition":{}}],"total":0,"page":0,"size":0,"totalPages":0},"generatedAt":"2019-08-24T14:15:22Z"},"requestId":"req-1","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCareerProgressResponse |
| 400 | Bad Request | page/size/status 参数非法 | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色 | ApiResponse |
account-deletion-controller
GET getStatus
GET /profile/me/deletion
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":200,"message":"ok","data":{"userId":2,"status":"PENDING","requestedAt":"2019-08-24T14:15:22Z","effectiveAt":"2019-08-24T14:15:22Z","cancelledAt":"2019-08-24T14:15:22Z","completedAt":"2019-08-24T14:15:22Z","version":0},"requestId":"req-1","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponseAccountDeletionResponse |
| 401 | Unauthorized | error | ApiResponse |
POST initiate
POST /profile/me/deletion
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":200,"message":"ok","data":{"userId":2,"status":"PENDING","requestedAt":"2019-08-24T14:15:22Z","effectiveAt":"2019-08-24T14:15:22Z","cancelledAt":"2019-08-24T14:15:22Z","completedAt":"2019-08-24T14:15:22Z","version":0},"requestId":"req-1","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponseAccountDeletionResponse |
| 401 | Unauthorized | error | ApiResponse |
| 403 | Forbidden | error | ApiResponse |
| 409 | Conflict | error | ApiResponse |
POST cancelAccountDeletion
POST /profile/me/deletion/cancel
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":200,"message":"ok","data":{"userId":2,"status":"PENDING","requestedAt":"2019-08-24T14:15:22Z","effectiveAt":"2019-08-24T14:15:22Z","cancelledAt":"2019-08-24T14:15:22Z","completedAt":"2019-08-24T14:15:22Z","version":0},"requestId":"req-1","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponseAccountDeletionResponse |
| 401 | Unauthorized | error | ApiResponse |
| 403 | Forbidden | error | ApiResponse |
| 409 | Conflict | error | ApiResponse |
personal-data-export-controller
GET 查询个人数据导出任务列表
GET /profile/me/data-export-tasks
仅本人;按创建时间倒序分页;status 可选:PENDING/PROCESSING/COMPLETED/FAILED/EXPIRED/CANCELLED
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer | 否 | none |
| size | query | integer | 否 | none |
| status | query | string | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"items":[{"taskId":0,"status":"string","format":"string","requestedAt":"2019-08-24T14:15:22Z","startedAt":"2019-08-24T14:15:22Z","completedAt":"2019-08-24T14:15:22Z","expiresAt":"2019-08-24T14:15:22Z","sizeBytes":0,"downloadAvailable":true,"errorCode":"string"}],"totalElements":0,"page":0,"size":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponsePageResponseDataExportTaskResponse |
| 401 | Unauthorized | error | ApiResponse |
| 403 | Forbidden | error | ApiResponse |
| 409 | Conflict | error | ApiResponse |
POST 创建个人数据导出任务
POST /profile/me/data-export-tasks
异步生成 ZIP;同 idempotencyKey 重放返回原任务;注销 PENDING/COMPLETED 禁止创建
Body 请求参数
{
"format": "string",
"idempotencyKey": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | CreateDataExportRequest | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"taskId":0,"status":"string","format":"string","requestedAt":"2019-08-24T14:15:22Z","startedAt":"2019-08-24T14:15:22Z","completedAt":"2019-08-24T14:15:22Z","expiresAt":"2019-08-24T14:15:22Z","sizeBytes":0,"downloadAvailable":true,"errorCode":"string"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponseDataExportTaskResponse |
| 401 | Unauthorized | error | ApiResponse |
| 403 | Forbidden | error | ApiResponse |
| 409 | Conflict | error | ApiResponse |
GET 查询个人数据导出任务详情
GET /profile/me/data-export-tasks/{taskId}
仅本人;不暴露 storageKey 与内部字段
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| taskId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"taskId":0,"status":"string","format":"string","requestedAt":"2019-08-24T14:15:22Z","startedAt":"2019-08-24T14:15:22Z","completedAt":"2019-08-24T14:15:22Z","expiresAt":"2019-08-24T14:15:22Z","sizeBytes":0,"downloadAvailable":true,"errorCode":"string"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponseDataExportTaskResponse |
| 401 | Unauthorized | error | ApiResponse |
| 403 | Forbidden | error | ApiResponse |
| 404 | Not Found | error | ApiResponse |
GET 下载个人数据导出 ZIP
GET /profile/me/data-export-tasks/{taskId}/download
仅本人且 COMPLETED 未过期;attachment;需 JWT
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| taskId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
401 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | string |
| 401 | Unauthorized | error | ApiResponse |
| 403 | Forbidden | error | ApiResponse |
| 409 | Conflict | error | ApiResponse |
结构化面试评分
PUT 保存评分草稿
PUT /interviews/{interviewId}/score
企业 owner 为已完成的面试保存/更新草稿;草稿阶段五个维度可为空;overallScore 由服务端计算;SUBMITTED 后再次 PUT 返回 409/9503
Body 请求参数
{
"technicalScore": 1,
"communicationScore": 1,
"problemSolvingScore": 1,
"roleFitScore": 1,
"professionalismScore": 1,
"recommendation": "STRONG_HIRE",
"comment": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | InterviewScoreSaveRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"interviewId":0,"applicationId":0,"status":"DRAFT","technicalScore":0,"communicationScore":0,"problemSolvingScore":0,"roleFitScore":0,"professionalismScore":0,"overallScore":0,"recommendation":"STRONG_HIRE","comment":"string","submittedAt":"2019-08-24T14:15:22Z","version":0,"createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponseInterviewScoreResponse |
| 400 | Bad Request | 非法维度或推荐值 | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非企业/跨企业/非岗位 owner | ApiResponse |
| 404 | Not Found | 面试不存在 8401 | ApiResponse |
| 409 | Conflict | 未完成 9502 / 已提交 9503 / 并发冲突 9501 | ApiResponse |
GET 查看评分
GET /interviews/{interviewId}/score
企业 owner 可看 DRAFT/SUBMITTED;目标学生仅可看 SUBMITTED;无评分返回 404/9504
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"interviewId":0,"applicationId":0,"status":"DRAFT","technicalScore":0,"communicationScore":0,"problemSolvingScore":0,"roleFitScore":0,"professionalismScore":0,"overallScore":0,"recommendation":"STRONG_HIRE","comment":"string","submittedAt":"2019-08-24T14:15:22Z","version":0,"createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponseInterviewScoreResponse |
| 400 | Bad Request | 请求体校验失败 | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非目标学生 / 跨企业 / 非岗位 owner / ADMIN | ApiResponse |
| 404 | Not Found | 无评分 9504 / 面试不存在 8401 | ApiResponse |
| 409 | Conflict | 未完成 9502 | ApiResponse |
POST 提交评分
POST /interviews/{interviewId}/score/submit
将 DRAFT 提交为 SUBMITTED,提交后不可逆;并发冲突 409;重复提交幂等返回原评分
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"interviewId":0,"applicationId":0,"status":"DRAFT","technicalScore":0,"communicationScore":0,"problemSolvingScore":0,"roleFitScore":0,"professionalismScore":0,"overallScore":0,"recommendation":"STRONG_HIRE","comment":"string","submittedAt":"2019-08-24T14:15:22Z","version":0,"createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponseInterviewScoreResponse |
| 400 | Bad Request | 缺维度 1001 | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非企业/跨企业/非岗位 owner | ApiResponse |
| 404 | Not Found | 面试不存在 8401 | ApiResponse |
| 409 | Conflict | 未完成 9502 / 并发冲突 9501 | ApiResponse |
GET 评分历史
GET /interviews/{interviewId}/score/history
企业 owner 可查看全部历史;目标学生仅在 SUBMITTED 后可见;无历史返回 200 空数组;不返回内部用户标识
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| interviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":[{"id":0,"scoreId":0,"interviewId":0,"fromStatus":"DRAFT","toStatus":"DRAFT","actorRole":"COMPANY","snapshot":{"property1":null,"property2":null},"createdAt":"2019-08-24T14:15:22Z"}],"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | success | ApiResponseListInterviewScoreHistoryItem |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非目标学生 / 跨企业 / 非岗位 owner / ADMIN | ApiResponse |
| 404 | Not Found | 面试不存在 8401 | ApiResponse |
| 409 | Conflict | 未完成 9502 | ApiResponse |
举报与屏蔽
POST 提交举报
POST /reports
targetType=USER 必填 targetUserId;MESSAGE 必填 messageId;reportedUserId 由服务端推导。同 reporter+idempotencyKey+相同请求体返回原举报 200;不同请求体 409/9606;同目标同分类已有 PENDING 409/9603。限流:每用户每小时 10 次,超限 429/9609。
Body 请求参数
{
"targetType": "USER",
"targetUserId": 0,
"messageId": 0,
"category": "string",
"reason": "string",
"evidenceUrls": [
"string"
],
"idempotencyKey": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | CreateReportRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"targetType":"USER","targetUserId":0,"messageId":0,"reportedUserId":0,"category":"string","reason":"string","evidenceUrls":["string"],"status":"PENDING","decision":"RESOLVED","decisionNote":"string","decidedAt":"2019-08-24T14:15:22Z","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z","messagePreview":"string","reportedUser":{"userId":0,"nickname":"string","role":"string"},"history":[{"id":0,"fromStatus":"string","toStatus":"string","actorUserId":0,"actorRole":"string","note":"string","createdAt":"2019-08-24T14:15:22Z"}]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseReportResponse |
| 400 | Bad Request | BAD_REQUEST(1001)/举报自己 9602/理由缺失 9607 | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 无权访问消息(2002,不泄露消息是否存在) | ApiResponse |
| 409 | Conflict | 重复举报 9603 / 幂等冲突 9606 | ApiResponse |
| 429 | Too Many Requests | 频率超限 9609 | ApiResponse |
GET 我的举报列表
GET /reports/me
仅返回当前用户创建的举报;身份来自 JWT;不返回举报人内部信息/phone/email/passwordHash/resumeUrl/消息全文;支持 status/page/size。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| status | query | string | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"items":[{"id":0,"targetType":"USER","targetUserId":0,"messageId":0,"reportedUserId":0,"category":"string","reason":"string","evidenceUrls":["string"],"status":"PENDING","decision":"RESOLVED","decisionNote":"string","decidedAt":"2019-08-24T14:15:22Z","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z","messagePreview":"string","reportedUser":{"userId":0,"nickname":"string","role":"string"},"history":[{"id":null,"fromStatus":null,"toStatus":null,"actorUserId":null,"actorRole":null,"note":null,"createdAt":null}]}],"totalElements":0,"page":0,"size":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePageResponseReportResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
GET 举报详情(本人/ADMIN)
GET /reports/{id}
当前举报人本人或 ADMIN 可查看;其他 403/2002;非 ADMIN 不显示举报人内部 ID/手机号/邮箱;MESSAGE 仅返回脱敏 messagePreview。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"targetType":"USER","targetUserId":0,"messageId":0,"reportedUserId":0,"category":"string","reason":"string","evidenceUrls":["string"],"status":"PENDING","decision":"RESOLVED","decisionNote":"string","decidedAt":"2019-08-24T14:15:22Z","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z","messagePreview":"string","reportedUser":{"userId":0,"nickname":"string","role":"string"},"history":[{"id":0,"fromStatus":"string","toStatus":"string","actorUserId":0,"actorRole":"string","note":"string","createdAt":"2019-08-24T14:15:22Z"}]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseReportResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非本人非 ADMIN(2002) | ApiResponse |
| 404 | Not Found | 举报不存在(9601) | ApiResponse |
PUT 屏蔽用户
PUT /blocks/{blockedUserId}
屏蔽自己 400/9608;目标不存在复用用户不存在错误码;已存在返回 200 不新增;不影响系统通知/投递/Offer/面试/评分/评价。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| blockedUserId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"blockedUserId":0,"nickname":"string","createdAt":"2019-08-24T14:15:22Z"},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseBlockRelationResponse |
| 400 | Bad Request | 屏蔽自己 9608 | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
DELETE 解除屏蔽
DELETE /blocks/{blockedUserId}
幂等:不存在时返回 200 不报错。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| blockedUserId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK(幂等) | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
GET 我的屏蔽列表
GET /blocks/me
仅返回当前用户主动屏蔽的用户;不返回对方手机号/邮箱/密码/简历地址;支持 page/size。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"items":[{"id":0,"blockedUserId":0,"nickname":"string","createdAt":"2019-08-24T14:15:22Z"}],"totalElements":0,"page":0,"size":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePageResponseBlockRelationResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
举报管理
GET 举报列表(ADMIN)
GET /admin/reports
仅 ADMIN;COMPANY/STUDENT/未登录分别 403/403/401;支持 status/targetType/category/page/size;响应脱敏。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| status | query | string | 否 | none |
| targetType | query | string | 否 | none |
| category | query | string | 否 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"items":[{"id":0,"targetType":"USER","targetUserId":0,"messageId":0,"reportedUserId":0,"category":"string","reason":"string","evidenceUrls":["string"],"status":"PENDING","decision":"RESOLVED","decisionNote":"string","decidedAt":"2019-08-24T14:15:22Z","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z","messagePreview":"string","reportedUser":{"userId":0,"nickname":"string","role":"string"},"history":[{"id":null,"fromStatus":null,"toStatus":null,"actorUserId":null,"actorRole":null,"note":null,"createdAt":null}]}],"totalElements":0,"page":0,"size":0},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePageResponseReportResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 ADMIN | ApiResponse |
GET 举报详情(ADMIN)
GET /admin/reports/{id}
仅 ADMIN;可见类型/分类/理由/脱敏证据 URL/MESSAGE 脱敏内容/会话最小信息/处理历史;不返回密码/JWT/手机号/邮箱/resumeUrl。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"targetType":"USER","targetUserId":0,"messageId":0,"reportedUserId":0,"category":"string","reason":"string","evidenceUrls":["string"],"status":"PENDING","decision":"RESOLVED","decisionNote":"string","decidedAt":"2019-08-24T14:15:22Z","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z","messagePreview":"string","reportedUser":{"userId":0,"nickname":"string","role":"string"},"history":[{"id":0,"fromStatus":"string","toStatus":"string","actorUserId":0,"actorRole":"string","note":"string","createdAt":"2019-08-24T14:15:22Z"}]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseReportResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 ADMIN | ApiResponse |
| 404 | Not Found | 举报不存在(9601) | ApiResponse |
POST 举报处理决定(ADMIN)
POST /admin/reports/{id}/decision
仅 ADMIN;decision 仅 RESOLVED/REJECTED;REJECTED 必填 note;仅 PENDING 可处理,重复 409/9604,非法流转 409/9605;处理后发送一条 REPORT_DECISION 通知。
Body 请求参数
{
"decision": "RESOLVED",
"note": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | ReportDecisionRequest | 是 | none |
返回示例
200 Response
{"code":0,"message":"string","data":{"id":0,"targetType":"USER","targetUserId":0,"messageId":0,"reportedUserId":0,"category":"string","reason":"string","evidenceUrls":["string"],"status":"PENDING","decision":"RESOLVED","decisionNote":"string","decidedAt":"2019-08-24T14:15:22Z","createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z","messagePreview":"string","reportedUser":{"userId":0,"nickname":"string","role":"string"},"history":[{"id":0,"fromStatus":"string","toStatus":"string","actorUserId":0,"actorRole":"string","note":"string","createdAt":"2019-08-24T14:15:22Z"}]},"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseReportResponse |
| 400 | Bad Request | 参数错误(REJECTED 缺 note) | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 ADMIN | ApiResponse |
| 404 | Not Found | 举报不存在(9601) | ApiResponse |
| 409 | Conflict | 重复决定 9604 / 非法流转 9605 | ApiResponse |
企业回复评价
GET 查询回复
GET /reviews/{reviewId}/reply
公开访问;回复所属企业可见任意状态,其他用户仅见已审核通过的回复
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
PUT 更新回复
PUT /reviews/{reviewId}/reply
仅回复所属企业;更新后需重新审核
Body 请求参数
{ "content": "感谢您的反馈,我们会持续改进。" }
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | object | 是 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
POST 创建回复
POST /reviews/{reviewId}/reply
仅岗位所属企业;一条评价只能回复一次
Body 请求参数
{ "content": "感谢您的反馈,我们会持续改进。" }
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | object | 是 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
DELETE 删除回复
DELETE /reviews/{reviewId}/reply
仅回复所属企业
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
RIASEC 职业兴趣测评
GET 测评类型列表
GET /assessments/types
返回全部 ACTIVE 测评定义。任意已登录用户可访问;未登录 401。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
GET 题目列表
GET /assessments/{type}/questions
返回指定测评的 ACTIVE 题目,隐藏维度/reverseScored/source/版本等内部字段。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| type | path | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 404 | Not Found | 测评类型不存在(9701) | ApiResponse |
POST 创建答卷
POST /assessments/attempts
照六维各抽 5 题共 30 道并持久化,刷新不重抽。幂等键重放返回原答卷;同键不同定义 409/9709;已有活跃答卷 409/9708。仅 STUDENT。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT(2002) | ApiResponse |
| 404 | Not Found | 测评类型不存在(9701) | ApiResponse |
| 409 | Conflict | 活跃答卷/幂等冲突(9708/9709) | ApiResponse |
GET 答卷详情
GET /assessments/attempts/{attemptId}
返回本次抽中的 30 道题(固定顺序)、已保存答案、进度与当前状态。仅本人可访问;非 STUDENT 403。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| attemptId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非本人或非 STUDENT(2002) | ApiResponse |
| 404 | Not Found | 答卷不存在(9702) | ApiResponse |
PATCH 保存答案
PATCH /assessments/attempts/{attemptId}/answers
单题或批量保存,重复保存 upsert;value 1-5;题目必须属于本答卷;版本冲突 409/9707;首次保存后状态置为 IN_PROGRESS。仅本人。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| attemptId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非本人或非 STUDENT(2002) | ApiResponse |
| 404 | Not Found | 答卷不存在(9702) | ApiResponse |
| 409 | Conflict | 非法状态/并发(9703/9707) | ApiResponse |
POST 提交答卷
POST /assessments/attempts/{attemptId}/submit
30 题全答且每维各 5 题后方可提交(否则 400/9706);提交后生成结果并写审计;重复提交返回原结果,不重复生成与审计。仅本人。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| attemptId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponse |
| 400 | Bad Request | 未完成(9706) | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非本人或非 STUDENT(2002) | ApiResponse |
| 404 | Not Found | 答卷不存在(9702) | ApiResponse |
| 409 | Conflict | 非法状态(9703) | ApiResponse |
GET 查看结果
GET /assessments/attempts/{attemptId}/result
答卷 COMPLETED 后返回聚合分、类型排名、探索方向。仅本人可访问。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| attemptId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非本人或非 STUDENT(2002) | ApiResponse |
| 404 | Not Found | 答卷不存在(9702) | ApiResponse |
| 409 | Conflict | 答卷未完成(9703) | ApiResponse |
GET 我的测评历史
GET /assessments/me
分页返回当前学生的全部答卷与结果概要。仅 STUDENT 本人可访问。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":0,"message":"string","data":null,"requestId":"string","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT(2002) | ApiResponse |
privacy-settings-controller
GET getMyPrivacySettings
GET /profile/me/privacy
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{"code":200,"message":"ok","data":{"id":1,"studentUserId":2,"resumeVisibility":"APPLIED_COMPANIES","contactVisible":true,"version":0,"createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"req-1","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功;无记录时返回默认对象(PRIVATE/contactVisible=false/version=0) | ApiResponsePrivacySettingsResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色 | ApiResponse |
PUT updateMyPrivacySettings
PUT /profile/me/privacy
Body 请求参数
{
"resumeVisibility": "APPLIED_COMPANIES",
"contactVisible": true,
"version": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | PrivacySettingsUpdateRequest | 是 | none |
返回示例
200 Response
{"code":200,"message":"ok","data":{"id":1,"studentUserId":2,"resumeVisibility":"APPLIED_COMPANIES","contactVisible":true,"version":0,"createdAt":"2019-08-24T14:15:22Z","updatedAt":"2019-08-24T14:15:22Z"},"requestId":"req-1","timestamp":"2019-08-24T14:15:22Z"}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功;返回更新后的隐私设置对象 | ApiResponsePrivacySettingsResponse |
| 400 | Bad Request | 请求体校验失败(缺少必填字段或非法枚举) | ApiResponse |
| 401 | Unauthorized | 未登录 | ApiResponse |
| 403 | Forbidden | 非 STUDENT 角色 | ApiResponse |
| 409 | Conflict | 乐观锁版本冲突(9201) | ApiResponse |
四维能力测评
GET 能力测评类型列表
GET /abilities/types
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"typeCode": "string",
"displayName": "string",
"description": "string",
"questionCount": 0,
"attemptQuestionCount": 0,
"timeLimitMinutes": 0,
"resultValidDays": 0,
"status": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAbilityTypeResponse |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | Forbidden | None |
POST 创建能力测评答卷
POST /abilities/attempts
Body 请求参数
{
"typeCode": "string",
"idempotencyKey": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | CreateAbilityAttemptRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"attemptId": 0,
"status": "string",
"answeredCount": 0,
"totalQuestions": 0,
"completionRate": 0,
"startedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"remainingSeconds": 0,
"questions": [
{
"attemptQuestionId": 0,
"position": 0,
"itemType": "string",
"stem": "string",
"options": [
{
"optionId": null,
"text": null
}
],
"selectedOptionId": "string"
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAbilityAttemptResponse |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | 9801 | None |
| 409 | Conflict | 9808/9809/9810 | None |
| 429 | Too Many Requests | 9811 | None |
GET getAbilityAttempt
GET /abilities/attempts/{attemptId}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| attemptId | path | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"attemptId": 0,
"status": "string",
"answeredCount": 0,
"totalQuestions": 0,
"completionRate": 0,
"startedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"remainingSeconds": 0,
"questions": [
{
"attemptQuestionId": 0,
"position": 0,
"itemType": "string",
"stem": "string",
"options": [
{
"optionId": null,
"text": null
}
],
"selectedOptionId": "string"
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAbilityAttemptResponse |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | 404 | None |
| 409 | Conflict | 409 | None |
PATCH saveAbilityAnswers
PATCH /abilities/attempts/{attemptId}/answers
Body 请求参数
{
"answers": [
{
"attemptQuestionId": 0,
"selectedOptionId": "stri"
}
]
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| attemptId | path | string | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | SaveAbilityAnswersRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"attemptId": 0,
"status": "string",
"answeredCount": 0,
"totalQuestions": 0,
"completionRate": 0,
"startedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"remainingSeconds": 0,
"questions": [
{
"attemptQuestionId": 0,
"position": 0,
"itemType": "string",
"stem": "string",
"options": [
{
"optionId": null,
"text": null
}
],
"selectedOptionId": "string"
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAbilityAttemptResponse |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | 404 | None |
| 409 | Conflict | 409 | None |
POST submitAbilityAttempt
POST /abilities/attempts/{attemptId}/submit
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| attemptId | path | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"attemptId": 0,
"typeCode": "string",
"status": "string",
"validityStatus": "string",
"validUntil": "2019-08-24T14:15:22Z",
"dimensionScores": [
{
"code": "string",
"score": 0,
"answeredCount": 0
}
],
"overallScore": 0,
"weaknesses": [
{
"code": "string",
"score": 0
}
],
"improvementAreas": [
{
"dimension": "string",
"currentScore": 0,
"summary": "string",
"actions": [
"string"
]
}
],
"radar": [
{
"code": "string",
"value": 0
}
],
"answeredCount": 0,
"completionRate": 0,
"questionFeedback": [
{
"attemptQuestionId": 0,
"position": 0,
"stem": "string",
"selectedOptionId": "string",
"awardedScore": 0,
"maxScore": 0,
"explanation": "string"
}
],
"questionSetVersion": "string",
"rulesVersion": "string",
"generatedAt": "2019-08-24T14:15:22Z",
"disclaimer": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAbilityResultResponse |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | 404 | None |
| 409 | Conflict | 409 | None |
GET getAbilityResult
GET /abilities/attempts/{attemptId}/result
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| attemptId | path | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"attemptId": 0,
"typeCode": "string",
"status": "string",
"validityStatus": "string",
"validUntil": "2019-08-24T14:15:22Z",
"dimensionScores": [
{
"code": "string",
"score": 0,
"answeredCount": 0
}
],
"overallScore": 0,
"weaknesses": [
{
"code": "string",
"score": 0
}
],
"improvementAreas": [
{
"dimension": "string",
"currentScore": 0,
"summary": "string",
"actions": [
"string"
]
}
],
"radar": [
{
"code": "string",
"value": 0
}
],
"answeredCount": 0,
"completionRate": 0,
"questionFeedback": [
{
"attemptQuestionId": 0,
"position": 0,
"stem": "string",
"selectedOptionId": "string",
"awardedScore": 0,
"maxScore": 0,
"explanation": "string"
}
],
"questionSetVersion": "string",
"rulesVersion": "string",
"generatedAt": "2019-08-24T14:15:22Z",
"disclaimer": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAbilityResultResponse |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | 404 | None |
| 409 | Conflict | 409 | None |
GET 我的能力测评历史
GET /abilities/me
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"attemptId": 0,
"typeCode": "string",
"status": "string",
"validityStatus": "string",
"overallScore": 0,
"answeredCount": 0,
"completionRate": 0,
"startedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"validUntil": "2019-08-24T14:15:22Z"
}
],
"totalElements": 0,
"page": 0,
"size": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePageResponseAbilityHistoryItem |
| 401 | Unauthorized | 未登录 | None |
| 403 | Forbidden | Forbidden | None |
风险治理
GET 风险概览(ADMIN)
GET /admin/scoring/risk/overview
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| from | query | string | 否 | none |
| to | query | string | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"openCount": 0,
"bySeverity": [
{
"severity": "string",
"count": 0
}
],
"byRule": [
{
"ruleCode": "string",
"count": 0
}
],
"lastDetectedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseRiskOverviewResponse |
GET 风险趋势(ADMIN)
GET /admin/scoring/risk/trend
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| bucket | query | string | 否 | none |
| from | query | string | 否 | none |
| to | query | string | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"bucket": "string",
"items": [
{
"time": "2019-08-24T14:15:22Z",
"count": 0
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseRiskTrendResponse |
GET 风险分布(ADMIN)
GET /admin/scoring/risk/distribution
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| from | query | string | 否 | none |
| to | query | string | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"ruleCode": "string",
"severity": "string",
"count": 0
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseRiskDistributionResponse |
GET 风险事件分页(ADMIN)
GET /admin/scoring/risk/events
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | string | 否 | none |
| size | query | string | 否 | none |
| status | query | string | 否 | none |
| severity | query | string | 否 | none |
| ruleCode | query | string | 否 | none |
| from | query | string | 否 | none |
| to | query | string | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"eventId": 0,
"ruleCode": "string",
"sourceAction": "string",
"severity": "string",
"status": "string",
"occurrenceCount": 0,
"windowStartedAt": "2019-08-24T14:15:22Z",
"windowEndedAt": "2019-08-24T14:15:22Z",
"detectedAt": "2019-08-24T14:15:22Z",
"version": 0
}
],
"totalElements": 0,
"page": 0,
"size": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePageResponseRiskEventResponse |
GET 风险规则列表(ADMIN)
GET /admin/scoring/risk/rules
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": [
{
"ruleCode": "string",
"sourceAction": "string",
"thresholdCount": 0,
"windowMinutes": 0,
"severity": "string",
"enabled": true,
"version": 0
}
],
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListRiskRuleResponse |
PUT 更新风险规则(ADMIN)
PUT /admin/scoring/risk/rules/{ruleCode}
Body 请求参数
{
"enabled": true,
"thresholdCount": 0,
"windowMinutes": 0,
"severity": "string",
"expectedVersion": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| ruleCode | path | string | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | RiskRuleUpdateRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"ruleCode": "string",
"sourceAction": "string",
"thresholdCount": 0,
"windowMinutes": 0,
"severity": "string",
"enabled": true,
"version": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseRiskRuleResponse |
POST 风险事件人工操作(ADMIN)
POST /admin/scoring/risk/events/{eventId}/actions
Body 请求参数
{
"action": "string",
"reasonCode": "string",
"expectedVersion": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| eventId | path | string | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | RiskEventActionRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"eventId": 0,
"ruleCode": "string",
"sourceAction": "string",
"severity": "string",
"status": "string",
"occurrenceCount": 0,
"windowStartedAt": "2019-08-24T14:15:22Z",
"windowEndedAt": "2019-08-24T14:15:22Z",
"detectedAt": "2019-08-24T14:15:22Z",
"version": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseRiskEventResponse |
岗位推荐
GET recommendationTaxonomies
GET /job-recommendation-taxonomies
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": [
{
"code": "string",
"parentCode": "string",
"type": "string",
"displayName": "string"
}
]
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseListTaxonomyResponse |
GET myJobRecommendations
GET /profile/me/job-recommendations
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer | 否 | none |
| size | query | integer | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"jobId": 0,
"title": "string",
"city": "string",
"employmentType": "string",
"salaryMin": 0,
"salaryMax": 0,
"mode": "PERSONALIZED",
"score": 0,
"reasons": [
"string"
]
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePageJobRecommendationItem |
POST createRecommendationFeedback
POST /profile/me/job-recommendations/{jobId}/feedback
Body 请求参数
{
"feedbackType": "string",
"reasonType": "string",
"idempotencyKey": "string",
"expectedVersion": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | string | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | RecommendationFeedbackRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"jobId": 0,
"feedbackType": "string",
"reasonType": "string",
"status": "string",
"version": 0
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseRecommendationFeedbackResponse |
DELETE revokeNotInterestedFeedback
DELETE /profile/me/job-recommendations/{jobId}/feedback
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | string | 是 | none |
| expectedVersion | query | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | None |
GET companyRecommendationProfile
GET /companies/me/jobs/{jobId}/recommendation-profile
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"jobId": 0,
"industryCode": "string",
"jobFamilyCode": "string",
"riasecWeights": {
"property1": 0,
"property2": 0
},
"abilityExpectations": {
"property1": 0,
"property2": 0
},
"enabled": true,
"reviewStatus": "string",
"reviewReason": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z"
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseRecommendationProfileResponse |
PUT updateCompanyRecommendationProfile
PUT /companies/me/jobs/{jobId}/recommendation-profile
Body 请求参数
{
"industryCode": "string",
"jobFamilyCode": "string",
"riasecWeights": {
"property1": 0,
"property2": 0
},
"abilityExpectations": {
"property1": 0,
"property2": 0
},
"enabled": true,
"expectedVersion": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | string | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | RecommendationProfileRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"jobId": 0,
"industryCode": "string",
"jobFamilyCode": "string",
"riasecWeights": {
"property1": 0,
"property2": 0
},
"abilityExpectations": {
"property1": 0,
"property2": 0
},
"enabled": true,
"reviewStatus": "string",
"reviewReason": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z"
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseRecommendationProfileResponse |
GET adminRecommendationProfiles
GET /admin/job-recommendation-profiles
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"jobId": 0,
"industryCode": "string",
"jobFamilyCode": "string",
"riasecWeights": {
"property1": 0,
"property2": 0
},
"abilityExpectations": {
"property1": 0,
"property2": 0
},
"enabled": true,
"reviewStatus": "string",
"reviewReason": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z"
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponsePageRecommendationProfileResponse |
POST decideRecommendationProfile
POST /admin/job-recommendation-profiles/{jobId}/decision
Body 请求参数
{
"decision": "APPROVE",
"reasonCode": "string",
"expectedVersion": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | string | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | RecommendationDecisionRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"jobId": 0,
"industryCode": "string",
"jobFamilyCode": "string",
"riasecWeights": {
"property1": 0,
"property2": 0
},
"abilityExpectations": {
"property1": 0,
"property2": 0
},
"enabled": true,
"reviewStatus": "string",
"reviewReason": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z"
}
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseRecommendationProfileResponse |
企业评价管理
GET listCompanyJobReviews
GET /companies/me/job-reviews
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | query | integer(int64) | 否 | none |
| rating | query | integer | 否 | none |
| reviewModerationStatus | query | string | 否 | none |
| replyStatus | query | string | 否 | none |
| createdFrom | query | string(date-time) | 否 | none |
| createdTo | query | string(date-time) | 否 | none |
| page | query | integer | 否 | none |
| size | query | integer | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"reviewId": 0,
"job": {
"id": 0,
"title": "string"
},
"rating": 0,
"content": "string",
"tags": [
"string"
],
"dimensionScores": {
"property1": 0,
"property2": 0
},
"reviewStatus": "string",
"reviewCreatedAt": "2019-08-24T14:15:22Z",
"reply": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
}
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseReviewReplyPageResponse |
GET getCompanyJobReview
GET /companies/me/job-reviews/{reviewId}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"reviewId": 0,
"job": {
"id": 0,
"title": "string"
},
"rating": 0,
"content": "string",
"tags": [
"string"
],
"dimensionScores": {
"property1": 0,
"property2": 0
},
"reviewStatus": "string",
"reviewCreatedAt": "2019-08-24T14:15:22Z",
"reply": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
}
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCompanyReviewDetailResponse |
POST createCompanyReviewReply
POST /companies/me/job-reviews/{reviewId}/reply
Body 请求参数
{
"content": "string",
"idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | CreateCompanyReviewReplyRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCompanyReviewReplyResponse |
PUT reviseCompanyReviewReply
PUT /companies/me/job-reviews/{reviewId}/reply
Body 请求参数
{
"content": "string",
"expectedVersion": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| reviewId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | UpdateCompanyReviewReplyRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseCompanyReviewReplyResponse |
官方回复审核
GET listPendingReviewReplies
GET /admin/review-replies/pending
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| companyId | query | integer(int64) | 否 | none |
| jobId | query | integer(int64) | 否 | none |
| riskLevel | query | string | 否 | none |
| createdFrom | query | string(date-time) | 否 | none |
| createdTo | query | string(date-time) | 否 | none |
| page | query | integer | 否 | none |
| size | query | integer | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"replyId": 0,
"reviewId": 0,
"jobId": 0,
"jobTitle": "string",
"companyId": 0,
"companyName": "string",
"rating": 0,
"reviewContent": "string",
"reviewModerationStatus": "string",
"replyContent": "string",
"replyStatus": "string",
"version": 0,
"riskScore": 0,
"riskLevel": "string",
"reasonCodes": [
"string"
],
"createdAt": "2019-08-24T14:15:22Z"
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAdminReviewReplyPageResponse |
POST decideReviewReply
POST /admin/review-replies/{replyId}/decision
Body 请求参数
{
"decision": "APPROVE",
"reason": "string"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| replyId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | ReviewReplyDecisionRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"replyId": 0,
"reviewId": 0,
"jobId": 0,
"jobTitle": "string",
"companyId": 0,
"companyName": "string",
"rating": 0,
"reviewContent": "string",
"reviewModerationStatus": "string",
"replyContent": "string",
"replyStatus": "string",
"version": 0,
"riskScore": 0,
"riskLevel": "string",
"reasonCodes": [
"string"
],
"createdAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | ApiResponseAdminReviewReplyResponse |
企业人才发现
GET 查询人才发现授权
GET /profile/me/talent-discovery
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"enabled": true,
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseTalentDiscoveryPreferenceResponse |
PUT 更新人才发现授权
PUT /profile/me/talent-discovery
Body 请求参数
{
"enabled": true,
"expectedVersion": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | TalentDiscoveryPreferenceUpdateRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"enabled": true,
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseTalentDiscoveryPreferenceResponse |
GET 查询岗位人才发现推荐
GET /companies/me/jobs/{jobId}/talent-recommendations
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"mode": "PERSONALIZED",
"items": [
{
"candidateKey": "string",
"candidateLabel": "string",
"city": "string",
"education": "string",
"graduationYear": 0,
"skills": [
"string"
],
"fitBand": "HIGH",
"summary": "string",
"signalsAvailable": [
"PREFERENCE"
]
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0,
"message": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseTalentDiscoveryPageResponse |
企业人才邀约
POST 创建人才邀约
POST /companies/me/jobs/{jobId}/talent-invitations
Body 请求参数
{
"candidateKey": "string",
"message": "string",
"idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| jobId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | CreateTalentInvitationRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"invitationId": 0,
"jobId": 0,
"jobTitle": "string",
"candidateLabel": "string",
"message": "string",
"status": "PENDING",
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseCompanyTalentInvitationResponse |
GET 企业邀约列表
GET /companies/me/talent-invitations
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"invitationId": 0,
"jobId": 0,
"jobTitle": "string",
"candidateLabel": "string",
"message": "string",
"status": "PENDING",
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseCompanyTalentInvitationPageResponse |
GET 企业邀约详情
GET /companies/me/talent-invitations/{invitationId}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| invitationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"invitationId": 0,
"jobId": 0,
"jobTitle": "string",
"candidateLabel": "string",
"message": "string",
"status": "PENDING",
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseCompanyTalentInvitationResponse |
GET 学生收到的邀约列表
GET /profile/me/talent-invitations
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"invitationId": 0,
"companyId": 0,
"companyName": "string",
"jobId": 0,
"jobTitle": "string",
"jobCity": "string",
"message": "string",
"status": "PENDING",
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseStudentTalentInvitationPageResponse |
GET 学生邀约详情
GET /profile/me/talent-invitations/{invitationId}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| invitationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"invitationId": 0,
"companyId": 0,
"companyName": "string",
"jobId": 0,
"jobTitle": "string",
"jobCity": "string",
"message": "string",
"status": "PENDING",
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseStudentTalentInvitationResponse |
POST 处理人才邀约
POST /profile/me/talent-invitations/{invitationId}/decision
Body 请求参数
{
"decision": "ACCEPT",
"expectedVersion": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| invitationId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | TalentInvitationDecisionRequest | 是 | none |
返回示例
200 Response
{
"code": 0,
"message": "string",
"data": {
"invitationId": 0,
"companyId": 0,
"companyName": "string",
"jobId": 0,
"jobTitle": "string",
"jobCity": "string",
"message": "string",
"status": "PENDING",
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功 | ApiResponseStudentTalentInvitationResponse |
行业技能词云
GET 查询行业技能词云
GET /skills/word-cloud
返回当前筛选范围内的全部技能,按热度降序排列;前端取前十条作为 TOP10。仅 STUDENT 可访问。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| industryId | query | integer(int64) | 是 | 行业 ID,必填正整数 |
| occupationId | query | integer(int64) | 是 | 职位 ID,必填正整数 |
| categoryId | query | integer(int64) | 否 | 技能分类 ID,可选正整数;省略时返回职位下全部分类 |
| Authorization | header | string | 否 | none |
返回示例
成功返回筛选范围内的全部技能
{
"code": 200,
"message": "ok",
"data": {
"industry": {
"id": 1,
"code": "INTERNET",
"name": "互联网"
},
"occupation": {
"id": 1,
"code": "FRONTEND_DEVELOPER",
"name": "前端开发工程师"
},
"category": null,
"total": 1,
"items": [
{
"rank": 1,
"skillId": 26,
"skillCode": "REACT",
"nameZh": "React",
"nameEn": "React",
"sourceType": "O*NET",
"sourceCode": "15-1254.00|React|2.E.7.h",
"categoryId": 103,
"categoryName": "前端框架",
"heat": 4.38,
"heatSourceCode": "15-1254.00",
"heatElementId": "2.E.7.h",
"heatProxy": true
}
]
}
}
400 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功返回筛选范围内的全部技能 | Inline |
| 400 | Bad Request | 筛选参数缺失、非正整数或节点关系非法 | Inline |
| 401 | Unauthorized | 未登录 | Inline |
| 403 | Forbidden | 已登录但不是 STUDENT 角色 | Inline |
返回数据结构
GET 查询个人技能匹配度
GET /skills/match
使用当前 STUDENT 的个人技能,与筛选结果热度 TOP10 比对并返回命中、缺失和匹配度。仅 STUDENT 可访问。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| industryId | query | integer(int64) | 是 | 行业 ID,必填正整数 |
| occupationId | query | integer(int64) | 是 | 职位 ID,必填正整数 |
| categoryId | query | integer(int64) | 否 | 技能分类 ID,可选正整数;省略时使用职位下全部技能 |
| Authorization | header | string | 否 | none |
返回示例
成功返回个人技能匹配结果
{
"code": 200,
"message": "ok",
"data": {
"matchScore": 50,
"matchedCount": 1,
"totalCount": 2,
"matchedSkills": [
{
"rank": 1,
"skillId": 26,
"skillCode": "REACT",
"nameZh": "React",
"nameEn": "React",
"sourceType": "O*NET",
"sourceCode": "15-1254.00|React|2.E.7.h",
"categoryId": 103,
"categoryName": "前端框架",
"heat": 4.38,
"heatSourceCode": "15-1254.00",
"heatElementId": "2.E.7.h",
"heatProxy": true
}
],
"missingSkills": [
{
"rank": 2,
"skillId": 31,
"skillCode": "DOCKER",
"nameZh": "Docker",
"nameEn": "Docker",
"sourceType": "O*NET",
"sourceCode": "15-1299.08|Docker|2.E.7.h",
"categoryId": 105,
"categoryName": "工程化工具",
"heat": 4.12,
"heatSourceCode": "15-1299.08",
"heatElementId": "2.E.7.h",
"heatProxy": true
}
]
}
}
400 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功返回个人技能匹配结果 | Inline |
| 400 | Bad Request | 筛选参数缺失、非正整数或节点关系非法 | Inline |
| 401 | Unauthorized | 未登录 | Inline |
| 403 | Forbidden | 已登录但不是 STUDENT 角色 | Inline |
返回数据结构
GET 生成个人学习路径
GET /skills/learning-path
仅针对个人 TOP10 中未命中的技能,按热度顺序返回优先级和通用学习建议。仅 STUDENT 可访问。
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| industryId | query | integer(int64) | 是 | 行业 ID,必填正整数 |
| occupationId | query | integer(int64) | 是 | 职位 ID,必填正整数 |
| categoryId | query | integer(int64) | 否 | 技能分类 ID,可选正整数;省略时使用职位下全部技能 |
| Authorization | header | string | 否 | none |
返回示例
成功返回缺失技能的学习路径;没有缺口时列表为空
{
"code": 200,
"message": "ok",
"data": {
"total": 1,
"items": [
{
"priority": 1,
"skillId": 26,
"skillName": "React",
"categoryId": 103,
"categoryName": "前端框架",
"suggestion": "先理解 React 的核心概念与生命周期,再通过一个小型项目练习集成。"
}
]
}
}
400 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | 成功返回缺失技能的学习路径;没有缺口时列表为空 | Inline |
| 400 | Bad Request | 筛选参数缺失、非正整数或节点关系非法 | Inline |
| 401 | Unauthorized | 未登录 | Inline |
| 403 | Forbidden | 已登录但不是 STUDENT 角色 | Inline |
返回数据结构
公司知识介绍
GET 读取本企业知识配置
GET /onboarding/company/knowledge
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
PUT 创建或更新本企业知识配置
PUT /onboarding/company/knowledge
Body 请求参数
{
"culture": "我们倡导透明沟通、长期主义和持续学习。",
"workPolicies": "核心工作时间为 10:00-17:00;每周可申请 1 天远程办公。",
"onboardingGuide": "入职当天 9:30 到 A 座 8 层前台报到,联系行政同事。",
"version": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | object | 是 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
GET 读取公司知识介绍
GET /onboarding/companies/{companyId}/knowledge
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| companyId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
入职清单
PUT 更新本企业自定义清单项
PUT /onboarding/company/checklist-items/{itemId}
使用 version 执行乐观锁控制
Body 请求参数
{
"title": "领取并激活门禁卡",
"description": "到行政前台领取门禁卡,并在企业 App 中完成激活。",
"category": "ADMIN",
"sortOrder": 900,
"required": true,
"active": true,
"version": 2
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| itemId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | object | 是 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
DELETE 软删除本企业自定义清单项
DELETE /onboarding/company/checklist-items/{itemId}
重复删除保持幂等成功
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| itemId | path | integer(int64) | 是 | none |
| version | query | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
PUT 更新清单条目完成状态
PUT /onboarding/companies/{companyId}/checklist/items/{itemId}/completion
使用绝对状态语义设置当前学生的完成状态
Body 请求参数
{
"completed": true,
"version": 0
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| companyId | path | integer(int64) | 是 | none |
| itemId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
| body | body | object | 是 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
GET 查询本企业自定义清单项
GET /onboarding/company/checklist-items
返回活动与软删除项及当前版本
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
POST 创建本企业自定义清单项
POST /onboarding/company/checklist-items
支持 idempotencyKey 重放与冲突检测
Body 请求参数
{
"title": "领取门禁卡",
"description": "到行政前台领取门禁卡并激活权限。",
"category": "ADMIN",
"sortOrder": 1000,
"required": false,
"idempotencyKey": "company-10-card-20260917-001"
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | object | 是 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
GET 读取有效入职清单
GET /onboarding/companies/{companyId}/checklist
返回通用项与企业活动自定义项的合并结果
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| companyId | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
薪资计算器
GET 查询本人薪资历史
GET /salary-calculator/calculations
仅 STUDENT;按创建时间倒序分页
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| page | query | integer(int32) | 否 | none |
| size | query | integer(int32) | 否 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
POST 计算并保存到手工资
POST /salary-calculator/calculations
仅 STUDENT;校验政策版本,支持幂等键
Body 请求参数
{
"cityCode": "110000",
"grossMonthlySalary": 15000.00,
"monthIndex": 3,
"specialAdditionalDeduction": 2000.00,
"expectedPolicyVersion": "2026-09-20-v1",
"idempotencyKey": "salary-20260921-001",
"overrides": {
"socialSecurityBase": 15000.00,
"housingFundBase": 15000.00,
"pensionRate": 0.08,
"medicalRate": 0.02,
"unemploymentRate": 0.005,
"housingFundRate": 0.12,
"seriousIllnessMonthlyFee": 0.00
}
}
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
| body | body | object | 是 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
GET 查询启用城市列表
GET /salary-calculator/cities
仅 STUDENT;返回全部启用城市摘要,不分页
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
GET 查询城市默认参数
GET /salary-calculator/cities/{cityCode}
仅 STUDENT;返回城市元数据和当前整套默认参数
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| cityCode | path | string | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
GET 查询本人薪资历史详情
GET /salary-calculator/calculations/{id}
仅 STUDENT;返回完整快照
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
DELETE 删除本人薪资历史
DELETE /salary-calculator/calculations/{id}
仅 STUDENT;物理删除
请求参数
| 名称 | 位置 | 类型 | 必选 | 说明 |
|---|---|---|---|---|
| id | path | integer(int64) | 是 | none |
| Authorization | header | string | 否 | none |
返回示例
200 Response
{}
返回结果
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|---|---|---|---|
| 200 | OK | OK | Inline |
返回数据结构
数据模型
StudentProfileUpdateRequest
{
"realName": "string",
"bio": "string",
"location": "string",
"education": "string",
"school": "string",
"graduationYear": 0,
"resumeUrl": "string",
"skills": [
"string"
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| realName | string | false | none | none | |
| bio | string | false | none | none | |
| location | string | false | none | none | |
| education | string | false | none | none | |
| school | string | false | none | none | |
| graduationYear | integer(int32) | false | none | none | |
| resumeUrl | string | false | none | none | |
| skills | [string] | false | none | none |
AccountDeletionResponse
{
"userId": 2,
"status": "PENDING",
"requestedAt": "2019-08-24T14:15:22Z",
"effectiveAt": "2019-08-24T14:15:22Z",
"cancelledAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"version": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| userId | integer(int64) | false | none | none | |
| status | string | false | none | 注销状态:NONE/PENDING/COMPLETED | |
| requestedAt | string(date-time)¦null | false | none | none | |
| effectiveAt | string(date-time)¦null | false | none | none | |
| cancelledAt | string(date-time)¦null | false | none | none | |
| completedAt | string(date-time)¦null | false | none | none | |
| version | integer(int64) | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| status | NONE |
| status | PENDING |
| status | COMPLETED |
TaxonomyResponse
{
"code": "string",
"parentCode": "string",
"type": "string",
"displayName": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | string | false | none | none | |
| parentCode | string | false | none | none | |
| type | string | false | none | none | |
| displayName | string | false | none | none |
IdentitySelectionRequest
{
"identity": "STUDENT",
"company": {
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string"
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| identity | string | true | none | none | |
| company | CompanyDetails | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| identity | STUDENT |
| identity | COMPANY |
ApiResponseMapStringObject
{
"code": 0,
"message": "string",
"data": {
"property1": null,
"property2": null
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none | |
| » additionalProperties | any | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
RecommendationFeedbackRequest
{
"feedbackType": "string",
"reasonType": "string",
"idempotencyKey": "string",
"expectedVersion": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| feedbackType | string | true | none | none | |
| reasonType | string | false | none | none | |
| idempotencyKey | string | true | none | none | |
| expectedVersion | integer(int64) | true | none | none |
IdentitySelectionResponse
{
"userId": 0,
"role": "string",
"identitySelectionRequired": true,
"companyId": 0,
"onboardingStatus": "string",
"accessToken": "string",
"refreshToken": "string",
"expiresIn": 0,
"reauthenticationRequired": true
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| userId | integer(int64) | false | none | none | |
| role | string | false | none | none | |
| identitySelectionRequired | boolean | false | none | none | |
| companyId | integer(int64) | false | none | none | |
| onboardingStatus | string | false | none | none | |
| accessToken | string | false | none | none | |
| refreshToken | string | false | none | none | |
| expiresIn | integer(int64) | false | none | none | |
| reauthenticationRequired | boolean | false | none | none |
JobUpdateRequest
{
"title": "string",
"description": "string",
"requirements": "string",
"city": "string",
"employmentType": "string",
"salaryMin": 0,
"salaryMax": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| title | string | false | none | none | |
| description | string | false | none | none | |
| requirements | string | false | none | none | |
| city | string | false | none | none | |
| employmentType | string | false | none | none | |
| salaryMin | integer(int32) | false | none | none | |
| salaryMax | integer(int32) | false | none | none |
StudentPreferenceRequest
{
"expectedSalaryMin": 0,
"expectedSalaryMax": 0,
"preferredCities": [
"string"
],
"employmentTypes": [
"string"
],
"preferredIndustries": [
"string"
],
"preferredJobTypes": [
"string"
],
"remoteAllowed": true,
"salaryRangeValid": true
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| expectedSalaryMin | integer(int32) | false | none | none | |
| expectedSalaryMax | integer(int32) | false | none | none | |
| preferredCities | [string] | false | none | none | |
| employmentTypes | [string] | false | none | none | |
| preferredIndustries | [string] | false | none | none | |
| preferredJobTypes | [string] | false | none | none | |
| remoteAllowed | boolean | false | none | none | |
| salaryRangeValid | boolean | false | none | none |
SaveWeightRequest
{
"templateCode": "string",
"weights": {
"property1": 0,
"property2": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| templateCode | string | false | none | none | |
| weights | object | false | none | none | |
| » additionalProperties | number | false | none | none |
RecommendationProfileRequest
{
"industryCode": "string",
"jobFamilyCode": "string",
"riasecWeights": {
"property1": 0,
"property2": 0
},
"abilityExpectations": {
"property1": 0,
"property2": 0
},
"enabled": true,
"expectedVersion": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| industryCode | string | true | none | none | |
| jobFamilyCode | string | true | none | none | |
| riasecWeights | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| abilityExpectations | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| enabled | boolean | true | none | none | |
| expectedVersion | integer(int64) | true | none | none |
ApiResponseIdentitySelectionResponse
{
"code": 0,
"message": "string",
"data": {
"userId": 0,
"role": "string",
"identitySelectionRequired": true,
"companyId": 0,
"onboardingStatus": "string",
"accessToken": "string",
"refreshToken": "string",
"expiresIn": 0,
"reauthenticationRequired": true
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | IdentitySelectionResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CompanyUpdateRequest
{
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| name | string | true | none | none | |
| logoUrl | string | false | none | none | |
| description | string | false | none | none | |
| industry | string | false | none | none | |
| website | string | false | none | none | |
| address | string | false | none | none |
ApiResponseReviewWeightResponse
{
"code": 0,
"message": "string",
"data": {
"source": "string",
"templateCode": "string",
"configuredWeights": {
"property1": 0,
"property2": 0
},
"updatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | ReviewWeightResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponse
{
"code": 0,
"message": "string",
"data": null,
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | any | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CareerProgressResponse
{
"todo": {
"pendingInterviewResponseCount": 0,
"upcomingConfirmedInterviewCount": 0,
"pendingOfferResponseCount": 0,
"unreadNotificationCount": 0,
"unreadReportDecisionCount": 0
},
"applications": {
"items": [
{
"applicationId": 0,
"applicationStatus": "string",
"appliedAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"job": {
"jobId": 0,
"title": "string",
"companyName": "string",
"city": "string",
"employmentType": "string",
"jobStatus": "string"
},
"nextInterview": {
"interviewId": 0,
"roundNo": 0,
"title": "string",
"interviewType": "string",
"startAt": "2019-08-24T14:15:22Z",
"endAt": "2019-08-24T14:15:22Z",
"status": "string"
},
"latestSubmittedInterviewScore": {
"interviewId": 0,
"overallScore": 0,
"recommendation": "string",
"submittedAt": "2019-08-24T14:15:22Z"
},
"offer": {
"offerId": 0,
"status": "string",
"title": "string",
"expireAt": "2019-08-24T14:15:22Z",
"onboardingDate": "2019-08-24"
},
"competition": {
"eligible": true,
"rank": 0,
"cohortSize": 0,
"overallScore": 0,
"percentile": 0,
"status": "string",
"mySnapshotPeriod": "string",
"rulesVersion": "string"
}
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"generatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| todo | ProgressTodoSummary | false | none | none | |
| applications | PaginatedApplications | false | none | none | |
| generatedAt | string(date-time) | false | none | none |
RecommendationDecisionRequest
{
"decision": "APPROVE",
"reasonCode": "string",
"expectedVersion": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| decision | string | true | none | none | |
| reasonCode | string | false | none | none | |
| expectedVersion | integer(int64) | true | none | none |
枚举值
| 属性 | 值 |
|---|---|
| decision | APPROVE |
| decision | REJECT |
JobCreateRequest
{
"title": "string",
"description": "string",
"requirements": "string",
"city": "string",
"employmentType": "string",
"salaryMin": 0,
"salaryMax": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| title | string | true | none | none | |
| description | string | true | none | none | |
| requirements | string | false | none | none | |
| city | string | true | none | none | |
| employmentType | string | true | none | none | |
| salaryMin | integer(int32) | false | none | none | |
| salaryMax | integer(int32) | false | none | none |
ReviewWeightResponse
{
"source": "string",
"templateCode": "string",
"configuredWeights": {
"property1": 0,
"property2": 0
},
"updatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| source | string | false | none | none | |
| templateCode | string | false | none | none | |
| configuredWeights | object | false | none | none | |
| » additionalProperties | number | false | none | none | |
| updatedAt | string(date-time) | false | none | none |
ProgressTodoSummary
{
"pendingInterviewResponseCount": 0,
"upcomingConfirmedInterviewCount": 0,
"pendingOfferResponseCount": 0,
"unreadNotificationCount": 0,
"unreadReportDecisionCount": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| pendingInterviewResponseCount | integer(int64) | false | none | none | |
| upcomingConfirmedInterviewCount | integer(int64) | false | none | none | |
| pendingOfferResponseCount | integer(int64) | false | none | none | |
| unreadNotificationCount | integer(int64) | false | none | none | |
| unreadReportDecisionCount | integer(int64) | false | none | none |
RecommendationProfileResponse
{
"jobId": 0,
"industryCode": "string",
"jobFamilyCode": "string",
"riasecWeights": {
"property1": 0,
"property2": 0
},
"abilityExpectations": {
"property1": 0,
"property2": 0
},
"enabled": true,
"reviewStatus": "string",
"reviewReason": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| jobId | integer(int64) | false | none | none | |
| industryCode | string | false | none | none | |
| jobFamilyCode | string | false | none | none | |
| riasecWeights | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| abilityExpectations | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| enabled | boolean | false | none | none | |
| reviewStatus | string | false | none | none | |
| reviewReason | string | false | none | none | |
| version | integer(int64) | false | none | none | |
| updatedAt | string(date-time) | false | none | none |
CompanyCreateRequest
{
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| name | string | true | none | none | |
| logoUrl | string | false | none | none | |
| description | string | false | none | none | |
| industry | string | false | none | none | |
| website | string | false | none | none | |
| address | string | false | none | none |
PaginatedApplications
{
"items": [
{
"applicationId": 0,
"applicationStatus": "string",
"appliedAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"job": {
"jobId": 0,
"title": "string",
"companyName": "string",
"city": "string",
"employmentType": "string",
"jobStatus": "string"
},
"nextInterview": {
"interviewId": 0,
"roundNo": 0,
"title": "string",
"interviewType": "string",
"startAt": "2019-08-24T14:15:22Z",
"endAt": "2019-08-24T14:15:22Z",
"status": "string"
},
"latestSubmittedInterviewScore": {
"interviewId": 0,
"overallScore": 0,
"recommendation": "string",
"submittedAt": "2019-08-24T14:15:22Z"
},
"offer": {
"offerId": 0,
"status": "string",
"title": "string",
"expireAt": "2019-08-24T14:15:22Z",
"onboardingDate": "2019-08-24"
},
"competition": {
"eligible": true,
"rank": 0,
"cohortSize": 0,
"overallScore": 0,
"percentile": 0,
"status": "string",
"mySnapshotPeriod": "string",
"rulesVersion": "string"
}
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [CareerProgressItem] | false | none | none | |
| total | integer(int64) | false | none | none | |
| page | integer(int32) | false | none | none | |
| size | integer(int32) | false | none | none | |
| totalPages | integer(int32) | false | none | none |
RecommendationFeedbackResponse
{
"jobId": 0,
"feedbackType": "string",
"reasonType": "string",
"status": "string",
"version": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| jobId | integer(int64) | false | none | none | |
| feedbackType | string | false | none | none | |
| reasonType | string | false | none | none | |
| status | string | false | none | none | |
| version | integer(int64) | false | none | none |
ApiResponseMapStringString
{
"code": 0,
"message": "string",
"data": {
"property1": "string",
"property2": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none | |
| » additionalProperties | string | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
StudentMatchRuleRequest
{
"requiredHrScore": 100
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| requiredHrScore | integer(int32) | true | none | none |
CareerProgressItem
{
"applicationId": 0,
"applicationStatus": "string",
"appliedAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"job": {
"jobId": 0,
"title": "string",
"companyName": "string",
"city": "string",
"employmentType": "string",
"jobStatus": "string"
},
"nextInterview": {
"interviewId": 0,
"roundNo": 0,
"title": "string",
"interviewType": "string",
"startAt": "2019-08-24T14:15:22Z",
"endAt": "2019-08-24T14:15:22Z",
"status": "string"
},
"latestSubmittedInterviewScore": {
"interviewId": 0,
"overallScore": 0,
"recommendation": "string",
"submittedAt": "2019-08-24T14:15:22Z"
},
"offer": {
"offerId": 0,
"status": "string",
"title": "string",
"expireAt": "2019-08-24T14:15:22Z",
"onboardingDate": "2019-08-24"
},
"competition": {
"eligible": true,
"rank": 0,
"cohortSize": 0,
"overallScore": 0,
"percentile": 0,
"status": "string",
"mySnapshotPeriod": "string",
"rulesVersion": "string"
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| applicationId | integer(int64) | false | none | none | |
| applicationStatus | string | false | none | none | |
| appliedAt | string(date-time) | false | none | none | |
| updatedAt | string(date-time) | false | none | none | |
| job | JobSummary | false | none | none | |
| nextInterview | InterviewSummary | false | none | none | |
| latestSubmittedInterviewScore | ScoreSummary | false | none | none | |
| offer | OfferSummary | false | none | none | |
| competition | CompetitionSummary | false | none | none |
JobRecommendationItem
{
"jobId": 0,
"title": "string",
"city": "string",
"employmentType": "string",
"salaryMin": 0,
"salaryMax": 0,
"mode": "PERSONALIZED",
"score": 0,
"reasons": [
"string"
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| jobId | integer(int64) | false | none | none | |
| title | string | false | none | none | |
| city | string | false | none | none | |
| employmentType | string | false | none | none | |
| salaryMin | integer | false | none | none | |
| salaryMax | integer | false | none | none | |
| mode | string | false | none | none | |
| score | number | false | none | none | |
| reasons | [string] | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| mode | PERSONALIZED |
| mode | FALLBACK |
LoginRequest
{
"phone": "string",
"code": "string",
"purpose": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| phone | string | true | none | none | |
| code | string | true | none | none | |
| purpose | string | false | none | none |
CandidateFeedbackRequest
{
"rating": 1,
"content": "string",
"tags": [
"string"
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| rating | integer(int32) | true | none | none | |
| content | string | true | none | none | |
| tags | [string] | false | none | none |
JobSummary
{
"jobId": 0,
"title": "string",
"companyName": "string",
"city": "string",
"employmentType": "string",
"jobStatus": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| jobId | integer(int64) | false | none | none | |
| title | string | false | none | none | |
| companyName | string | false | none | none | |
| city | string | false | none | none | |
| employmentType | string | false | none | none | |
| jobStatus | string | false | none | none |
ApiResponseListTaxonomyResponse
{
"code": 0,
"message": "string",
"data": [
{
"code": "string",
"parentCode": "string",
"type": "string",
"displayName": "string"
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | [TaxonomyResponse] | false | none | none |
ApplicationCreateRequest
{
"jobId": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| jobId | integer(int64) | true | none | none |
OfferUpdateRequest
{
"title": "string",
"salaryMin": 0,
"salaryMax": 0,
"salaryCurrency": "string",
"salaryPeriod": "string",
"workCity": "string",
"employmentType": "string",
"probationMonths": 0,
"benefits": "string",
"description": "string",
"expireAt": "2019-08-24T14:15:22Z",
"onboardingDate": "2019-08-24",
"baseSalary": 0,
"housingAllowance": 0,
"annualBonusMonths": 0,
"otherAllowances": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| title | string | false | none | none | |
| salaryMin | integer(int32) | false | none | none | |
| salaryMax | integer(int32) | false | none | none | |
| salaryCurrency | string | false | none | none | |
| salaryPeriod | string | false | none | none | |
| workCity | string | false | none | none | |
| employmentType | string | false | none | none | |
| probationMonths | integer(int32) | false | none | none | |
| benefits | string | false | none | none | |
| description | string | false | none | none | |
| expireAt | string(date-time) | false | none | none | |
| onboardingDate | string(date) | false | none | none | |
| baseSalary | integer(int32) | false | none | none | |
| housingAllowance | integer(int32) | false | none | none | |
| annualBonusMonths | integer(int32) | false | none | none | |
| otherAllowances | string | false | none | none |
InterviewSummary
{
"interviewId": 0,
"roundNo": 0,
"title": "string",
"interviewType": "string",
"startAt": "2019-08-24T14:15:22Z",
"endAt": "2019-08-24T14:15:22Z",
"status": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| interviewId | integer(int64) | false | none | none | |
| roundNo | integer(int32) | false | none | none | |
| title | string | false | none | none | |
| interviewType | string | false | none | none | |
| startAt | string(date-time) | false | none | none | |
| endAt | string(date-time) | false | none | none | |
| status | string | false | none | none |
ApiResponseRecommendationFeedbackResponse
{
"code": 0,
"message": "string",
"data": {
"jobId": 0,
"feedbackType": "string",
"reasonType": "string",
"status": "string",
"version": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | RecommendationFeedbackResponse | false | none | none |
JobStatusRequest
{
"status": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| status | string | true | none | none |
JobReviewUpdateRequest
{
"rating": 1,
"content": "string",
"tags": [
"string"
],
"status": "string",
"dimensionScores": {
"property1": 0,
"property2": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| rating | integer(int32) | false | none | none | |
| content | string | false | none | none | |
| tags | [string] | false | none | none | |
| status | string | false | none | none | |
| dimensionScores | object | false | none | none | |
| » additionalProperties | integer(int32) | false | none | none |
ScoreSummary
{
"interviewId": 0,
"overallScore": 0,
"recommendation": "string",
"submittedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| interviewId | integer(int64) | false | none | none | |
| overallScore | number | false | none | none | |
| recommendation | string | false | none | none | |
| submittedAt | string(date-time) | false | none | none |
ApiResponseRecommendationProfileResponse
{
"code": 0,
"message": "string",
"data": {
"jobId": 0,
"industryCode": "string",
"jobFamilyCode": "string",
"riasecWeights": {
"property1": 0,
"property2": 0
},
"abilityExpectations": {
"property1": 0,
"property2": 0
},
"enabled": true,
"reviewStatus": "string",
"reviewReason": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z"
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | RecommendationProfileResponse | false | none | none |
ApplicationStatusRequest
{
"status": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| status | string | true | none | none |
InterviewUpdateRequest
{
"title": "string",
"startAt": "2019-08-24T14:15:22Z",
"endAt": "2019-08-24T14:15:22Z",
"timezone": "string",
"meetingUrl": "string",
"address": "string",
"interviewerName": "string",
"notes": "string",
"timeRangeValid": true
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| title | string | false | none | none | |
| startAt | string(date-time) | false | none | none | |
| endAt | string(date-time) | false | none | none | |
| timezone | string | false | none | none | |
| meetingUrl | string | false | none | none | |
| address | string | false | none | none | |
| interviewerName | string | false | none | none | |
| notes | string | false | none | none | |
| timeRangeValid | boolean | false | none | none |
OfferSummary
{
"offerId": 0,
"status": "string",
"title": "string",
"expireAt": "2019-08-24T14:15:22Z",
"onboardingDate": "2019-08-24"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| offerId | integer(int64) | false | none | none | |
| status | string | false | none | none | |
| title | string | false | none | none | |
| expireAt | string(date-time) | false | none | none | |
| onboardingDate | string(date) | false | none | none |
ApiResponsePageJobRecommendationItem
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"jobId": 0,
"title": "string",
"city": "string",
"employmentType": "string",
"salaryMin": 0,
"salaryMax": 0,
"mode": "PERSONALIZED",
"score": 0,
"reasons": [
"string"
]
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none | |
| » items | [JobRecommendationItem] | false | none | none | |
| » total | integer | false | none | none | |
| » page | integer | false | none | none | |
| » size | integer | false | none | none | |
| » totalPages | integer | false | none | none |
CreateConversationRequest
{
"participantUserId": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| participantUserId | integer(int64) | true | none | none |
CompetitionSummary
{
"eligible": true,
"rank": 0,
"cohortSize": 0,
"overallScore": 0,
"percentile": 0,
"status": "string",
"mySnapshotPeriod": "string",
"rulesVersion": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| eligible | boolean | false | none | none | |
| rank | integer(int32) | false | none | none | |
| cohortSize | integer(int32) | false | none | none | |
| overallScore | number | false | none | none | |
| percentile | number | false | none | none | |
| status | string | false | none | none | |
| mySnapshotPeriod | string | false | none | none | |
| rulesVersion | string | false | none | none |
ApiResponsePageRecommendationProfileResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"jobId": 0,
"industryCode": "string",
"jobFamilyCode": "string",
"riasecWeights": {
"property1": 0,
"property2": 0
},
"abilityExpectations": {
"property1": 0,
"property2": 0
},
"enabled": true,
"reviewStatus": "string",
"reviewReason": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z"
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none | |
| » items | [RecommendationProfileResponse] | false | none | none | |
| » total | integer | false | none | none | |
| » page | integer | false | none | none | |
| » size | integer | false | none | none | |
| » totalPages | integer | false | none | none |
SendMessageRequest
{
"conversationId": 0,
"content": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| conversationId | integer(int64) | true | none | none | |
| content | string | true | none | none |
CompanyMatchRuleRequest
{
"requiredCandidateScore": 100
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| requiredCandidateScore | integer(int32) | true | none | none |
CompanyReviewJobResponse
{
"id": 0,
"title": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| title | string | false | none | none |
ScoreRequest
{
"score": 100
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| score | integer(int32) | true | none | none |
ApiResponseAccountDeletionResponse
{
"code": 200,
"message": "ok",
"data": {
"userId": 2,
"status": "PENDING",
"requestedAt": "2019-08-24T14:15:22Z",
"effectiveAt": "2019-08-24T14:15:22Z",
"cancelledAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"version": 0
},
"requestId": "req-1",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | AccountDeletionResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CompanyReviewReplyResponse
{
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| content | string | false | none | none | |
| status | string | false | none | none | |
| version | integer(int64) | false | none | none | |
| updatedAt | string(date-time) | false | none | none | |
| rejectionReason | string¦null | false | none | none |
CompanyReviewItemResponse
{
"reviewId": 0,
"job": {
"id": 0,
"title": "string"
},
"rating": 0,
"content": "string",
"tags": [
"string"
],
"dimensionScores": {
"property1": 0,
"property2": 0
},
"reviewStatus": "string",
"reviewCreatedAt": "2019-08-24T14:15:22Z",
"reply": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| reviewId | integer(int64) | false | none | none | |
| job | CompanyReviewJobResponse | false | none | none | |
| rating | integer | false | none | none | |
| content | string | false | none | none | |
| tags | [string] | false | none | none | |
| dimensionScores | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| reviewStatus | string | false | none | none | |
| reviewCreatedAt | string(date-time) | false | none | none | |
| reply | CompanyReviewReplyResponse | false | none | none |
CompanyReviewDetailResponse
{
"reviewId": 0,
"job": {
"id": 0,
"title": "string"
},
"rating": 0,
"content": "string",
"tags": [
"string"
],
"dimensionScores": {
"property1": 0,
"property2": 0
},
"reviewStatus": "string",
"reviewCreatedAt": "2019-08-24T14:15:22Z",
"reply": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
}
}
属性
None
CreateAppealRequest
{
"dimension": "string",
"period": "string",
"reason": "string",
"idempotencyKey": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| dimension | string | true | none | none | |
| period | string | true | none | none | |
| reason | string | false | none | none | |
| idempotencyKey | string | false | none | none |
ReviewReplyPageResponse
{
"items": [
{
"reviewId": 0,
"job": {
"id": 0,
"title": "string"
},
"rating": 0,
"content": "string",
"tags": [
"string"
],
"dimensionScores": {
"property1": 0,
"property2": 0
},
"reviewStatus": "string",
"reviewCreatedAt": "2019-08-24T14:15:22Z",
"reply": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
}
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [CompanyReviewItemResponse] | false | none | none | |
| total | integer(int64) | false | none | none | |
| page | integer | false | none | none | |
| size | integer | false | none | none | |
| totalPages | integer | false | none | none |
JobReviewCreateRequest
{
"rating": 1,
"content": "string",
"tags": [
"string"
],
"dimensionScores": {
"property1": 0,
"property2": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| rating | integer(int32) | true | none | none | |
| content | string | true | none | none | |
| tags | [string] | false | none | none | |
| dimensionScores | object | false | none | none | |
| » additionalProperties | integer(int32) | false | none | none |
ApiResponseAppealResponse
{
"code": 0,
"message": "string",
"data": {
"appealId": 0,
"candidateId": 0,
"dimension": "string",
"period": "string",
"status": "string",
"reason": "string",
"decision": "string",
"decisionReason": "string",
"reviewerId": 0,
"reviewedAt": "2019-08-24T14:15:22Z",
"rollbackAt": "2019-08-24T14:15:22Z",
"scoreAtAppeal": 0,
"snapshotVersionAtAppeal": 0,
"rulesVersion": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | AppealResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseCandidateFeedbackResponse
{
"code": 0,
"message": "string",
"data": {
"id": 1,
"applicationId": 31,
"rating": 5,
"content": "沟通良好",
"tags": [
"string"
],
"createdAt": "2026-08-25T10:00:00",
"updatedAt": "2026-08-25T10:00:00"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidateFeedbackResponse | false | none | 脱敏后的候选人反馈 | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CreateCompanyReviewReplyRequest
{
"content": "string",
"idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| content | string | true | none | none | |
| idempotencyKey | string(uuid) | true | none | none |
InterviewRespondRequest
{
"action": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| action | string | true | none | none | |
| reason | string | false | none | none |
AppealResponse
{
"appealId": 0,
"candidateId": 0,
"dimension": "string",
"period": "string",
"status": "string",
"reason": "string",
"decision": "string",
"decisionReason": "string",
"reviewerId": 0,
"reviewedAt": "2019-08-24T14:15:22Z",
"rollbackAt": "2019-08-24T14:15:22Z",
"scoreAtAppeal": 0,
"snapshotVersionAtAppeal": 0,
"rulesVersion": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| appealId | integer(int64) | false | none | none | |
| candidateId | integer(int64) | false | none | none | |
| dimension | string | false | none | none | |
| period | string | false | none | none | |
| status | string | false | none | none | |
| reason | string | false | none | none | |
| decision | string | false | none | none | |
| decisionReason | string | false | none | none | |
| reviewerId | integer(int64) | false | none | none | |
| reviewedAt | string(date-time) | false | none | none | |
| rollbackAt | string(date-time) | false | none | none | |
| scoreAtAppeal | number | false | none | none | |
| snapshotVersionAtAppeal | integer(int64) | false | none | none | |
| rulesVersion | string | false | none | none | |
| createdAt | string(date-time) | false | none | none | |
| updatedAt | string(date-time) | false | none | none |
UpdateCompanyReviewReplyRequest
{
"content": "string",
"expectedVersion": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| content | string | true | none | none | |
| expectedVersion | integer(int64) | true | none | none |
OfferCreateRequest
{
"applicationId": 0,
"title": "string",
"salaryMin": 0,
"salaryMax": 0,
"salaryCurrency": "string",
"salaryPeriod": "string",
"workCity": "string",
"employmentType": "string",
"probationMonths": 0,
"benefits": "string",
"description": "string",
"expireAt": "2019-08-24T14:15:22Z",
"onboardingDate": "2019-08-24",
"baseSalary": 0,
"housingAllowance": 0,
"annualBonusMonths": 0,
"otherAllowances": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| applicationId | integer(int64) | true | none | none | |
| title | string | true | none | none | |
| salaryMin | integer(int32) | false | none | none | |
| salaryMax | integer(int32) | false | none | none | |
| salaryCurrency | string | false | none | none | |
| salaryPeriod | string | false | none | none | |
| workCity | string | true | none | none | |
| employmentType | string | false | none | none | |
| probationMonths | integer(int32) | false | none | none | |
| benefits | string | false | none | none | |
| description | string | true | none | none | |
| expireAt | string(date-time) | true | none | none | |
| onboardingDate | string(date) | false | none | none | |
| baseSalary | integer(int32) | false | none | none | |
| housingAllowance | integer(int32) | false | none | none | |
| annualBonusMonths | integer(int32) | false | none | none | |
| otherAllowances | string | false | none | none |
InterviewCancelRequest
{
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| reason | string | false | none | none |
ReviewReplyDecisionRequest
{
"decision": "APPROVE",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| decision | string | true | none | none | |
| reason | string | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| decision | APPROVE |
| decision | REJECT |
ApiResponseListMapStringObject
{
"code": 0,
"message": "string",
"data": [
{
"property1": null,
"property2": null
}
],
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | [object] | false | none | none | |
| » additionalProperties | any | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CounterOfferCreateRequest
{
"proposedSalaryMin": 0,
"proposedSalaryMax": 0,
"proposedOnboardingDate": "2019-08-24",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| proposedSalaryMin | integer(int32) | false | none | none | |
| proposedSalaryMax | integer(int32) | false | none | none | |
| proposedOnboardingDate | string(date) | false | none | none | |
| reason | string | false | none | none |
AdminReviewReplyResponse
{
"replyId": 0,
"reviewId": 0,
"jobId": 0,
"jobTitle": "string",
"companyId": 0,
"companyName": "string",
"rating": 0,
"reviewContent": "string",
"reviewModerationStatus": "string",
"replyContent": "string",
"replyStatus": "string",
"version": 0,
"riskScore": 0,
"riskLevel": "string",
"reasonCodes": [
"string"
],
"createdAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| replyId | integer(int64) | false | none | none | |
| reviewId | integer(int64) | false | none | none | |
| jobId | integer(int64) | false | none | none | |
| jobTitle | string | false | none | none | |
| companyId | integer(int64) | false | none | none | |
| companyName | string | false | none | none | |
| rating | integer | false | none | none | |
| reviewContent | string | false | none | none | |
| reviewModerationStatus | string | false | none | none | |
| replyContent | string | false | none | none | |
| replyStatus | string | false | none | none | |
| version | integer(int64) | false | none | none | |
| riskScore | number | false | none | none | |
| riskLevel | string | false | none | none | |
| reasonCodes | [string] | false | none | none | |
| createdAt | string(date-time) | false | none | none |
AdminReviewReplyPageResponse
{
"items": [
{
"replyId": 0,
"reviewId": 0,
"jobId": 0,
"jobTitle": "string",
"companyId": 0,
"companyName": "string",
"rating": 0,
"reviewContent": "string",
"reviewModerationStatus": "string",
"replyContent": "string",
"replyStatus": "string",
"version": 0,
"riskScore": 0,
"riskLevel": "string",
"reasonCodes": [
"string"
],
"createdAt": "2019-08-24T14:15:22Z"
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [AdminReviewReplyResponse] | false | none | none | |
| total | integer(int64) | false | none | none | |
| page | integer | false | none | none | |
| size | integer | false | none | none | |
| totalPages | integer | false | none | none |
ApiResponseReviewReplyPageResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"reviewId": 0,
"job": {
"id": 0,
"title": "string"
},
"rating": 0,
"content": "string",
"tags": [
"string"
],
"dimensionScores": {
"property1": 0,
"property2": 0
},
"reviewStatus": "string",
"reviewCreatedAt": "2019-08-24T14:15:22Z",
"reply": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
}
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | ReviewReplyPageResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
VerificationSubmitRequest
{
"materialsJson": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| materialsJson | string | true | none | none |
ApiResponseCompanyReviewDetailResponse
{
"code": 0,
"message": "string",
"data": {
"reviewId": 0,
"job": {
"id": 0,
"title": "string"
},
"rating": 0,
"content": "string",
"tags": [
"string"
],
"dimensionScores": {
"property1": 0,
"property2": 0
},
"reviewStatus": "string",
"reviewCreatedAt": "2019-08-24T14:15:22Z",
"reply": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
}
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | CompanyReviewDetailResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseCompanyReviewReplyResponse
{
"code": 0,
"message": "string",
"data": {
"id": 0,
"content": "string",
"status": "string",
"version": 0,
"updatedAt": "2019-08-24T14:15:22Z",
"rejectionReason": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | CompanyReviewReplyResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseAdminReviewReplyPageResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"replyId": 0,
"reviewId": 0,
"jobId": 0,
"jobTitle": "string",
"companyId": 0,
"companyName": "string",
"rating": 0,
"reviewContent": "string",
"reviewModerationStatus": "string",
"replyContent": "string",
"replyStatus": "string",
"version": 0,
"riskScore": 0,
"riskLevel": "string",
"reasonCodes": [
"string"
],
"createdAt": "2019-08-24T14:15:22Z"
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | AdminReviewReplyPageResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseAdminReviewReplyResponse
{
"code": 0,
"message": "string",
"data": {
"replyId": 0,
"reviewId": 0,
"jobId": 0,
"jobTitle": "string",
"companyId": 0,
"companyName": "string",
"rating": 0,
"reviewContent": "string",
"reviewModerationStatus": "string",
"replyContent": "string",
"replyStatus": "string",
"version": 0,
"riskScore": 0,
"riskLevel": "string",
"reasonCodes": [
"string"
],
"createdAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | AdminReviewReplyResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ReviewDecisionRequest
{
"decision": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| decision | string | true | none | none | |
| reason | string | false | none | none |
VerificationDecisionRequest
{
"decision": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| decision | string | true | none | none | |
| reason | string | false | none | none |
InterviewCreateRequest
{
"roundNo": 0,
"title": "string",
"interviewType": "string",
"startAt": "2019-08-24T14:15:22Z",
"endAt": "2019-08-24T14:15:22Z",
"timezone": "string",
"meetingUrl": "string",
"address": "string",
"interviewerName": "string",
"notes": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| roundNo | integer(int32) | false | none | none | |
| title | string | true | none | none | |
| interviewType | string | true | none | none | |
| startAt | string(date-time) | true | none | none | |
| endAt | string(date-time) | true | none | none | |
| timezone | string | false | none | none | |
| meetingUrl | string | false | none | none | |
| address | string | false | none | none | |
| interviewerName | string | false | none | none | |
| notes | string | false | none | none |
ApiResponseListWeightTemplateResponse
{
"code": 0,
"message": "string",
"data": [
{
"code": "string",
"name": "string",
"description": "string",
"weights": {
"property1": 0,
"property2": 0
}
}
],
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | [WeightTemplateResponse] | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
WeightTemplateResponse
{
"code": "string",
"name": "string",
"description": "string",
"weights": {
"property1": 0,
"property2": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | string | false | none | none | |
| name | string | false | none | none | |
| description | string | false | none | none | |
| weights | object | false | none | none | |
| » additionalProperties | number | false | none | none |
ApiResponseDataExportTaskResponse
{
"code": 0,
"message": "string",
"data": {
"taskId": 0,
"status": "string",
"format": "string",
"requestedAt": "2019-08-24T14:15:22Z",
"startedAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"sizeBytes": 0,
"downloadAvailable": true,
"errorCode": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | DataExportTaskResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
AppealDecisionRequest
{
"decision": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| decision | string | true | none | none | |
| reason | string | false | none | none |
DataExportTaskResponse
{
"taskId": 0,
"status": "string",
"format": "string",
"requestedAt": "2019-08-24T14:15:22Z",
"startedAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"sizeBytes": 0,
"downloadAvailable": true,
"errorCode": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| taskId | integer(int64) | false | none | none | |
| status | string | false | none | none | |
| format | string | false | none | none | |
| requestedAt | string(date-time) | false | none | none | |
| startedAt | string(date-time) | false | none | none | |
| completedAt | string(date-time) | false | none | none | |
| expiresAt | string(date-time) | false | none | none | |
| sizeBytes | integer(int64) | false | none | none | |
| downloadAvailable | boolean | false | none | none | |
| errorCode | string | false | none | none |
OfferStatusRequest
{
"status": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| status | string | true | none | none | |
| reason | string | false | none | none |
ApiResponsePersonalizedScoreResponse
{
"code": 0,
"message": "string",
"data": {
"jobId": 0,
"score": 0,
"status": "string",
"source": "string",
"templateCode": "string",
"configuredWeights": {
"property1": 0,
"property2": 0
},
"effectiveWeights": {
"property1": 0,
"property2": 0
},
"dimensionScores": {
"property1": 0,
"property2": 0
},
"coveredWeight": 0,
"missingDimensions": [
"string"
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | PersonalizedScoreResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
PersonalizedScoreResponse
{
"jobId": 0,
"score": 0,
"status": "string",
"source": "string",
"templateCode": "string",
"configuredWeights": {
"property1": 0,
"property2": 0
},
"effectiveWeights": {
"property1": 0,
"property2": 0
},
"dimensionScores": {
"property1": 0,
"property2": 0
},
"coveredWeight": 0,
"missingDimensions": [
"string"
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| jobId | integer(int64) | false | none | none | |
| score | number | false | none | none | |
| status | string | false | none | none | |
| source | string | false | none | none | |
| templateCode | string | false | none | none | |
| configuredWeights | object | false | none | none | |
| » additionalProperties | number | false | none | none | |
| effectiveWeights | object | false | none | none | |
| » additionalProperties | number | false | none | none | |
| dimensionScores | object | false | none | none | |
| » additionalProperties | number | false | none | none | |
| coveredWeight | number | false | none | none | |
| missingDimensions | [string] | false | none | none |
ApiResponseCompanyPublicView
{
"code": 0,
"message": "string",
"data": {
"id": 0,
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"verified": true
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CompanyPublicView | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CompanyPublicView
{
"id": 0,
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"verified": true
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| name | string | false | none | none | |
| logoUrl | string | false | none | none | |
| description | string | false | none | none | |
| industry | string | false | none | none | |
| verified | boolean | false | none | none |
ApiResponseCareerProgressResponse
{
"code": 200,
"message": "ok",
"data": {
"todo": {
"pendingInterviewResponseCount": 0,
"upcomingConfirmedInterviewCount": 0,
"pendingOfferResponseCount": 0,
"unreadNotificationCount": 0,
"unreadReportDecisionCount": 0
},
"applications": {
"items": [
{
"applicationId": 0,
"applicationStatus": "string",
"appliedAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"job": {},
"nextInterview": {},
"latestSubmittedInterviewScore": {},
"offer": {},
"competition": {}
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"generatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "req-1",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CareerProgressResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponsePrivacySettingsResponse
{
"code": 200,
"message": "ok",
"data": {
"id": 1,
"studentUserId": 2,
"resumeVisibility": "APPLIED_COMPANIES",
"contactVisible": true,
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "req-1",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | PrivacySettingsResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
TagCount
{
"name": "string",
"count": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| name | string | false | none | none | |
| count | integer(int32) | false | none | none |
CandidateMatchSignals
{
"candidateInterestScore": {
"average": 0,
"sampleCount": 0
},
"hrSuitabilityScore": {
"average": 0,
"sampleCount": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| candidateInterestScore | MatchSignal | false | none | none | |
| hrSuitabilityScore | MatchSignal | false | none | none |
DimensionItem
{
"dimension": "string",
"score": 0,
"status": "string",
"weight": 0,
"summary": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| dimension | string | false | none | none | |
| score | number | false | none | none | |
| status | string | false | none | none | |
| weight | number | false | none | none | |
| summary | string | false | none | none |
CandidateScoreTrendResponse
{
"candidateId": 0,
"months": 0,
"items": [
{
"month": "string",
"feedbackCount": 0,
"averageRating": 0,
"ratingScore": 0
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| candidateId | integer(int64) | false | none | none | |
| months | integer(int32) | false | none | none | |
| items | [CandidateScoreTrendItem] | false | none | none |
CandidateScoringTrendResponse
{
"candidateId": 0,
"months": 0,
"items": [
{
"period": "string",
"overallScore": 0,
"rulesVersion": "string",
"dimensions": {
"property1": 0,
"property2": 0
}
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| candidateId | integer(int64) | false | none | none | |
| months | integer(int32) | false | none | none | |
| items | [TrendItem] | false | none | none |
CandidateScoreTrendItem
{
"month": "string",
"feedbackCount": 0,
"averageRating": 0,
"ratingScore": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| month | string | false | none | none | |
| feedbackCount | integer(int32) | false | none | none | |
| averageRating | number | false | none | none | |
| ratingScore | number | false | none | none |
TrendItem
{
"period": "string",
"overallScore": 0,
"rulesVersion": "string",
"dimensions": {
"property1": 0,
"property2": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| period | string | false | none | none | |
| overallScore | number | false | none | none | |
| rulesVersion | string | false | none | none | |
| dimensions | object | false | none | none | |
| » additionalProperties | number | false | none | none |
ApiResponseCandidateScoreCardResponse
{
"code": 0,
"message": "string",
"data": {
"candidateId": 0,
"status": "string",
"overallScore": 0,
"sampleCount": 0,
"feedbackSummary": {
"totalCount": 0,
"averageRating": 0,
"ratingDistribution": {
"property1": 0,
"property2": 0
},
"tags": [
{
"name": "string",
"count": 0
}
]
},
"matchSignals": {
"candidateInterestScore": {
"average": 0,
"sampleCount": 0
},
"hrSuitabilityScore": {
"average": 0,
"sampleCount": 0
}
},
"unsupportedDimensions": [
"string"
],
"generatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidateScoreCardResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
DataSourceItem
{
"source": "string",
"time": "2019-08-24T14:15:22Z",
"note": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| source | string | false | none | none | |
| time | string(date-time) | false | none | none | |
| note | string | false | none | none |
CandidateFeedbackResponse
{
"id": 1,
"applicationId": 31,
"rating": 5,
"content": "沟通良好",
"tags": [
"string"
],
"createdAt": "2026-08-25T10:00:00",
"updatedAt": "2026-08-25T10:00:00"
}
脱敏后的候选人反馈
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | 反馈 ID | |
| applicationId | integer(int64) | false | none | 投递 ID | |
| rating | integer(int32) | false | none | 评分,范围 1-5 | |
| content | string | false | none | 反馈内容 | |
| tags | [string] | false | none | 反馈标签 | |
| createdAt | string(date-time) | false | none | 创建时间 | |
| updatedAt | string(date-time) | false | none | 更新时间 |
ApiResponseCandidateScoreTrendResponse
{
"code": 0,
"message": "string",
"data": {
"candidateId": 0,
"months": 0,
"items": [
{
"month": "string",
"feedbackCount": 0,
"averageRating": 0,
"ratingScore": 0
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidateScoreTrendResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseCandidatePercentileResponse
{
"code": 0,
"message": "string",
"data": {
"candidateId": 0,
"status": "string",
"scoreType": "string",
"score": 0,
"percentile": 0,
"cohortSize": 0,
"sampleCount": 0,
"minimumSampleCount": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidatePercentileResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
SubScore
{
"name": "string",
"score": 0,
"weight": 0,
"description": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| name | string | false | none | none | |
| score | number | false | none | none | |
| weight | number | false | none | none | |
| description | string | false | none | none |
ApiResponseCandidateScoringOverviewResponse
{
"code": 0,
"message": "string",
"data": {
"candidateId": 0,
"status": "string",
"overallScore": 0,
"weights": {
"property1": 0,
"property2": 0
},
"dimensions": [
{
"dimension": "string",
"score": 0,
"status": "string",
"weight": 0,
"summary": "string"
}
],
"rulesVersion": "string",
"generatedAt": "2019-08-24T14:15:22Z",
"explanationVersion": "string",
"coverage": {
"computableDimensions": 0,
"totalDimensions": 0,
"includedDimensions": [
"string"
],
"excludedDimensions": [
{
"dimension": "string",
"status": "string",
"reason": "string"
}
]
},
"comparabilityNotice": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidateScoringOverviewResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CandidateFeedbackSummary
{
"totalCount": 0,
"averageRating": 0,
"ratingDistribution": {
"property1": 0,
"property2": 0
},
"tags": [
{
"name": "string",
"count": 0
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| totalCount | integer(int32) | false | none | none | |
| averageRating | number | false | none | none | |
| ratingDistribution | object | false | none | none | |
| » additionalProperties | integer(int32) | false | none | none | |
| tags | [TagCount] | false | none | none |
ApiResponseDimensionScoreDetailResponse
{
"code": 0,
"message": "string",
"data": {
"dimension": "string",
"score": 0,
"status": "string",
"subScores": [
{
"name": "string",
"score": 0,
"weight": 0,
"description": "string"
}
],
"reasons": [
"string"
],
"dataSources": [
{
"source": "string",
"time": "2019-08-24T14:15:22Z",
"note": "string"
}
],
"updatedAt": "2019-08-24T14:15:22Z",
"rulesVersion": "string",
"displayName": "string",
"whatItMeasures": "string",
"interpretation": "string",
"limitations": [
"string"
],
"evidenceLevel": "DIRECT_RULE",
"ruleContributions": [
{
"ruleCode": "string",
"outcome": "APPLIED",
"contribution": 0,
"maxContribution": 0,
"label": "string",
"observation": "string",
"explanation": "string"
}
],
"improvementActions": [
"string"
],
"explanationVersion": "string",
"validity": {
"completedAt": "2019-08-24T14:15:22Z",
"validUntil": "2019-08-24T14:15:22Z",
"expired": true
},
"calculatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | DimensionScoreDetailResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CandidateScoreCardResponse
{
"candidateId": 0,
"status": "string",
"overallScore": 0,
"sampleCount": 0,
"feedbackSummary": {
"totalCount": 0,
"averageRating": 0,
"ratingDistribution": {
"property1": 0,
"property2": 0
},
"tags": [
{
"name": "string",
"count": 0
}
]
},
"matchSignals": {
"candidateInterestScore": {
"average": 0,
"sampleCount": 0
},
"hrSuitabilityScore": {
"average": 0,
"sampleCount": 0
}
},
"unsupportedDimensions": [
"string"
],
"generatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| candidateId | integer(int64) | false | none | none | |
| status | string | false | none | none | |
| overallScore | number | false | none | none | |
| sampleCount | integer(int32) | false | none | none | |
| feedbackSummary | CandidateFeedbackSummary | false | none | none | |
| matchSignals | CandidateMatchSignals | false | none | none | |
| unsupportedDimensions | [string] | false | none | none | |
| generatedAt | string(date-time) | false | none | none |
MatchSignal
{
"average": 0,
"sampleCount": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| average | number | false | none | none | |
| sampleCount | integer(int32) | false | none | none |
ApiResponseCandidateScoringTrendResponse
{
"code": 0,
"message": "string",
"data": {
"candidateId": 0,
"months": 0,
"items": [
{
"period": "string",
"overallScore": 0,
"rulesVersion": "string",
"dimensions": {
"property1": 0,
"property2": 0
}
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidateScoringTrendResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CandidatePercentileResponse
{
"candidateId": 0,
"status": "string",
"scoreType": "string",
"score": 0,
"percentile": 0,
"cohortSize": 0,
"sampleCount": 0,
"minimumSampleCount": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| candidateId | integer(int64) | false | none | none | |
| status | string | false | none | none | |
| scoreType | string | false | none | none | |
| score | number | false | none | none | |
| percentile | number | false | none | none | |
| cohortSize | integer(int32) | false | none | none | |
| sampleCount | integer(int32) | false | none | none | |
| minimumSampleCount | integer(int32) | false | none | none |
ApiResponseCompanyCandidateScoringResponse
{
"code": 0,
"message": "string",
"data": {
"applicationId": 0,
"overallScore": 0,
"status": "string",
"dimensions": [
{
"dimension": "string",
"score": 0,
"status": "string"
}
],
"generatedAt": "2019-08-24T14:15:22Z",
"rulesVersion": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CompanyCandidateScoringResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseScoreTrendResponse
{
"code": 0,
"message": "string",
"data": {
"companyId": 0,
"months": 0,
"items": [
{
"period": "string",
"overallScore": 0,
"rulesVersion": "string",
"dimensions": {
"property1": 0,
"property2": 0
}
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | ScoreTrendResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ScoreTrendResponse
{
"companyId": 0,
"months": 0,
"items": [
{
"period": "string",
"overallScore": 0,
"rulesVersion": "string",
"dimensions": {
"property1": 0,
"property2": 0
}
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| companyId | integer(int64) | false | none | none | |
| months | integer(int32) | false | none | none | |
| items | [TrendItem] | false | none | none |
ApiResponseDashboardOverviewResponse
{
"code": 0,
"message": "string",
"data": {
"companyId": 0,
"totalJobs": 0,
"publishedJobs": 0,
"avgJobScore": 0,
"totalCandidates": 0,
"avgCandidateScore": 0,
"scoreDistribution": {
"property1": 0,
"property2": 0
},
"updatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | DashboardOverviewResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
DashboardOverviewResponse
{
"companyId": 0,
"totalJobs": 0,
"publishedJobs": 0,
"avgJobScore": 0,
"totalCandidates": 0,
"avgCandidateScore": 0,
"scoreDistribution": {
"property1": 0,
"property2": 0
},
"updatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| companyId | integer(int64) | false | none | none | |
| totalJobs | integer(int32) | false | none | none | |
| publishedJobs | integer(int32) | false | none | none | |
| avgJobScore | number | false | none | none | |
| totalCandidates | integer(int32) | false | none | none | |
| avgCandidateScore | number | false | none | none | |
| scoreDistribution | object | false | none | none | |
| » additionalProperties | integer(int32) | false | none | none | |
| updatedAt | string(date-time) | false | none | none |
ApiResponseJobRankingListResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"jobId": 0,
"title": "string",
"city": "string",
"employmentType": "string",
"avgRating": 0,
"reviewCount": 0,
"rank": 0,
"cohortSize": 0,
"dimensionAverages": {
"property1": 0,
"property2": 0
}
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | JobRankingListResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
JobRankingItem
{
"jobId": 0,
"title": "string",
"city": "string",
"employmentType": "string",
"avgRating": 0,
"reviewCount": 0,
"rank": 0,
"cohortSize": 0,
"dimensionAverages": {
"property1": 0,
"property2": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| jobId | integer(int64) | false | none | none | |
| title | string | false | none | none | |
| city | string | false | none | none | |
| employmentType | string | false | none | none | |
| avgRating | number | false | none | none | |
| reviewCount | integer(int32) | false | none | none | |
| rank | integer(int32) | false | none | none | |
| cohortSize | integer(int32) | false | none | none | |
| dimensionAverages | object | false | none | none | |
| » additionalProperties | number | false | none | none |
JobRankingListResponse
{
"items": [
{
"jobId": 0,
"title": "string",
"city": "string",
"employmentType": "string",
"avgRating": 0,
"reviewCount": 0,
"rank": 0,
"cohortSize": 0,
"dimensionAverages": {
"property1": 0,
"property2": 0
}
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [JobRankingItem] | false | none | none | |
| total | integer(int64) | false | none | none | |
| page | integer(int32) | false | none | none | |
| size | integer(int32) | false | none | none | |
| totalPages | integer(int32) | false | none | none |
ApiResponseJobRankingItem
{
"code": 0,
"message": "string",
"data": {
"jobId": 0,
"title": "string",
"city": "string",
"employmentType": "string",
"avgRating": 0,
"reviewCount": 0,
"rank": 0,
"cohortSize": 0,
"dimensionAverages": {
"property1": 0,
"property2": 0
}
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | JobRankingItem | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseCandidateRankingListResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"applicationId": 0,
"jobId": 0,
"candidateName": "string",
"candidateSchool": "string",
"overallScore": 0,
"percentile": 0,
"sampleCount": 0
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidateRankingListResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CandidateRankingItem
{
"applicationId": 0,
"jobId": 0,
"candidateName": "string",
"candidateSchool": "string",
"overallScore": 0,
"percentile": 0,
"sampleCount": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| applicationId | integer(int64) | false | none | none | |
| jobId | integer(int64) | false | none | none | |
| candidateName | string | false | none | none | |
| candidateSchool | string | false | none | none | |
| overallScore | number | false | none | none | |
| percentile | number | false | none | none | |
| sampleCount | integer(int32) | false | none | none |
CandidateDetailView
{
"applicationId": 0,
"jobId": 0,
"jobTitle": "string",
"jobCity": "string",
"jobEmploymentType": "string",
"status": "string",
"coverLetter": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"candidateName": "string",
"candidateAvatarUrl": "string",
"candidateBio": "string",
"candidateLocation": "string",
"candidateSchool": "string",
"candidateEducation": "string",
"candidateGraduationYear": 0,
"candidateSkills": [
"string"
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| applicationId | integer(int64) | false | none | none | |
| jobId | integer(int64) | false | none | none | |
| jobTitle | string | false | none | none | |
| jobCity | string | false | none | none | |
| jobEmploymentType | string | false | none | none | |
| status | string | false | none | none | |
| coverLetter | string | false | none | none | |
| createdAt | string(date-time) | false | none | none | |
| updatedAt | string(date-time) | false | none | none | |
| candidateName | string | false | none | none | |
| candidateAvatarUrl | string | false | none | none | |
| candidateBio | string | false | none | none | |
| candidateLocation | string | false | none | none | |
| candidateSchool | string | false | none | none | |
| candidateEducation | string | false | none | none | |
| candidateGraduationYear | integer(int32) | false | none | none | |
| candidateSkills | [string] | false | none | none |
CandidateRankingListResponse
{
"items": [
{
"applicationId": 0,
"jobId": 0,
"candidateName": "string",
"candidateSchool": "string",
"overallScore": 0,
"percentile": 0,
"sampleCount": 0
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [CandidateRankingItem] | false | none | none | |
| total | integer(int64) | false | none | none | |
| page | integer(int32) | false | none | none | |
| size | integer(int32) | false | none | none | |
| totalPages | integer(int32) | false | none | none |
ApiResponseCandidateRankingDetailResponse
{
"code": 0,
"message": "string",
"data": {
"applicationId": 0,
"jobId": 0,
"candidateName": "string",
"candidateSchool": "string",
"overallScore": 0,
"percentile": 0,
"cohortSize": 0,
"dimensionScores": [
{
"dimension": "string",
"score": 0,
"status": "string"
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidateRankingDetailResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CandidateRankingDetailResponse
{
"applicationId": 0,
"jobId": 0,
"candidateName": "string",
"candidateSchool": "string",
"overallScore": 0,
"percentile": 0,
"cohortSize": 0,
"dimensionScores": [
{
"dimension": "string",
"score": 0,
"status": "string"
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| applicationId | integer(int64) | false | none | none | |
| jobId | integer(int64) | false | none | none | |
| candidateName | string | false | none | none | |
| candidateSchool | string | false | none | none | |
| overallScore | number | false | none | none | |
| percentile | number | false | none | none | |
| cohortSize | integer(int32) | false | none | none | |
| dimensionScores | [DimensionScoreItem] | false | none | none |
DimensionScoreItem
{
"dimension": "string",
"score": 0,
"status": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| dimension | string | false | none | none | |
| score | number | false | none | none | |
| status | string | false | none | none |
CandidateItemView
{
"applicationId": 0,
"jobId": 0,
"jobTitle": "string",
"status": "string",
"candidateName": "string",
"candidateSchool": "string",
"candidateEducation": "string",
"candidateGraduationYear": 0,
"candidateAvatarUrl": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| applicationId | integer(int64) | false | none | none | |
| jobId | integer(int64) | false | none | none | |
| jobTitle | string | false | none | none | |
| status | string | false | none | none | |
| candidateName | string | false | none | none | |
| candidateSchool | string | false | none | none | |
| candidateEducation | string | false | none | none | |
| candidateGraduationYear | integer(int32) | false | none | none | |
| candidateAvatarUrl | string | false | none | none | |
| createdAt | string(date-time) | false | none | none | |
| updatedAt | string(date-time) | false | none | none |
ApiResponseCandidateListResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"applicationId": 0,
"jobId": 0,
"jobTitle": "string",
"status": "string",
"candidateName": "string",
"candidateSchool": "string",
"candidateEducation": "string",
"candidateGraduationYear": 0,
"candidateAvatarUrl": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidateListResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CandidateListResponse
{
"items": [
{
"applicationId": 0,
"jobId": 0,
"jobTitle": "string",
"status": "string",
"candidateName": "string",
"candidateSchool": "string",
"candidateEducation": "string",
"candidateGraduationYear": 0,
"candidateAvatarUrl": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [CandidateItemView] | false | none | none | |
| total | integer(int64) | false | none | none | |
| page | integer(int32) | false | none | none | |
| size | integer(int32) | false | none | none | |
| totalPages | integer(int32) | false | none | none |
ApiResponseCandidateDetailView
{
"code": 0,
"message": "string",
"data": {
"applicationId": 0,
"jobId": 0,
"jobTitle": "string",
"jobCity": "string",
"jobEmploymentType": "string",
"status": "string",
"coverLetter": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"candidateName": "string",
"candidateAvatarUrl": "string",
"candidateBio": "string",
"candidateLocation": "string",
"candidateSchool": "string",
"candidateEducation": "string",
"candidateGraduationYear": 0,
"candidateSkills": [
"string"
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CandidateDetailView | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CompanyCandidateScoringResponse
{
"applicationId": 0,
"overallScore": 0,
"status": "string",
"dimensions": [
{
"dimension": "string",
"score": 0,
"status": "string"
}
],
"generatedAt": "2019-08-24T14:15:22Z",
"rulesVersion": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| applicationId | integer(int64) | false | none | none | |
| overallScore | number | false | none | none | |
| status | string | false | none | none | |
| dimensions | [CompanyDimensionItem] | false | none | none | |
| generatedAt | string(date-time) | false | none | none | |
| rulesVersion | string | false | none | none |
CompanyDimensionItem
{
"dimension": "string",
"score": 0,
"status": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| dimension | string | false | none | none | |
| score | number | false | none | none | |
| status | string | false | none | none |
CandidateScoringOverviewResponse
{
"candidateId": 0,
"status": "string",
"overallScore": 0,
"weights": {
"property1": 0,
"property2": 0
},
"dimensions": [
{
"dimension": "string",
"score": 0,
"status": "string",
"weight": 0,
"summary": "string"
}
],
"rulesVersion": "string",
"generatedAt": "2019-08-24T14:15:22Z",
"explanationVersion": "string",
"coverage": {
"computableDimensions": 0,
"totalDimensions": 0,
"includedDimensions": [
"string"
],
"excludedDimensions": [
{
"dimension": "string",
"status": "string",
"reason": "string"
}
]
},
"comparabilityNotice": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| candidateId | integer(int64) | false | none | none | |
| status | string | false | none | none | |
| overallScore | number | false | none | none | |
| weights | object | false | none | none | |
| » additionalProperties | number | false | none | none | |
| dimensions | [DimensionItem] | false | none | none | |
| rulesVersion | string | false | none | none | |
| generatedAt | string(date-time) | false | none | none | |
| explanationVersion | string | false | none | 解释契约版本,与评分规则版本独立 | |
| coverage | CandidateScoringCoverage | false | none | none | |
| comparabilityNotice | string | false | none | none |
AdminDashboardOverviewResponse
{
"totalCompanies": 0,
"totalJobs": 0,
"totalCandidates": 0,
"avgCandidateScore": 0,
"topCompanies": [
{
"companyId": 0,
"companyName": "string",
"avgCandidateScore": 0,
"jobCount": 0
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| totalCompanies | integer(int32) | false | none | none | |
| totalJobs | integer(int32) | false | none | none | |
| totalCandidates | integer(int32) | false | none | none | |
| avgCandidateScore | number | false | none | none | |
| topCompanies | [CompanyScoreItem] | false | none | none |
ApiResponseAdminDashboardOverviewResponse
{
"code": 0,
"message": "string",
"data": {
"totalCompanies": 0,
"totalJobs": 0,
"totalCandidates": 0,
"avgCandidateScore": 0,
"topCompanies": [
{
"companyId": 0,
"companyName": "string",
"avgCandidateScore": 0,
"jobCount": 0
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | AdminDashboardOverviewResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CompanyScoreItem
{
"companyId": 0,
"companyName": "string",
"avgCandidateScore": 0,
"jobCount": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| companyId | integer(int64) | false | none | none | |
| companyName | string | false | none | none | |
| avgCandidateScore | number | false | none | none | |
| jobCount | integer(int32) | false | none | none |
ApiResponseListSnapshotHistoryItem
{
"code": 0,
"message": "string",
"data": [
{
"id": 0,
"appealId": 0,
"action": "string",
"dimension": "string",
"period": "string",
"beforeScore": 0,
"afterScore": 0,
"beforeVersion": 0,
"afterVersion": 0,
"beforeRulesVersion": "string",
"afterRulesVersion": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
],
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | [SnapshotHistoryItem] | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
SnapshotHistoryItem
{
"id": 0,
"appealId": 0,
"action": "string",
"dimension": "string",
"period": "string",
"beforeScore": 0,
"afterScore": 0,
"beforeVersion": 0,
"afterVersion": 0,
"beforeRulesVersion": "string",
"afterRulesVersion": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| appealId | integer(int64) | false | none | none | |
| action | string | false | none | none | |
| dimension | string | false | none | none | |
| period | string | false | none | none | |
| beforeScore | number | false | none | none | |
| afterScore | number | false | none | none | |
| beforeVersion | integer(int64) | false | none | none | |
| afterVersion | integer(int64) | false | none | none | |
| beforeRulesVersion | string | false | none | none | |
| afterRulesVersion | string | false | none | none | |
| createdAt | string(date-time) | false | none | none |
ApiResponseListAppealHistoryItem
{
"code": 0,
"message": "string",
"data": [
{
"id": 0,
"fromStatus": "string",
"toStatus": "string",
"actorUserId": 0,
"actorRole": "string",
"reason": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
],
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | [AppealHistoryItem] | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
AppealHistoryItem
{
"id": 0,
"fromStatus": "string",
"toStatus": "string",
"actorUserId": 0,
"actorRole": "string",
"reason": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| fromStatus | string | false | none | none | |
| toStatus | string | false | none | none | |
| actorUserId | integer(int64) | false | none | none | |
| actorRole | string | false | none | none | |
| reason | string | false | none | none | |
| createdAt | string(date-time) | false | none | none |
PrivacySettingsResponse
{
"id": 1,
"studentUserId": 2,
"resumeVisibility": "APPLIED_COMPANIES",
"contactVisible": true,
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64)¦null | false | none | none | |
| studentUserId | integer(int64) | false | none | none | |
| resumeVisibility | ResumeVisibility | false | none | 简历可见性(PRIVATE/APPLIED_COMPANIES/VERIFIED_COMPANIES) | |
| contactVisible | boolean | false | none | none | |
| version | integer(int64) | false | none | none | |
| createdAt | string(date-time)¦null | false | none | none | |
| updatedAt | string(date-time)¦null | false | none | none |
ResumeVisibility
"PRIVATE"
简历可见性:PRIVATE 私有;APPLIED_COMPANIES 仅对企业有效投递可见;VERIFIED_COMPANIES 仅对认证企业可见
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| anonymous | string | false | none | 简历可见性:PRIVATE 私有;APPLIED_COMPANIES 仅对企业有效投递可见;VERIFIED_COMPANIES 仅对认证企业可见 |
枚举值
| 属性 | 值 |
|---|---|
| anonymous | PRIVATE |
| anonymous | APPLIED_COMPANIES |
| anonymous | VERIFIED_COMPANIES |
DimensionScoreDetailResponse
{
"dimension": "string",
"score": 0,
"status": "string",
"subScores": [
{
"name": "string",
"score": 0,
"weight": 0,
"description": "string"
}
],
"reasons": [
"string"
],
"dataSources": [
{
"source": "string",
"time": "2019-08-24T14:15:22Z",
"note": "string"
}
],
"updatedAt": "2019-08-24T14:15:22Z",
"rulesVersion": "string",
"displayName": "string",
"whatItMeasures": "string",
"interpretation": "string",
"limitations": [
"string"
],
"evidenceLevel": "DIRECT_RULE",
"ruleContributions": [
{
"ruleCode": "string",
"outcome": "APPLIED",
"contribution": 0,
"maxContribution": 0,
"label": "string",
"observation": "string",
"explanation": "string"
}
],
"improvementActions": [
"string"
],
"explanationVersion": "string",
"validity": {
"completedAt": "2019-08-24T14:15:22Z",
"validUntil": "2019-08-24T14:15:22Z",
"expired": true
},
"calculatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| dimension | string | false | none | none | |
| score | number | false | none | none | |
| status | string | false | none | none | |
| subScores | [SubScore] | false | none | none | |
| reasons | [string] | false | none | none | |
| dataSources | [DataSourceItem] | false | none | none | |
| updatedAt | string(date-time) | false | none | none | |
| rulesVersion | string | false | none | none | |
| displayName | string | false | none | none | |
| whatItMeasures | string | false | none | none | |
| interpretation | string | false | none | none | |
| limitations | [string] | false | none | none | |
| evidenceLevel | string | false | none | none | |
| ruleContributions | [CandidateScoringRuleContribution] | false | none | none | |
| improvementActions | [string] | false | none | none | |
| explanationVersion | string | false | none | none | |
| validity | CandidateScoringValidity | false | none | none | |
| calculatedAt | string(date-time) | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| evidenceLevel | DIRECT_RULE |
| evidenceLevel | SELF_REPORTED |
| evidenceLevel | BEHAVIOR_PROXY |
| evidenceLevel | UNVALIDATED_PROXY |
ApiResponseInterviewScoreResponse
{
"code": 0,
"message": "string",
"data": {
"id": 0,
"interviewId": 0,
"applicationId": 0,
"status": "DRAFT",
"technicalScore": 0,
"communicationScore": 0,
"problemSolvingScore": 0,
"roleFitScore": 0,
"professionalismScore": 0,
"overallScore": 0,
"recommendation": "STRONG_HIRE",
"comment": "string",
"submittedAt": "2019-08-24T14:15:22Z",
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | InterviewScoreResponse | false | none | 面试评分响应(脱敏:不返回 companyUserId/studentUserId/evaluatorUserId/手机号/邮箱) | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseListInterviewScoreHistoryItem
{
"code": 0,
"message": "string",
"data": [
{
"id": 0,
"scoreId": 0,
"interviewId": 0,
"fromStatus": "DRAFT",
"toStatus": "DRAFT",
"actorRole": "COMPANY",
"snapshot": {
"property1": null,
"property2": null
},
"createdAt": "2019-08-24T14:15:22Z"
}
],
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | [InterviewScoreHistoryItem] | false | none | [评分历史条目(脱敏:不返回 actorUserId/手机号/邮箱)] | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ReportResponseReportedUser
{
"userId": 0,
"nickname": "string",
"role": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| userId | integer(int64) | false | none | none | |
| nickname | string | false | none | none | |
| role | string | false | none | none |
PrivacySettingsUpdateRequest
{
"resumeVisibility": "APPLIED_COMPANIES",
"contactVisible": true,
"version": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| resumeVisibility | ResumeVisibility | true | none | 简历可见性(必填) | |
| contactVisible | boolean | true | none | 联系方式是否对企业可见(必填) | |
| version | integer(int64) | false | none | 乐观锁版本号(可选) |
ReportResponseDecisionHistoryItem
{
"id": 0,
"fromStatus": "string",
"toStatus": "string",
"actorUserId": 0,
"actorRole": "string",
"note": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| fromStatus | string | false | none | none | |
| toStatus | string | false | none | none | |
| actorUserId | integer(int64) | false | none | none | |
| actorRole | string | false | none | none | |
| note | string | false | none | none | |
| createdAt | string(date-time) | false | none | none |
BlockRelationResponse
{
"id": 0,
"blockedUserId": 0,
"nickname": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| blockedUserId | integer(int64) | false | none | none | |
| nickname | string | false | none | none | |
| createdAt | string(date-time) | false | none | none |
ApiResponseReportResponse
{
"code": 0,
"message": "string",
"data": {
"id": 0,
"targetType": "USER",
"targetUserId": 0,
"messageId": 0,
"reportedUserId": 0,
"category": "string",
"reason": "string",
"evidenceUrls": [
"string"
],
"status": "PENDING",
"decision": "RESOLVED",
"decisionNote": "string",
"decidedAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"messagePreview": "string",
"reportedUser": {
"userId": 0,
"nickname": "string",
"role": "string"
},
"history": [
{
"id": 0,
"fromStatus": "string",
"toStatus": "string",
"actorUserId": 0,
"actorRole": "string",
"note": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | ReportResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseBlockRelationResponse
{
"code": 0,
"message": "string",
"data": {
"id": 0,
"blockedUserId": 0,
"nickname": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | BlockRelationResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CreateAbilityAttemptRequest
{
"typeCode": "string",
"idempotencyKey": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| typeCode | string | true | none | none | |
| idempotencyKey | string | false | none | none |
SaveAbilityAnswersRequest
{
"answers": [
{
"attemptQuestionId": 0,
"selectedOptionId": "stri"
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| answers | [AbilityAnswerItem] | true | none | none |
AbilityAnswerItem
{
"attemptQuestionId": 0,
"selectedOptionId": "stri"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| attemptQuestionId | integer(int64) | true | none | none | |
| selectedOptionId | string | true | none | none |
AbilityTypeResponse
{
"typeCode": "string",
"displayName": "string",
"description": "string",
"questionCount": 0,
"attemptQuestionCount": 0,
"timeLimitMinutes": 0,
"resultValidDays": 0,
"status": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| typeCode | string | false | none | none | |
| displayName | string | false | none | none | |
| description | string | false | none | none | |
| questionCount | integer(int32) | false | none | none | |
| attemptQuestionCount | integer(int32) | false | none | none | |
| timeLimitMinutes | integer(int32) | false | none | none | |
| resultValidDays | integer(int32) | false | none | none | |
| status | string | false | none | none |
AbilityAttemptResponse
{
"attemptId": 0,
"status": "string",
"answeredCount": 0,
"totalQuestions": 0,
"completionRate": 0,
"startedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"remainingSeconds": 0,
"questions": [
{
"attemptQuestionId": 0,
"position": 0,
"itemType": "string",
"stem": "string",
"options": [
{
"optionId": "string",
"text": "string"
}
],
"selectedOptionId": "string"
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| attemptId | integer(int64) | false | none | none | |
| status | string | false | none | none | |
| answeredCount | integer(int32) | false | none | none | |
| totalQuestions | integer(int32) | false | none | none | |
| completionRate | number | false | none | none | |
| startedAt | string(date-time)¦null | false | none | none | |
| expiresAt | string(date-time)¦null | false | none | none | |
| remainingSeconds | integer(int64)¦null | false | none | none | |
| questions | [AbilityAttemptQuestionView] | false | none | none |
AbilityAttemptQuestionView
{
"attemptQuestionId": 0,
"position": 0,
"itemType": "string",
"stem": "string",
"options": [
{
"optionId": "string",
"text": "string"
}
],
"selectedOptionId": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| attemptQuestionId | integer(int64) | false | none | none | |
| position | integer(int32) | false | none | none | |
| itemType | string | false | none | none | |
| stem | string | false | none | none | |
| options | [AbilityOptionView] | false | none | none | |
| selectedOptionId | string | false | none | none |
AdminCompanyReviewReplyResponse
{
"id": 1,
"reviewId": 100,
"companyUserId": 5,
"content": "感谢您的反馈,我们会持续改进",
"moderationStatus": "PENDING",
"moderationReason": "内容合规",
"createdAt": "2026-09-01T10:00:00",
"updatedAt": "2026-09-01T10:00:00",
"moderationUpdatedAt": "2026-09-01T10:00:00",
"jobId": 50,
"jobTitle": "Java 后端工程师",
"companyId": 2,
"companyName": "本源科技",
"reviewRating": 3,
"reviewContent": "整体体验不错",
"studentUserId": 2
}
管理端企业回复(含岗位/企业/评价上下文)
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | 回复 ID | |
| reviewId | integer(int64) | false | none | 被回复的评价 ID | |
| companyUserId | integer(int64) | false | none | 回复企业用户 id | |
| content | string | false | none | 回复内容 | |
| moderationStatus | string | false | none | 审核状态:PENDING/APPROVED/REJECTED | |
| moderationReason | string | false | none | 审核原因/意见 | |
| createdAt | string(date-time) | false | none | 创建时间 | |
| updatedAt | string(date-time) | false | none | 更新时间 | |
| moderationUpdatedAt | string(date-time) | false | none | 审核时间 | |
| jobId | integer(int64) | false | none | 岗位 ID | |
| jobTitle | string | false | none | 岗位标题 | |
| companyId | integer(int64) | false | none | 企业 ID | |
| companyName | string | false | none | 企业名称 | |
| reviewRating | integer(int32) | false | none | 评价评分 | |
| reviewContent | string | false | none | 评价内容 | |
| studentUserId | integer(int64) | false | none | 评价学生用户 id |
AbilityOptionView
{
"optionId": "string",
"text": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| optionId | string | false | none | none | |
| text | string | false | none | none |
ApiResponsePageResponseAdminCompanyReviewReplyResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"id": 1,
"reviewId": 100,
"companyUserId": 5,
"content": "感谢您的反馈,我们会持续改进",
"moderationStatus": "PENDING",
"moderationReason": "内容合规",
"createdAt": "2026-09-01T10:00:00",
"updatedAt": "2026-09-01T10:00:00",
"moderationUpdatedAt": "2026-09-01T10:00:00",
"jobId": 50,
"jobTitle": "Java 后端工程师",
"companyId": 2,
"companyName": "本源科技",
"reviewRating": 3,
"reviewContent": "整体体验不错",
"studentUserId": 2
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | PageResponseAdminCompanyReviewReplyResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
AbilityResultResponse
{
"attemptId": 0,
"typeCode": "string",
"status": "string",
"validityStatus": "string",
"validUntil": "2019-08-24T14:15:22Z",
"dimensionScores": [
{
"code": "string",
"score": 0,
"answeredCount": 0
}
],
"overallScore": 0,
"weaknesses": [
{
"code": "string",
"score": 0
}
],
"improvementAreas": [
{
"dimension": "string",
"currentScore": 0,
"summary": "string",
"actions": [
"string"
]
}
],
"radar": [
{
"code": "string",
"value": 0
}
],
"answeredCount": 0,
"completionRate": 0,
"questionFeedback": [
{
"attemptQuestionId": 0,
"position": 0,
"stem": "string",
"selectedOptionId": "string",
"awardedScore": 0,
"maxScore": 0,
"explanation": "string"
}
],
"questionSetVersion": "string",
"rulesVersion": "string",
"generatedAt": "2019-08-24T14:15:22Z",
"disclaimer": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| attemptId | integer(int64) | false | none | none | |
| typeCode | string | false | none | none | |
| status | string | false | none | none | |
| validityStatus | string | false | none | none | |
| validUntil | string(date-time)¦null | false | none | none | |
| dimensionScores | [AbilityDimensionScore] | false | none | none | |
| overallScore | number | false | none | none | |
| weaknesses | [AbilityWeakness] | false | none | none | |
| improvementAreas | [AbilityImprovementArea] | false | none | none | |
| radar | [AbilityRadarEntry] | false | none | none | |
| answeredCount | integer(int32) | false | none | none | |
| completionRate | number | false | none | none | |
| questionFeedback | [AbilityQuestionFeedback] | false | none | none | |
| questionSetVersion | string | false | none | none | |
| rulesVersion | string | false | none | none | |
| generatedAt | string(date-time) | false | none | none | |
| disclaimer | string | false | none | none |
PageResponseAdminCompanyReviewReplyResponse
{
"items": [
{
"id": 1,
"reviewId": 100,
"companyUserId": 5,
"content": "感谢您的反馈,我们会持续改进",
"moderationStatus": "PENDING",
"moderationReason": "内容合规",
"createdAt": "2026-09-01T10:00:00",
"updatedAt": "2026-09-01T10:00:00",
"moderationUpdatedAt": "2026-09-01T10:00:00",
"jobId": 50,
"jobTitle": "Java 后端工程师",
"companyId": 2,
"companyName": "本源科技",
"reviewRating": 3,
"reviewContent": "整体体验不错",
"studentUserId": 2
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [AdminCompanyReviewReplyResponse] | false | none | [管理端企业回复(含岗位/企业/评价上下文)] | |
| total | integer(int64) | false | none | none | |
| page | integer(int32) | false | none | none | |
| size | integer(int32) | false | none | none | |
| totalPages | integer(int32) | false | none | none |
AbilityDimensionScore
{
"code": "string",
"score": 0,
"answeredCount": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | string | false | none | none | |
| score | number | false | none | none | |
| answeredCount | integer(int32) | false | none | none |
AbilityWeakness
{
"code": "string",
"score": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | string | false | none | none | |
| score | number | false | none | none |
AbilityImprovementArea
{
"dimension": "string",
"currentScore": 0,
"summary": "string",
"actions": [
"string"
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| dimension | string | false | none | none | |
| currentScore | number | false | none | none | |
| summary | string | false | none | none | |
| actions | [string] | false | none | none |
AbilityRadarEntry
{
"code": "string",
"value": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | string | false | none | none | |
| value | number | false | none | none |
InterviewScoreSaveRequest
{
"technicalScore": 1,
"communicationScore": 1,
"problemSolvingScore": 1,
"roleFitScore": 1,
"professionalismScore": 1,
"recommendation": "STRONG_HIRE",
"comment": "string"
}
评分草稿保存请求;overallScore 由服务端计算,客户端不得传入
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| technicalScore | integer¦null | false | none | none | |
| communicationScore | integer¦null | false | none | none | |
| problemSolvingScore | integer¦null | false | none | none | |
| roleFitScore | integer¦null | false | none | none | |
| professionalismScore | integer¦null | false | none | none | |
| recommendation | string¦null | false | none | 企业手动选择,不根据 overallScore 自动推导 | |
| comment | string¦null | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| recommendation | STRONG_HIRE |
| recommendation | HIRE |
| recommendation | NEUTRAL |
| recommendation | NO_HIRE |
AbilityQuestionFeedback
{
"attemptQuestionId": 0,
"position": 0,
"stem": "string",
"selectedOptionId": "string",
"awardedScore": 0,
"maxScore": 0,
"explanation": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| attemptQuestionId | integer(int64) | false | none | none | |
| position | integer(int32) | false | none | none | |
| stem | string | false | none | none | |
| selectedOptionId | string | false | none | none | |
| awardedScore | integer(int32) | false | none | none | |
| maxScore | integer(int32) | false | none | none | |
| explanation | string | false | none | none |
InterviewScoreResponse
{
"id": 0,
"interviewId": 0,
"applicationId": 0,
"status": "DRAFT",
"technicalScore": 0,
"communicationScore": 0,
"problemSolvingScore": 0,
"roleFitScore": 0,
"professionalismScore": 0,
"overallScore": 0,
"recommendation": "STRONG_HIRE",
"comment": "string",
"submittedAt": "2019-08-24T14:15:22Z",
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
面试评分响应(脱敏:不返回 companyUserId/studentUserId/evaluatorUserId/手机号/邮箱)
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| interviewId | integer(int64) | false | none | none | |
| applicationId | integer(int64) | false | none | none | |
| status | string | false | none | none | |
| technicalScore | integer¦null | false | none | none | |
| communicationScore | integer¦null | false | none | none | |
| problemSolvingScore | integer¦null | false | none | none | |
| roleFitScore | integer¦null | false | none | none | |
| professionalismScore | integer¦null | false | none | none | |
| overallScore | number(decimal)¦null | false | none | 由服务端 BigDecimal 计算:(t+c+ps+rf+p)/5,保留两位小数 HALF_UP | |
| recommendation | string¦null | false | none | none | |
| comment | string¦null | false | none | none | |
| submittedAt | string(date-time)¦null | false | none | none | |
| version | integer(int64) | false | none | none | |
| createdAt | string(date-time) | false | none | none | |
| updatedAt | string(date-time) | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| status | DRAFT |
| status | SUBMITTED |
| recommendation | STRONG_HIRE |
| recommendation | HIRE |
| recommendation | NEUTRAL |
| recommendation | NO_HIRE |
AbilityHistoryItem
{
"attemptId": 0,
"typeCode": "string",
"status": "string",
"validityStatus": "string",
"overallScore": 0,
"answeredCount": 0,
"completionRate": 0,
"startedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"validUntil": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| attemptId | integer(int64) | false | none | none | |
| typeCode | string | false | none | none | |
| status | string | false | none | none | |
| validityStatus | string | false | none | none | |
| overallScore | number | false | none | none | |
| answeredCount | integer(int32) | false | none | none | |
| completionRate | number | false | none | none | |
| startedAt | string(date-time)¦null | false | none | none | |
| expiresAt | string(date-time)¦null | false | none | none | |
| completedAt | string(date-time)¦null | false | none | none | |
| validUntil | string(date-time)¦null | false | none | none |
ApiResponseAbilityTypeResponse
{
"code": 0,
"message": "string",
"data": {
"typeCode": "string",
"displayName": "string",
"description": "string",
"questionCount": 0,
"attemptQuestionCount": 0,
"timeLimitMinutes": 0,
"resultValidDays": 0,
"status": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | AbilityTypeResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
InterviewScoreHistoryItem
{
"id": 0,
"scoreId": 0,
"interviewId": 0,
"fromStatus": "DRAFT",
"toStatus": "DRAFT",
"actorRole": "COMPANY",
"snapshot": {
"property1": null,
"property2": null
},
"createdAt": "2019-08-24T14:15:22Z"
}
评分历史条目(脱敏:不返回 actorUserId/手机号/邮箱)
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| scoreId | integer(int64) | false | none | none | |
| interviewId | integer(int64) | false | none | none | |
| fromStatus | string¦null | false | none | none | |
| toStatus | string | false | none | none | |
| actorRole | string | false | none | none | |
| snapshot | object | false | none | none | |
| » additionalProperties | any | false | none | none | |
| createdAt | string(date-time) | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| fromStatus | DRAFT |
| fromStatus | SUBMITTED |
| toStatus | DRAFT |
| toStatus | SUBMITTED |
ApiResponseAbilityAttemptResponse
{
"code": 0,
"message": "string",
"data": {
"attemptId": 0,
"status": "string",
"answeredCount": 0,
"totalQuestions": 0,
"completionRate": 0,
"startedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"remainingSeconds": 0,
"questions": [
{
"attemptQuestionId": 0,
"position": 0,
"itemType": "string",
"stem": "string",
"options": [
{
"optionId": null,
"text": null
}
],
"selectedOptionId": "string"
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | AbilityAttemptResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseAbilityResultResponse
{
"code": 0,
"message": "string",
"data": {
"attemptId": 0,
"typeCode": "string",
"status": "string",
"validityStatus": "string",
"validUntil": "2019-08-24T14:15:22Z",
"dimensionScores": [
{
"code": "string",
"score": 0,
"answeredCount": 0
}
],
"overallScore": 0,
"weaknesses": [
{
"code": "string",
"score": 0
}
],
"improvementAreas": [
{
"dimension": "string",
"currentScore": 0,
"summary": "string",
"actions": [
"string"
]
}
],
"radar": [
{
"code": "string",
"value": 0
}
],
"answeredCount": 0,
"completionRate": 0,
"questionFeedback": [
{
"attemptQuestionId": 0,
"position": 0,
"stem": "string",
"selectedOptionId": "string",
"awardedScore": 0,
"maxScore": 0,
"explanation": "string"
}
],
"questionSetVersion": "string",
"rulesVersion": "string",
"generatedAt": "2019-08-24T14:15:22Z",
"disclaimer": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | AbilityResultResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CreateReportRequest
{
"targetType": "USER",
"targetUserId": 0,
"messageId": 0,
"category": "string",
"reason": "string",
"evidenceUrls": [
"string"
],
"idempotencyKey": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| targetType | string | false | none | 举报目标类型;USER 必填 targetUserId,MESSAGE 必填 messageId | |
| targetUserId | integer(int64) | false | none | targetType=USER 时必填 | |
| messageId | integer(int64) | false | none | targetType=MESSAGE 时必填 | |
| category | string | false | none | 举报分类,如 HARASSMENT | |
| reason | string | false | none | none | |
| evidenceUrls | [string] | false | none | 最多 5 个,仅 http/https,最多 500 字符 | |
| idempotencyKey | string | false | none | 幂等键(可选) |
枚举值
| 属性 | 值 |
|---|---|
| targetType | USER |
| targetType | MESSAGE |
ApiResponsePageResponseAbilityHistoryItem
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"attemptId": 0,
"typeCode": "string",
"status": "string",
"validityStatus": "string",
"overallScore": 0,
"answeredCount": 0,
"completionRate": 0,
"startedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"validUntil": "2019-08-24T14:15:22Z"
}
],
"totalElements": 0,
"page": 0,
"size": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none | |
| » items | [AbilityHistoryItem] | false | none | none | |
| » totalElements | integer(int64) | false | none | none | |
| » page | integer(int32) | false | none | none | |
| » size | integer(int32) | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ReportDecisionRequest
{
"decision": "RESOLVED",
"note": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| decision | string | false | none | none | |
| note | string | false | none | REJECTED 必填 |
枚举值
| 属性 | 值 |
|---|---|
| decision | RESOLVED |
| decision | REJECTED |
RiskRuleResponse
{
"ruleCode": "string",
"sourceAction": "string",
"thresholdCount": 0,
"windowMinutes": 0,
"severity": "string",
"enabled": true,
"version": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ruleCode | string | false | none | none | |
| sourceAction | string | false | none | none | |
| thresholdCount | integer(int32) | false | none | none | |
| windowMinutes | integer(int32) | false | none | none | |
| severity | string | false | none | none | |
| enabled | boolean | false | none | none | |
| version | integer(int64) | false | none | none |
ReportResponse
{
"id": 0,
"targetType": "USER",
"targetUserId": 0,
"messageId": 0,
"reportedUserId": 0,
"category": "string",
"reason": "string",
"evidenceUrls": [
"string"
],
"status": "PENDING",
"decision": "RESOLVED",
"decisionNote": "string",
"decidedAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"messagePreview": "string",
"reportedUser": {
"userId": 0,
"nickname": "string",
"role": "string"
},
"history": [
{
"id": 0,
"fromStatus": "string",
"toStatus": "string",
"actorUserId": 0,
"actorRole": "string",
"note": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| targetType | string | false | none | none | |
| targetUserId | integer(int64) | false | none | none | |
| messageId | integer(int64) | false | none | none | |
| reportedUserId | integer(int64) | false | none | none | |
| category | string | false | none | none | |
| reason | string | false | none | none | |
| evidenceUrls | [string] | false | none | none | |
| status | string | false | none | none | |
| decision | string | false | none | none | |
| decisionNote | string | false | none | none | |
| decidedAt | string(date-time) | false | none | none | |
| createdAt | string(date-time) | false | none | none | |
| updatedAt | string(date-time) | false | none | none | |
| messagePreview | string | false | none | MESSAGE 举报的脱敏消息预览,不返回会话其他敏感内容 | |
| reportedUser | ReportResponseReportedUser | false | none | none | |
| history | [ReportResponseDecisionHistoryItem] | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| targetType | USER |
| targetType | MESSAGE |
| status | PENDING |
| status | RESOLVED |
| status | REJECTED |
| decision | RESOLVED |
| decision | REJECTED |
RiskEventResponse
{
"eventId": 0,
"ruleCode": "string",
"sourceAction": "string",
"severity": "string",
"status": "string",
"occurrenceCount": 0,
"windowStartedAt": "2019-08-24T14:15:22Z",
"windowEndedAt": "2019-08-24T14:15:22Z",
"detectedAt": "2019-08-24T14:15:22Z",
"version": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| eventId | integer(int64) | false | none | none | |
| ruleCode | string | false | none | none | |
| sourceAction | string | false | none | none | |
| severity | string | false | none | none | |
| status | string | false | none | none | |
| occurrenceCount | integer(int32) | false | none | none | |
| windowStartedAt | string(date-time) | false | none | none | |
| windowEndedAt | string(date-time) | false | none | none | |
| detectedAt | string(date-time) | false | none | none | |
| version | integer(int64) | false | none | none |
RiskSeverityCount
{
"severity": "string",
"count": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| severity | string | false | none | none | |
| count | integer(int64) | false | none | none |
RiskRuleCount
{
"ruleCode": "string",
"count": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ruleCode | string | false | none | none | |
| count | integer(int64) | false | none | none |
RiskOverviewResponse
{
"openCount": 0,
"bySeverity": [
{
"severity": "string",
"count": 0
}
],
"byRule": [
{
"ruleCode": "string",
"count": 0
}
],
"lastDetectedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| openCount | integer(int64) | false | none | none | |
| bySeverity | [RiskSeverityCount] | false | none | none | |
| byRule | [RiskRuleCount] | false | none | none | |
| lastDetectedAt | string(date-time)¦null | false | none | none |
RiskTrendPoint
{
"time": "2019-08-24T14:15:22Z",
"count": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| time | string(date-time) | false | none | none | |
| count | integer(int64) | false | none | none |
ApiResponsePageResponseReportResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"id": 0,
"targetType": "USER",
"targetUserId": 0,
"messageId": 0,
"reportedUserId": 0,
"category": "string",
"reason": "string",
"evidenceUrls": [
"string"
],
"status": "PENDING",
"decision": "RESOLVED",
"decisionNote": "string",
"decidedAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"messagePreview": "string",
"reportedUser": {
"userId": 0,
"nickname": "string",
"role": "string"
},
"history": [
{
"id": null,
"fromStatus": null,
"toStatus": null,
"actorUserId": null,
"actorRole": null,
"note": null,
"createdAt": null
}
]
}
],
"totalElements": 0,
"page": 0,
"size": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none | |
| » items | [ReportResponse] | false | none | none | |
| » totalElements | integer(int64) | false | none | none | |
| » page | integer(int32) | false | none | none | |
| » size | integer(int32) | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
RiskTrendResponse
{
"bucket": "string",
"items": [
{
"time": "2019-08-24T14:15:22Z",
"count": 0
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| bucket | string | false | none | none | |
| items | [RiskTrendPoint] | false | none | none |
RiskDistributionRow
{
"ruleCode": "string",
"severity": "string",
"count": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ruleCode | string | false | none | none | |
| severity | string | false | none | none | |
| count | integer(int64) | false | none | none |
ApiResponsePageResponseBlockRelationResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"id": 0,
"blockedUserId": 0,
"nickname": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
],
"totalElements": 0,
"page": 0,
"size": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none | |
| » items | [BlockRelationResponse] | false | none | none | |
| » totalElements | integer(int64) | false | none | none | |
| » page | integer(int32) | false | none | none | |
| » size | integer(int32) | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
RiskDistributionResponse
{
"items": [
{
"ruleCode": "string",
"severity": "string",
"count": 0
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [RiskDistributionRow] | false | none | none |
RiskRuleUpdateRequest
{
"enabled": true,
"thresholdCount": 0,
"windowMinutes": 0,
"severity": "string",
"expectedVersion": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| enabled | boolean | true | none | none | |
| thresholdCount | integer(int32) | true | none | none | |
| windowMinutes | integer(int32) | true | none | none | |
| severity | string | true | none | none | |
| expectedVersion | integer(int64) | true | none | none |
RiskEventActionRequest
{
"action": "string",
"reasonCode": "string",
"expectedVersion": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| action | string | true | none | none | |
| reasonCode | string | true | none | none | |
| expectedVersion | integer(int64) | true | none | none |
ApiResponseRiskOverviewResponse
{
"code": 0,
"message": "string",
"data": {
"openCount": 0,
"bySeverity": [
{
"severity": "string",
"count": 0
}
],
"byRule": [
{
"ruleCode": "string",
"count": 0
}
],
"lastDetectedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | RiskOverviewResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseRiskTrendResponse
{
"code": 0,
"message": "string",
"data": {
"bucket": "string",
"items": [
{
"time": "2019-08-24T14:15:22Z",
"count": 0
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | RiskTrendResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseRiskDistributionResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"ruleCode": "string",
"severity": "string",
"count": 0
}
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | RiskDistributionResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponsePageResponseRiskEventResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"eventId": 0,
"ruleCode": "string",
"sourceAction": "string",
"severity": "string",
"status": "string",
"occurrenceCount": 0,
"windowStartedAt": "2019-08-24T14:15:22Z",
"windowEndedAt": "2019-08-24T14:15:22Z",
"detectedAt": "2019-08-24T14:15:22Z",
"version": 0
}
],
"totalElements": 0,
"page": 0,
"size": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none | |
| » items | [RiskEventResponse] | false | none | none | |
| » totalElements | integer(int64) | false | none | none | |
| » page | integer(int32) | false | none | none | |
| » size | integer(int32) | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseRiskRuleResponse
{
"code": 0,
"message": "string",
"data": {
"ruleCode": "string",
"sourceAction": "string",
"thresholdCount": 0,
"windowMinutes": 0,
"severity": "string",
"enabled": true,
"version": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | RiskRuleResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseRiskEventResponse
{
"code": 0,
"message": "string",
"data": {
"eventId": 0,
"ruleCode": "string",
"sourceAction": "string",
"severity": "string",
"status": "string",
"occurrenceCount": 0,
"windowStartedAt": "2019-08-24T14:15:22Z",
"windowEndedAt": "2019-08-24T14:15:22Z",
"detectedAt": "2019-08-24T14:15:22Z",
"version": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | RiskEventResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseListRiskRuleResponse
{
"code": 0,
"message": "string",
"data": [
{
"ruleCode": "string",
"sourceAction": "string",
"thresholdCount": 0,
"windowMinutes": 0,
"severity": "string",
"enabled": true,
"version": 0
}
],
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | [RiskRuleResponse] | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
TalentDiscoveryPreferenceResponse
{
"enabled": true,
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| enabled | boolean | false | none | none | |
| version | integer(int64) | false | none | none | |
| createdAt | string(date-time) | false | none | none | |
| updatedAt | string(date-time) | false | none | none |
TalentDiscoveryPreferenceUpdateRequest
{
"enabled": true,
"expectedVersion": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| enabled | boolean | true | none | none | |
| expectedVersion | integer(int64) | false | none | none |
TalentDiscoveryCandidateResponse
{
"candidateKey": "string",
"candidateLabel": "string",
"city": "string",
"education": "string",
"graduationYear": 0,
"skills": [
"string"
],
"fitBand": "HIGH",
"summary": "string",
"signalsAvailable": [
"PREFERENCE"
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| candidateKey | string | false | none | none | |
| candidateLabel | string | false | none | none | |
| city | string | false | none | none | |
| education | string | false | none | none | |
| graduationYear | integer(int32) | false | none | none | |
| skills | [string] | false | none | none | |
| fitBand | string | false | none | none | |
| summary | string | false | none | none | |
| signalsAvailable | [string] | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| fitBand | HIGH |
| fitBand | MEDIUM |
| fitBand | BASIC |
TalentDiscoveryPageResponse
{
"mode": "PERSONALIZED",
"items": [
{
"candidateKey": "string",
"candidateLabel": "string",
"city": "string",
"education": "string",
"graduationYear": 0,
"skills": [
"string"
],
"fitBand": "HIGH",
"summary": "string",
"signalsAvailable": [
"PREFERENCE"
]
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0,
"message": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| mode | string | false | none | none | |
| items | [TalentDiscoveryCandidateResponse] | false | none | none | |
| total | integer(int64) | false | none | none | |
| page | integer(int32) | false | none | none | |
| size | integer(int32) | false | none | none | |
| totalPages | integer(int32) | false | none | none | |
| message | string | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| mode | PERSONALIZED |
| mode | UNAVAILABLE |
| mode | NO_ELIGIBLE_CANDIDATE |
ApiResponseTalentDiscoveryPreferenceResponse
{
"code": 0,
"message": "string",
"data": {
"enabled": true,
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | TalentDiscoveryPreferenceResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseTalentDiscoveryPageResponse
{
"code": 0,
"message": "string",
"data": {
"mode": "PERSONALIZED",
"items": [
{
"candidateKey": "string",
"candidateLabel": "string",
"city": "string",
"education": "string",
"graduationYear": 0,
"skills": [
"string"
],
"fitBand": "HIGH",
"summary": "string",
"signalsAvailable": [
"PREFERENCE"
]
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0,
"message": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | TalentDiscoveryPageResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CreateTalentInvitationRequest
{
"candidateKey": "string",
"message": "string",
"idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| candidateKey | string | true | none | none | |
| message | string | true | none | none | |
| idempotencyKey | string(uuid) | true | none | none |
TalentInvitationDecisionRequest
{
"decision": "ACCEPT",
"expectedVersion": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| decision | string | true | none | none | |
| expectedVersion | integer(int64) | true | none | none |
枚举值
| 属性 | 值 |
|---|---|
| decision | ACCEPT |
| decision | REJECT |
CompanyTalentInvitationResponse
{
"invitationId": 0,
"jobId": 0,
"jobTitle": "string",
"candidateLabel": "string",
"message": "string",
"status": "PENDING",
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| invitationId | integer(int64) | false | none | none | |
| jobId | integer(int64) | false | none | none | |
| jobTitle | string | false | none | none | |
| candidateLabel | string | false | none | none | |
| message | string | false | none | none | |
| status | string | false | none | none | |
| createdAt | string(date-time) | false | none | none | |
| expiresAt | string(date-time) | false | none | none | |
| decidedAt | string(date-time) | false | none | none | |
| conversationId | integer(int64) | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| status | PENDING |
| status | ACCEPTED |
| status | REJECTED |
| status | EXPIRED |
StudentTalentInvitationResponse
{
"invitationId": 0,
"companyId": 0,
"companyName": "string",
"jobId": 0,
"jobTitle": "string",
"jobCity": "string",
"message": "string",
"status": "PENDING",
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| invitationId | integer(int64) | false | none | none | |
| companyId | integer(int64) | false | none | none | |
| companyName | string | false | none | none | |
| jobId | integer(int64) | false | none | none | |
| jobTitle | string | false | none | none | |
| jobCity | string | false | none | none | |
| message | string | false | none | none | |
| status | string | false | none | none | |
| version | integer(int64) | false | none | none | |
| createdAt | string(date-time) | false | none | none | |
| expiresAt | string(date-time) | false | none | none | |
| decidedAt | string(date-time) | false | none | none | |
| conversationId | integer(int64) | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| status | PENDING |
| status | ACCEPTED |
| status | REJECTED |
| status | EXPIRED |
TalentInvitationPageResponseCompanyTalentInvitationResponse
{
"items": [
{
"invitationId": 0,
"jobId": 0,
"jobTitle": "string",
"candidateLabel": "string",
"message": "string",
"status": "PENDING",
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [CompanyTalentInvitationResponse] | false | none | none | |
| total | integer(int64) | false | none | none | |
| page | integer(int32) | false | none | none | |
| size | integer(int32) | false | none | none | |
| totalPages | integer(int32) | false | none | none |
TalentInvitationPageResponseStudentTalentInvitationResponse
{
"items": [
{
"invitationId": 0,
"companyId": 0,
"companyName": "string",
"jobId": 0,
"jobTitle": "string",
"jobCity": "string",
"message": "string",
"status": "PENDING",
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [StudentTalentInvitationResponse] | false | none | none | |
| total | integer(int64) | false | none | none | |
| page | integer(int32) | false | none | none | |
| size | integer(int32) | false | none | none | |
| totalPages | integer(int32) | false | none | none |
ApiResponseCompanyTalentInvitationResponse
{
"code": 0,
"message": "string",
"data": {
"invitationId": 0,
"jobId": 0,
"jobTitle": "string",
"candidateLabel": "string",
"message": "string",
"status": "PENDING",
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | CompanyTalentInvitationResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseStudentTalentInvitationResponse
{
"code": 0,
"message": "string",
"data": {
"invitationId": 0,
"companyId": 0,
"companyName": "string",
"jobId": 0,
"jobTitle": "string",
"jobCity": "string",
"message": "string",
"status": "PENDING",
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | StudentTalentInvitationResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseCompanyTalentInvitationPageResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"invitationId": 0,
"jobId": 0,
"jobTitle": "string",
"candidateLabel": "string",
"message": "string",
"status": "PENDING",
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | TalentInvitationPageResponseCompanyTalentInvitationResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseStudentTalentInvitationPageResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"invitationId": 0,
"companyId": 0,
"companyName": "string",
"jobId": 0,
"jobTitle": "string",
"jobCity": "string",
"message": "string",
"status": "PENDING",
"version": 0,
"createdAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z",
"conversationId": 0
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | TalentInvitationPageResponseStudentTalentInvitationResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
FairnessResponseDistribution
{
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| sampleSize | integer | false | none | none | |
| mean | number | false | none | none | |
| median | number | false | none | none | |
| p10 | number | false | none | none | |
| p25 | number | false | none | none | |
| p75 | number | false | none | none | |
| p90 | number | false | none | none | |
| min | number | false | none | none | |
| max | number | false | none | none | |
| standardDeviation | number | false | none | none | |
| buckets | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| concentrationRate | number | false | none | none | |
| riskLevel | string | false | none | none | |
| availability | string | false | none | none | |
| reason | string | false | none | none |
FairnessResponseDimensionMetric
{
"dimension": "string",
"populationSize": 0,
"rowCount": 0,
"missingRowCount": 0,
"validSampleSize": 0,
"confidence": "string",
"missingRowRate": 0,
"nullScoreRate": 0,
"validCoverage": 0,
"statusCounts": {
"property1": 0,
"property2": 0
},
"versionCounts": {
"property1": 0,
"property2": 0
},
"inconsistentRecordCount": 0,
"unknownStatusCount": 0,
"outOfRangeScoreCount": 0,
"unknownRulesVersionCount": 0,
"distribution": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"distributionsByRulesVersion": {
"property1": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"property2": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
}
},
"availability": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| dimension | string | false | none | none | |
| populationSize | integer | false | none | none | |
| rowCount | integer | false | none | none | |
| missingRowCount | integer | false | none | none | |
| validSampleSize | integer | false | none | none | |
| confidence | string | false | none | none | |
| missingRowRate | number | false | none | none | |
| nullScoreRate | number | false | none | none | |
| validCoverage | number | false | none | none | |
| statusCounts | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| versionCounts | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| inconsistentRecordCount | integer | false | none | none | |
| unknownStatusCount | integer | false | none | none | |
| outOfRangeScoreCount | integer | false | none | none | |
| unknownRulesVersionCount | integer | false | none | none | |
| distribution | FairnessResponseDistribution | false | none | none | |
| distributionsByRulesVersion | object | false | none | none | |
| » additionalProperties | FairnessResponseDistribution | false | none | none | |
| availability | string | false | none | none | |
| reason | string | false | none | none |
FairnessResponseOverview
{
"basis": "string",
"scope": "string",
"period": "string",
"capturedAt": "2019-08-24T14:15:22Z",
"populationSize": 0,
"computableSnapshotRatio": 0,
"confidence": "string",
"riskLevel": "string",
"versionCounts": {
"property1": 0,
"property2": 0
},
"mixedVersionCount": 0,
"unknownVersionCount": 0,
"distribution": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"distributionsByRulesVersion": {
"property1": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"property2": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
}
},
"coherentVersionSubset": [
"string"
],
"availability": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| basis | string | false | none | none | |
| scope | string | false | none | none | |
| period | string | false | none | none | |
| capturedAt | string(date-time) | false | none | none | |
| populationSize | integer | false | none | none | |
| computableSnapshotRatio | number | false | none | none | |
| confidence | string | false | none | none | |
| riskLevel | string | false | none | none | |
| versionCounts | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| mixedVersionCount | integer | false | none | none | |
| unknownVersionCount | integer | false | none | none | |
| distribution | FairnessResponseDistribution | false | none | none | |
| distributionsByRulesVersion | object | false | none | none | |
| » additionalProperties | FairnessResponseDistribution | false | none | none | |
| coherentVersionSubset | [string] | false | none | none | |
| availability | string | false | none | none | |
| reason | string | false | none | none |
FairnessResponseDimensions
{
"basis": "string",
"scope": "string",
"period": "string",
"capturedAt": "2019-08-24T14:15:22Z",
"dimensions": [
{
"dimension": "string",
"populationSize": 0,
"rowCount": 0,
"missingRowCount": 0,
"validSampleSize": 0,
"confidence": "string",
"missingRowRate": 0,
"nullScoreRate": 0,
"validCoverage": 0,
"statusCounts": {
"property1": 0,
"property2": 0
},
"versionCounts": {
"property1": 0,
"property2": 0
},
"inconsistentRecordCount": 0,
"unknownStatusCount": 0,
"outOfRangeScoreCount": 0,
"unknownRulesVersionCount": 0,
"distribution": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"distributionsByRulesVersion": {
"property1": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"property2": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
}
},
"availability": "string",
"reason": "string"
}
],
"availability": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| basis | string | false | none | none | |
| scope | string | false | none | none | |
| period | string | false | none | none | |
| capturedAt | string(date-time) | false | none | none | |
| dimensions | [FairnessResponseDimensionMetric] | false | none | none | |
| availability | string | false | none | none | |
| reason | string | false | none | none |
FairnessResponseUnavailable
{
"availability": "UNAVAILABLE",
"reason": "string",
"capturedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| availability | string | false | none | none | |
| reason | string | false | none | none | |
| capturedAt | string(date-time) | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| availability | UNAVAILABLE |
FairnessResponseAppeals
{
"basis": "string",
"from": "2019-08-24",
"to": "2019-08-24",
"capturedAt": "2019-08-24T14:15:22Z",
"appealCount": 0,
"sampleSize": 0,
"statusCounts": {
"property1": 0,
"property2": 0
},
"statusEventCounts": {
"property1": 0,
"property2": 0
},
"statusCandidateCounts": {
"property1": 0,
"property2": 0
},
"confidence": "string",
"approvedEverCount": 0,
"approvalRate": 0,
"rollbackExecutionRate": 0,
"duplicateAppealCount": 0,
"duplicateAppealRate": 0,
"comparableRollbackCount": 0,
"comparableRollbackCandidateCount": 0,
"changedCount": 0,
"changedCandidateCount": 0,
"actualScoreChangeRate": 0,
"meanDelta": 0,
"meanAbsoluteDelta": 0,
"duplicateRollbackHistoryCount": 0,
"invalidScoreRollbackCount": 0,
"ruleVersionChangedRollbackCount": 0,
"reasonCounts": {
"property1": 0,
"property2": 0
},
"availability": "string",
"reason": "string",
"exposureAppealRateAvailability": "string",
"exposureAppealRateReason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| basis | string | false | none | none | |
| from | string(date) | false | none | none | |
| to | string(date) | false | none | none | |
| capturedAt | string(date-time) | false | none | none | |
| appealCount | integer | false | none | 申诉事件数;与按独立候选人数统计的其他字段区分 | |
| sampleSize | integer | false | none | none | |
| statusCounts | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| statusEventCounts | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| statusCandidateCounts | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| confidence | string | false | none | none | |
| approvedEverCount | integer | false | none | none | |
| approvalRate | number | false | none | none | |
| rollbackExecutionRate | number | false | none | none | |
| duplicateAppealCount | integer | false | none | none | |
| duplicateAppealRate | number | false | none | none | |
| comparableRollbackCount | integer | false | none | 可比 ROLLBACK 历史行数;仅唯一历史且分数/规则版本合法的申诉 | |
| comparableRollbackCandidateCount | integer | false | none | 可比回滚历史对应的独立候选人数;同一候选人的多份合法申诉只计一人 | |
| changedCount | integer | false | none | none | |
| changedCandidateCount | integer | false | none | none | |
| actualScoreChangeRate | number | false | none | none | |
| meanDelta | number | false | none | none | |
| meanAbsoluteDelta | number | false | none | none | |
| duplicateRollbackHistoryCount | integer | false | none | none | |
| invalidScoreRollbackCount | integer | false | none | none | |
| ruleVersionChangedRollbackCount | integer | false | none | none | |
| reasonCounts | object | false | none | none | |
| » additionalProperties | integer | false | none | none | |
| availability | string | false | none | none | |
| reason | string | false | none | none | |
| exposureAppealRateAvailability | string | false | none | none | |
| exposureAppealRateReason | string | false | none | none |
ApiResponseFairnessResponseOverview
{
"code": 0,
"message": "string",
"data": {
"basis": "string",
"scope": "string",
"period": "string",
"capturedAt": "2019-08-24T14:15:22Z",
"populationSize": 0,
"computableSnapshotRatio": 0,
"confidence": "string",
"riskLevel": "string",
"versionCounts": {
"property1": 0,
"property2": 0
},
"mixedVersionCount": 0,
"unknownVersionCount": 0,
"distribution": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"distributionsByRulesVersion": {
"property1": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"property2": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {
"property1": 0,
"property2": 0
},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
}
},
"coherentVersionSubset": [
"string"
],
"availability": "string",
"reason": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | FairnessResponseOverview | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseFairnessResponseDimensions
{
"code": 0,
"message": "string",
"data": {
"basis": "string",
"scope": "string",
"period": "string",
"capturedAt": "2019-08-24T14:15:22Z",
"dimensions": [
{
"dimension": "string",
"populationSize": 0,
"rowCount": 0,
"missingRowCount": 0,
"validSampleSize": 0,
"confidence": "string",
"missingRowRate": 0,
"nullScoreRate": 0,
"validCoverage": 0,
"statusCounts": {
"property1": 0,
"property2": 0
},
"versionCounts": {
"property1": 0,
"property2": 0
},
"inconsistentRecordCount": 0,
"unknownStatusCount": 0,
"outOfRangeScoreCount": 0,
"unknownRulesVersionCount": 0,
"distribution": {
"sampleSize": 0,
"mean": 0,
"median": 0,
"p10": 0,
"p25": 0,
"p75": 0,
"p90": 0,
"min": 0,
"max": 0,
"standardDeviation": 0,
"buckets": {},
"concentrationRate": 0,
"riskLevel": "string",
"availability": "string",
"reason": "string"
},
"distributionsByRulesVersion": {
"property1": {
"sampleSize": null,
"mean": null,
"median": null,
"p10": null,
"p25": null,
"p75": null,
"p90": null,
"min": null,
"max": null,
"standardDeviation": null,
"buckets": null,
"concentrationRate": null,
"riskLevel": null,
"availability": null,
"reason": null
},
"property2": {
"sampleSize": null,
"mean": null,
"median": null,
"p10": null,
"p25": null,
"p75": null,
"p90": null,
"min": null,
"max": null,
"standardDeviation": null,
"buckets": null,
"concentrationRate": null,
"riskLevel": null,
"availability": null,
"reason": null
}
},
"availability": "string",
"reason": "string"
}
],
"availability": "string",
"reason": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | FairnessResponseDimensions | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseFairnessResponseUnavailable
{
"code": 0,
"message": "string",
"data": {
"availability": "UNAVAILABLE",
"reason": "string",
"capturedAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | FairnessResponseUnavailable | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseFairnessResponseAppeals
{
"code": 0,
"message": "string",
"data": {
"basis": "string",
"from": "2019-08-24",
"to": "2019-08-24",
"capturedAt": "2019-08-24T14:15:22Z",
"appealCount": 0,
"sampleSize": 0,
"statusCounts": {
"property1": 0,
"property2": 0
},
"statusEventCounts": {
"property1": 0,
"property2": 0
},
"statusCandidateCounts": {
"property1": 0,
"property2": 0
},
"confidence": "string",
"approvedEverCount": 0,
"approvalRate": 0,
"rollbackExecutionRate": 0,
"duplicateAppealCount": 0,
"duplicateAppealRate": 0,
"comparableRollbackCount": 0,
"comparableRollbackCandidateCount": 0,
"changedCount": 0,
"changedCandidateCount": 0,
"actualScoreChangeRate": 0,
"meanDelta": 0,
"meanAbsoluteDelta": 0,
"duplicateRollbackHistoryCount": 0,
"invalidScoreRollbackCount": 0,
"ruleVersionChangedRollbackCount": 0,
"reasonCounts": {
"property1": 0,
"property2": 0
},
"availability": "string",
"reason": "string",
"exposureAppealRateAvailability": "string",
"exposureAppealRateReason": "string"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | FairnessResponseAppeals | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
StudentProfileResponse
{
"id": 0,
"userId": 0,
"realName": "string",
"bio": "string",
"location": "string",
"education": "string",
"school": "string",
"graduationYear": 0,
"resumeUrl": "string",
"skills": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| userId | integer(int64) | false | none | none | |
| realName | string | false | none | none | |
| bio | string | false | none | none | |
| location | string | false | none | none | |
| education | string | false | none | none | |
| school | string | false | none | none | |
| graduationYear | integer(int32) | false | none | none | |
| resumeUrl | string | false | none | none | |
| skills | string | false | none | none | |
| createdAt | string(date-time) | false | none | none |
CandidateScoringCoverage
{
"computableDimensions": 0,
"totalDimensions": 0,
"includedDimensions": [
"string"
],
"excludedDimensions": [
{
"dimension": "string",
"status": "string",
"reason": "string"
}
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| computableDimensions | integer(int32) | false | none | none | |
| totalDimensions | integer(int32) | false | none | none | |
| includedDimensions | [string] | false | none | none | |
| excludedDimensions | [CandidateScoringExcludedDimension] | false | none | none |
CreateDataExportRequest
{
"format": "string",
"idempotencyKey": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| format | string | false | none | none | |
| idempotencyKey | string | false | none | none |
CandidateScoringExcludedDimension
{
"dimension": "string",
"status": "string",
"reason": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| dimension | string | false | none | none | |
| status | string | false | none | none | |
| reason | string | false | none | none |
CandidateScoringRuleContribution
{
"ruleCode": "string",
"outcome": "APPLIED",
"contribution": 0,
"maxContribution": 0,
"label": "string",
"observation": "string",
"explanation": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| ruleCode | string | false | none | none | |
| outcome | string | false | none | none | |
| contribution | number¦null | false | none | none | |
| maxContribution | number¦null | false | none | none | |
| label | string | false | none | none | |
| observation | string | false | none | none | |
| explanation | string | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| outcome | APPLIED |
| outcome | NOT_APPLIED |
| outcome | MISSING |
| outcome | EXPIRED |
| outcome | UNAVAILABLE |
ApiResponseStudentProfileResponse
{
"code": 0,
"message": "string",
"data": {
"id": 0,
"userId": 0,
"realName": "string",
"bio": "string",
"location": "string",
"education": "string",
"school": "string",
"graduationYear": 0,
"resumeUrl": "string",
"skills": "string",
"createdAt": "2019-08-24T14:15:22Z"
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | StudentProfileResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CandidateScoringValidity
{
"completedAt": "2019-08-24T14:15:22Z",
"validUntil": "2019-08-24T14:15:22Z",
"expired": true
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| completedAt | string(date-time) | false | none | none | |
| validUntil | string(date-time) | false | none | none | |
| expired | boolean | false | none | none |
ApiResponsePageResponseDataExportTaskResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"taskId": 0,
"status": "string",
"format": "string",
"requestedAt": "2019-08-24T14:15:22Z",
"startedAt": "2019-08-24T14:15:22Z",
"completedAt": "2019-08-24T14:15:22Z",
"expiresAt": "2019-08-24T14:15:22Z",
"sizeBytes": 0,
"downloadAvailable": true,
"errorCode": "string"
}
],
"totalElements": 0,
"page": 0,
"size": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none | |
| » items | [DataExportTaskResponse] | false | none | none | |
| » totalElements | integer(int64) | false | none | none | |
| » page | integer(int32) | false | none | none | |
| » size | integer(int32) | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
MessageResponse
{
"id": 0,
"conversationId": 0,
"senderUserId": 0,
"senderScope": "string",
"content": "string",
"status": "SENT",
"recalledAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"isRead": true
}
脱敏消息响应;TALENT_INVITATION 使用 senderScope 而非 senderUserId
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| conversationId | integer(int64) | false | none | none | |
| senderUserId | integer(int64) | false | none | none | |
| senderScope | string | false | none | none | |
| content | string | false | none | none | |
| status | string | false | none | none | |
| recalledAt | string(date-time) | false | none | none | |
| createdAt | string(date-time) | false | none | none | |
| isRead | boolean | false | none | none |
枚举值
| 属性 | 值 |
|---|---|
| status | SENT |
| status | RECALLED |
MessagePageResponse
{
"items": [
{
"id": 0,
"conversationId": 0,
"senderUserId": 0,
"senderScope": "string",
"content": "string",
"status": "SENT",
"recalledAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"isRead": true
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
}
脱敏消息分页响应
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| items | [MessageResponse] | false | none | [脱敏消息响应;TALENT_INVITATION 使用 senderScope 而非 senderUserId] | |
| total | integer(int64) | false | none | none | |
| page | integer(int32) | false | none | none | |
| size | integer(int32) | false | none | none | |
| totalPages | integer(int32) | false | none | none |
ApiResponseMessagePageResponse
{
"code": 0,
"message": "string",
"data": {
"items": [
{
"id": 0,
"conversationId": 0,
"senderUserId": 0,
"senderScope": "string",
"content": "string",
"status": "SENT",
"recalledAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"isRead": true
}
],
"total": 0,
"page": 0,
"size": 0,
"totalPages": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | MessagePageResponse | false | none | 脱敏消息分页响应 | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
ApiResponseMessageResponse
{
"code": 0,
"message": "string",
"data": {
"id": 0,
"conversationId": 0,
"senderUserId": 0,
"senderScope": "string",
"content": "string",
"status": "SENT",
"recalledAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"isRead": true
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | MessageResponse | false | none | 脱敏消息响应;TALENT_INVITATION 使用 senderScope 而非 senderUserId | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
RefreshTokenRequest
{
"refreshToken": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| refreshToken | string | true | none | none |
TokenPairResponse
{
"accessToken": "string",
"refreshToken": "string",
"expiresIn": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| accessToken | string | false | none | none | |
| refreshToken | string | false | none | none | |
| expiresIn | integer(int64) | false | none | none |
ApiResponseTokenPairResponse
{
"code": 0,
"message": "string",
"data": {
"accessToken": "string",
"refreshToken": "string",
"expiresIn": 0
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | TokenPairResponse | false | none | none |
PasswordSetRequest
{
"smsCode": "string",
"newPassword": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| smsCode | string | true | none | none | |
| newPassword | string | true | none | none |
PasswordResetRequest
{
"phone": "string",
"smsCode": "string",
"newPassword": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| phone | string | true | none | none | |
| smsCode | string | true | none | none | |
| newPassword | string | true | none | none |
PasswordLoginRequest
{
"phone": "string",
"password": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| phone | string | true | none | none | |
| password | string | true | none | none |
PasswordChangeRequest
{
"currentPassword": "string",
"newPassword": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| currentPassword | string | true | none | none | |
| newPassword | string | true | none | none |
PasswordOperationResponse
{
"passwordConfigured": true,
"reauthenticationRequired": true
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| passwordConfigured | boolean | false | none | none | |
| reauthenticationRequired | boolean | false | none | none |
ApiResponsePasswordOperationResponse
{
"code": 0,
"message": "string",
"data": {
"passwordConfigured": true,
"reauthenticationRequired": true
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | PasswordOperationResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CompanyDetails
{
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| name | string | true | none | none | |
| logoUrl | string | false | none | none | |
| description | string | false | none | none | |
| industry | string | false | none | none | |
| website | string | false | none | none | |
| address | string | false | none | none |
CompanyRegistrationRequest
{
"phone": "string",
"code": "string",
"password": "stringstring",
"company": {
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string"
}
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| phone | string | true | none | none | |
| code | string | true | none | none | |
| password | string | true | none | none | |
| company | CompanyDetails | true | none | none |
ApiResponseCompanyRegistrationResponse
{
"code": 0,
"message": "string",
"data": {
"userId": 0,
"companyId": 0,
"role": "string",
"onboardingStatus": "string",
"accessToken": "string",
"refreshToken": "string",
"expiresIn": 0
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CompanyRegistrationResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CompanyRegistrationResponse
{
"userId": 0,
"companyId": 0,
"role": "string",
"onboardingStatus": "string",
"accessToken": "string",
"refreshToken": "string",
"expiresIn": 0
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| userId | integer(int64) | false | none | none | |
| companyId | integer(int64) | false | none | none | |
| role | string | false | none | none | |
| onboardingStatus | string | false | none | none | |
| accessToken | string | false | none | none | |
| refreshToken | string | false | none | none | |
| expiresIn | integer(int64) | false | none | none |
ApiResponseCompanyOnboardingResponse
{
"code": 0,
"message": "string",
"data": {
"company": {
"id": 0,
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string",
"verified": true
},
"onboardingStatus": "string",
"latestVerification": {
"id": 0,
"status": "string",
"submittedAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z"
},
"missingFields": [
"string"
],
"allowedActions": [
"string"
]
},
"requestId": "string",
"timestamp": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| code | integer(int32) | false | none | none | |
| message | string | false | none | none | |
| data | CompanyOnboardingResponse | false | none | none | |
| requestId | string | false | none | none | |
| timestamp | string(date-time) | false | none | none |
CompanyOnboardingResponse
{
"company": {
"id": 0,
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string",
"verified": true
},
"onboardingStatus": "string",
"latestVerification": {
"id": 0,
"status": "string",
"submittedAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z"
},
"missingFields": [
"string"
],
"allowedActions": [
"string"
]
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| company | CompanySummary | false | none | none | |
| onboardingStatus | string | false | none | none | |
| latestVerification | VerificationSummary | false | none | none | |
| missingFields | [string] | false | none | none | |
| allowedActions | [string] | false | none | none |
CompanySummary
{
"id": 0,
"name": "string",
"logoUrl": "string",
"description": "string",
"industry": "string",
"website": "string",
"address": "string",
"verified": true
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| name | string | false | none | none | |
| logoUrl | string | false | none | none | |
| description | string | false | none | none | |
| industry | string | false | none | none | |
| website | string | false | none | none | |
| address | string | false | none | none | |
| verified | boolean | false | none | none |
VerificationSummary
{
"id": 0,
"status": "string",
"submittedAt": "2019-08-24T14:15:22Z",
"decidedAt": "2019-08-24T14:15:22Z"
}
属性
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|---|---|---|---|---|---|
| id | integer(int64) | false | none | none | |
| status | string | false | none | none | |
| submittedAt | string(date-time) | false | none | none | |
| decidedAt | string(date-time) | false | none | none |