Files
edu-industry/admin-tools/demo/schemas/external-job-source.schema.json
T
lofyerandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 92515928d9 feat: add edu-industry platform demos
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-24 11:19:43 +08:00

267 lines
7.6 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.edu-industry.cn/job-signal/3.0.0/schema.json",
"title": "JOB-SIGNAL V3.0 外部招聘岗位信号",
"description": "商业招聘平台、公共就业平台与招聘活动平台统一岗位信号契约。",
"type": "object",
"additionalProperties": false,
"required": [
"record_id",
"source_platform",
"source_record_id",
"source_url",
"collector_task_id",
"collector_version",
"raw_snapshot_id",
"collected_at",
"first_seen_at",
"last_seen_at",
"status",
"job_title_raw",
"job_description",
"enterprise_name",
"region_code",
"employment_type",
"source_payload_hash",
"content_hash",
"data_version"
],
"properties": {
"record_id": {
"type": "string",
"format": "uuid",
"description": "平台生成的全局唯一记录标识。"
},
"source_platform": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]{1,31}$",
"description": "来源平台代码,例如 BOSS、ZHAOPIN、BRZP、NCSS、MOHRSS。"
},
"source_record_id": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"description": "来源平台内的记录标识,与 source_platform 组成幂等键。"
},
"source_url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "可回溯的来源页面或接口定位。"
},
"collector_task_id": {
"type": "string",
"pattern": "^JOB-[A-Za-z0-9-]{8,64}$",
"description": "生产采集任务追踪编号。"
},
"collector_version": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"description": "采集器名称、语义版本与代码提交摘要。"
},
"raw_snapshot_id": {
"type": "string",
"pattern": "^RAW-[A-Za-z0-9-]{8,96}$",
"description": "原始响应或页面快照编号。"
},
"collected_at": {
"type": "string",
"format": "date-time",
"description": "平台实际采集时间,必须包含时区。"
},
"first_seen_at": {
"type": "string",
"format": "date-time",
"description": "平台首次发现该岗位的时间。"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"description": "平台最近一次确认该岗位仍存在的时间。"
},
"published_at": {
"type": ["string", "null"],
"format": "date-time",
"description": "来源平台显示的岗位发布时间。"
},
"status": {
"type": "string",
"enum": ["active", "inactive", "expired", "unknown"],
"description": "岗位在当前数据版本中的状态。"
},
"job_title_raw": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "来源岗位名称原文。"
},
"job_title_normalized": {
"type": ["string", "null"],
"maxLength": 200,
"description": "映射到统一岗位词典后的标准名称。"
},
"job_code": {
"type": ["string", "null"],
"pattern": "^[A-Z0-9.-]{2,32}$",
"description": "统一岗位分类代码。"
},
"job_description": {
"type": "string",
"minLength": 1,
"maxLength": 30000,
"description": "去除展示标记与联系方式后的岗位职责和要求文本。"
},
"enterprise_name": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "来源企业名称原文。"
},
"enterprise_id": {
"type": ["string", "null"],
"maxLength": 128,
"description": "平台企业归一标识。"
},
"enterprise_credit_code": {
"type": ["string", "null"],
"pattern": "^[0-9A-Z]{18}$",
"description": "可公开确认时使用的统一社会信用代码。"
},
"enterprise_industry_code": {
"type": ["string", "null"],
"maxLength": 32,
"description": "企业所属行业代码。"
},
"enterprise_scale": {
"type": ["string", "null"],
"enum": ["micro", "small", "medium", "large", "unknown", null],
"description": "统一企业规模分组。"
},
"region_code": {
"type": "string",
"pattern": "^[0-9]{6}$",
"description": "GB/T 2260 六位行政区划代码。"
},
"workplace": {
"type": ["string", "null"],
"maxLength": 500,
"description": "来源工作地点文本。"
},
"employment_type": {
"type": "string",
"enum": ["full_time", "internship", "part_time", "contract", "campus", "other"],
"description": "统一用工或招聘类型。"
},
"recruitment_count": {
"type": ["integer", "null"],
"minimum": 0,
"maximum": 1000000,
"description": "明确披露时记录计划招聘人数。"
},
"education_level": {
"type": ["string", "null"],
"enum": ["none", "secondary", "vocational", "associate", "bachelor", "master", "doctor", "unknown", null],
"description": "最低学历要求。"
},
"experience_min_years": {
"type": ["number", "null"],
"minimum": 0,
"maximum": 60,
"description": "最低工作经验年限。"
},
"salary_min": {
"type": ["number", "null"],
"minimum": 0,
"maximum": 10000000,
"description": "统一折算后的税前月薪下限,单位为 salary_currency。"
},
"salary_max": {
"type": ["number", "null"],
"minimum": 0,
"maximum": 10000000,
"description": "统一折算后的税前月薪上限。"
},
"salary_currency": {
"type": ["string", "null"],
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 币种代码,境内岗位通常为 CNY。"
},
"salary_period": {
"type": ["string", "null"],
"enum": ["month", "year", "day", "hour", "negotiable", "unknown", null],
"description": "来源薪资周期,统一月薪字段与原始周期同时保留。"
},
"benefits": {
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"maxLength": 100
},
"uniqueItems": true,
"description": "福利标签。"
},
"skills": {
"type": "array",
"maxItems": 200,
"items": {
"type": "string",
"maxLength": 100
},
"uniqueItems": true,
"description": "基于技能词典提取并归一的技能标签。"
},
"keywords": {
"type": "array",
"maxItems": 200,
"items": {
"type": "string",
"maxLength": 100
},
"uniqueItems": true,
"description": "用于检索的业务关键词。"
},
"source_payload_hash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "原始响应载荷 SHA-256。"
},
"content_hash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "规范化业务内容 SHA-256,用于内容去重。"
},
"parsing_version": {
"type": ["string", "null"],
"maxLength": 128,
"description": "解析规则版本。"
},
"normalized_at": {
"type": ["string", "null"],
"format": "date-time",
"description": "岗位和技能归一完成时间。"
},
"data_version": {
"type": "string",
"pattern": "^V[0-9]{4}\\.[0-9]{2}\\.[0-9]{2}(?:\\.[0-9]+)?$",
"description": "进入分析层的数据版本。"
}
},
"allOf": [
{
"if": {
"required": ["salary_min", "salary_max"]
},
"then": {
"properties": {
"salary_max": {
"type": "number",
"minimum": 0
}
}
}
}
]
}