API Docs
ingest-jobs 接口文档
api/ingest-jobs.md
문서 목록

ingest-jobs 接口文档

用于将外部岗位数据写入最新岗位模型:

  • job_posts
  • job_post_contents
  • job_post_contacts(电话/邮箱,独立私有存储)
  • job_post_compensations
  • job_post_requirements
  • job_post_locations
  • job_post_work_types / job_post_visas / job_post_benefits / job_post_tags / job_post_shifts / job_post_boards

1. 接口信息

  • 方法: POST
  • 地址: /functions/v1/ingest-jobs
  • 鉴权: HMAC 签名(verify_jwt = false)
  • 时间容忍: 5 分钟(x-timestamp 与服务端当前时间差)

2. 请求头

Header必填说明
content-type是固定 application/json
x-timestamp是Unix 毫秒时间戳(字符串)
x-signature是base64url(HMAC_SHA256(secret, "${x-timestamp}.${rawBody}"))

3. 请求体格式

支持以下 3 种:

  • { "jobs": [ ... ] }
  • [ ... ]
  • 单个 job 对象 { ... }

4. Job 字段说明

先看 6 条关键规则:

  1. 幂等键是 source_channel + external_ref。
    同一组合重复推送会更新同一条岗位;如果不传 external_ref,系统自动生成,可能导致重复岗位。

  2. title、description、region_code、salary_min、salary_type_code、work_type_codes、occupation_codes、contact_phone/contact_email(二选一) 是核心字段。
    这些不满足会被判为 invalid。

  3. 所有 *_code 都必须能在 taxonomy 中查到。
    比如 region_code 必须存在于 region 分类。

  4. 不再兼容旧字段。
    传入 visa_types/benefits/tags/korean_req/salary_display/salary_type/work_type 会直接返回错误。

  5. description 与 duties 不会被接口自动拆分、合并或去重。
    description 原样写入 job_post_contents.description_i18n,duties 原样写入 job_post_contents.duties_i18n;若两者都传且内容重复,系统也会按两个字段分别保存。

  6. 联系方式会独立私有存储。
    contact_phone/contact_email 会写入 job_post_contacts(不在 job_post_contents 持久化);前端“立即联系”应按需调用 get_job_post_contact 获取。

4.1 国际化多语言(14 国语言)支持规范

平台原生支持在韩外籍劳工主要群体的 13 种外籍语言 + 韩语本土语(共 14 种语言):

语言代码 (locale)语言中文名称原生/国际名称适用群体与说明
zh简体中文中文 (简体)韩国114 默认主语言,在韩华侨华人、中国朝鲜族主要使用
ko韩语한국어韩国本土招聘源语言,雇主原文与招聘审核标准
en英语EnglishKorean114 国际默认语言,通用国际沟通与高新技术人才
vi越南语Tiếng Việt韩国最大外籍劳工社群之一,制造业与农渔业核心
th泰语ไทย泰国劳工群体,制造业、农牧业重要语种
uz乌兹别克语O'zbekcha乌兹别克斯坦劳工,中亚独联体制造/技术岗位常用
ru俄语Русский独联体国家(乌兹别克、哈萨克等)外籍人员及高丽人常用
ne尼泊尔语नेपाली尼泊尔在韩 EPS 制造与农业外劳
id印尼语Bahasa Indonesia印尼外籍劳工,造船、制造及渔业广泛使用
mn蒙古语Монгол хэл蒙古在韩务工人员主要语种
my缅甸语မြန်မာစာ缅甸在韩外籍劳工重要语种
km高棉语 / 柬埔寨语ភាសាខ្មែរ柬埔寨在韩农工群体主要语种
si僧伽罗语 / 斯里兰卡语සිංහල斯里兰卡在韩 EPS 劳工重要语种
tl菲律宾塔加洛语Tagalog菲律宾在韩家政、制造及服务业劳工常用

多语言字段灵活入参规范(3 种模式)

多语言字段(company_name、title、summary、description、duties、working_hours、location_note、contact_note、requirement_notes)支持以下 3 种灵活传入模式:

  1. 模式一:全量多语言对象(最高推荐)
    爬虫或 AI 翻译服务直接提供 14 国语言键值对:

    "title": {
      "ko": "전자부품 조립·검사 사원",
      "zh": "电子零件装配/质检作业员",
      "en": "Electronic Component Assembly / Quality Inspector",
      "vi": "Công nhân lắp ráp / kiểm tra linh kiện điện tử",
      "th": "พนักงานประกอบ/ตรวจสอบชิ้นส่วนอิเล็กทรอนิกส์",
      "uz": "Elektron qismlarni yig'ish / sifat nazoratchisi",
      "ru": "Сборщик/контролер электронных компонентов",
      "ne": "इलेक्ट्रोनिक कम्पोनेन्ट एसेम्बली / गुणस्तर निरीक्षक",
      "id": "Operator Perakitan Komponen Elektronik / Pemeriksaan Kualitas",
      "mn": "Электрон эд анги угсрагч / чанарын байцаагч",
      "my": "အီလက်ထရွန်းနစ် အစိတ်အပိုင်း တပ်ဆင်သူ",
      "km": "បុគ្គលិកដំឡើង / ត្រួតពិនិត្យគុណភាពគ្រឿងបន្លាស់",
      "si": "ඉලෙක්ට්‍රොනික උපාංග එකලස් කිරීම / තත්ත්ව පරීක්ෂක",
      "tl": "Electronic Component Assembly / Quality Inspector"
    }

    优势:客户端切换任意语言均零延迟呈现纯正母语,体验最佳。

  2. 模式二:部分语言对象(智能自动回填兜底)
    若仅采集到韩文原文或中韩双语(例如 {"ko": "...", "zh": "..."}),接口会自动存储已提供的语言。
    对于核心展示字段 title,服务端会自动提取首个非空语言文本,回填至缺失的语言键(包括底层数据库强约束要求的 zh, ko, vi, ru,以及全量 14 种语言)。确保任意语言的客户端用户访问时均有清晰标题,不会出现空标题。

  3. 模式三:直接传纯文本字符串(智能语种识别 + 兜底)
    支持直接传入单字符串(如 "안산 전자부품 조립 사원" 或 "安山汽车电子厂装配工")。服务端内置轻量智能语种识别:

    • 含有韩文字符(Hangul):自动识别归属为 ko(韩语本土源);
    • 含有汉字字符(CJK):自动识别归属为 zh(简体中文);
    • 其他西文字符:自动归属为 en 并兼顾 zh;
    • 对必填 title 字段同样会自动回填至 14 种语言及底层校验键。

4.2 字段属性与说明表

字段类型必填示例备注(更清晰)
external_refstring否(可不传)api-ansan-assembly-20260308-day-001可不传,接口会自动生成。若你希望“同一岗位更新而不是新增”,建议传稳定值。
source_channelstring否api来源渠道。manual=后台人工录入,crawler=爬虫采集,api=第三方推送,seed=初始化/测试数据。默认 crawler。
statusstring否active岗位状态。draft=草稿未发布,active=招聘中,paused=暂停招聘,closed=招聘结束,archived=归档留存。默认 active。
visibilitystring否public可见性。public=公开可见,private=私有不可公开访问,unlisted=不公开曝光(仅特定场景可见)。默认 public。
publisher_typestring否organization发布者类型。organization=企业/机构发布,individual=个人发布。默认 organization。
poster_user_idUUID string条件必填550e8400-e29b-41d4-a716-446655440000当 publisher_type=individual 且 source_channel 不为 seed/crawler 时必填;必须是合法 UUID。
company_namestring / i18n object条件必填{ "ko": "안산 자동차 전자공장(직영)", "zh": "安山汽车电子厂(直招)", "en": "Ansan Auto Electronics Plant (Direct)", ... }当 publisher_type=organization 时必填。支持 14 国语言对象或单语字符串。
organization_slugstring否ansan-auto-electronics-direct组织唯一 slug;不传会根据公司名自动生成。
brand_namestring否Ansan E-Mobility Plant品牌名。
country_codestring否KR国家代码,默认 KR。
original_urlstring否https://www.jobkorea.co.kr/Recruit/GI_Read/12345678原岗位链接(爬虫来源页面或原文地址)。也支持字段别名 source_url 或 url。
titlestring / i18n object是{ "ko": "전자부품 조립·검사 사원(당일 면접 가능)", "zh": "电子零件装配/质检作业员(可当天面试)", "en": "Electronic Component Assembly...", ... }职位标题。支持 14 国语言对象或纯文本。传单语时服务端智能识别语种并自动向 14 种语言回填,确保数据库约束(zh/ko/vi/ru)与各语言端完整展示。推荐直接传 14 语种对象。
summarystring / i18n object否{ "ko": "한국 기업 직영 채용, 기숙사/통근버스 제공", "zh": "韩企直招,提供宿舍与通勤车", "en": "Korean company direct hiring...", ... }摘要文本。支持 14 国语言对象或单语字符串。
descriptionstring / i18n object是{ "ko": "안산 자동차 전자공장 조립라인 포지션...", "zh": "安山汽车电子工厂装配线岗位...", "en": "Assembly line position...", ... }岗位整体描述(背景/工作环境/班次等),必填。支持 14 国语言对象或单语字符串。
dutiesstring / i18n object否{ "ko": "1) SOP에 따라 부품 조립 및 검사...", "zh": "1) 按SOP完成零件装配与初检...", "en": "1) Assemble parts...", ... }岗位职责清单(负责/执行/协同等动作)。建议条目化。支持 14 国语言对象或单语字符串。
working_hoursstring / i18n object否{ "ko": "주간 08:30-17:30 / 야간 20:30-05:30", "zh": "白班 08:30-17:30 / 夜班 20:30-05:30", "en": "Day 08:30-17:30 / Night 20:30-05:30", ... }工作时间说明。支持 14 国语言对象或单语字符串。
location_notestring / i18n object否{ "ko": "안산역 2번 출구 셔틀버스 10분...", "zh": "安山站2号口有班车10分钟直达...", "en": "Shuttle bus from Ansan Station Exit 2...", ... }地点补充说明。支持 14 国语言对象或单语字符串。
contact_phonestring条件必填010-1234-5678联系电话。contact_phone 与 contact_email 至少传一个。
contact_emailstring条件必填hr@example.com联系邮箱。contact_phone 与 contact_email 至少传一个。
contact_notestring / i18n object否{ "ko": "평일 09:00-18:00 전화 문의 가능", "zh": "工作日 09:00-18:00 电话咨询", "en": "Mon-Fri 09:00-18:00 phone support", ... }联系补充说明(联系时段/备注模板)。支持 14 国语言对象或单语字符串。
salary_type_codestring条件必填daily薪资周期 code;值必须存在于 taxonomy salary_type。
salary_minnumber是120000最低薪资,必须 >= 0。
salary_maxnumber否180000最高薪资。传了就必须 >=0 且 >= salary_min。
salary_currencystring否KRW币种,默认 KRW。
salary_display_textstring否日结 12万~18万韩元(夜班/加班津贴另算)仅展示文案,不参与数值计算。
salary_is_negotiableboolean否false是否面议。未传时按 salary_type_code == negotiable 推断。
region_codestring是gyeonggi地区 code,必须存在于 taxonomy region。
address_linestring否경기도 안산시 단원구 원시동 774-3 (안산스마트허브 5공단)详细地址。不传会尝试用 location_note 兜底。
latitudenumber否37.3215纬度,范围 -90 ~ 90。
longitudenumber否126.8302经度,范围 -180 ~ 180。
work_type_codesstring[]条件必填["long_term","daily"]用工方式 code 列表。至少 1 个且全部要在 taxonomy work_type 存在。
visa_codesstring[]否["h2","f4","f2"]签证 code 列表;每个值都要在 taxonomy visa 存在。
benefit_codesstring[]否["food_stay","shuttle","overtime_pay","night_pay","insurance"]福利 code 列表;每个值都要在 taxonomy benefit 存在。
companion_codesstring[] / string否["couple_friend"]同行分类 code 列表(类型为“同行”,如 couple_friend 夫妻/朋友)。推荐按分类对齐传入,亦支持别名 companion。
income_codesstring[] / string否["income_middle"]收入分类 code 列表(类型为“收入”,如 income_basic 基础薪资、income_middle 中等收入、income_high 高等收入)。推荐按分类对齐传入,支持别名 income_tier / income。未传时服务端根据薪资数值自动推导。
tag_codesstring[]否["factory","daily_pay","immediate_start","no_experience"]通用职位标签 code 列表(自由多选);每个值都要在 taxonomy tag 存在。亦兼容在此字段中直接传入 couple_friend 或 income_*。
shift_codesstring[]否["shift_day","shift_night"]班次 code 列表;每个值都要在 taxonomy shift 存在。
board_codesstring[]否["board_meals","board_housing"]食宿 code 列表;每个值都要在 taxonomy board 存在。
occupation_codesstring[]是["factory_assembly","svc_cleaning"]岗位分类 code 列表;至少 1 个且必须在 taxonomy occupation 存在。
korean_req_codestring否lang_basic韩语等级字典 code,参见下方字典映射。
employer_nationalitystring否kr雇主国籍 code,推荐 kr(韩国雇主)、cn(中国雇主),服务端会自动转小写。
education_codestring否high_school学历要求 code;传了就必须在 taxonomy education 存在。
experience_codestring否none经验要求 code;传了就必须在 taxonomy experience 存在。
requirement_notesstring / i18n object否{ "zh": "可接受站班与重复性作业;需提供在韩合法居留证明;无色弱色盲。", "ko": "입식/반복 작업 가능자, 한국 내 합법 체류 증빙 필요, 색약/색맹 불가.", "vi": "Chap nhan lam dung va cong viec lap lai, can chung minh cu tru hop phap, khong mu mau.", "ru": "Готовность к работе стоя и повторяющимся операциям; требуется легальный статус пребывания; без нарушений цветоощущения." }其他要求备注。

description 与 duties 推荐写法:

  • description:写岗位上下文与范围,例如“韩企电子厂两班倒,主要在 SMT 产线作业,需要可长期站立。”
  • duties:写动作型职责,例如“按 SOP 装配、完成首件自检、与线长交接异常。”
  • description 必填;duties 选填。若来源数据无法区分,建议先保证 description 充分,再补充 duties 的动作项。

联系方式安全模型:

  • 入参侧:contact_phone 与 contact_email 二选一必填(可同时传)。
  • 存储侧:电话/邮箱写入 job_post_contacts,与 job_posts 一对一;不在 job_post_contents 中持久化。
  • 读取侧:用户端点击“立即联系”时,调用 RPC get_job_post_contact(p_job_post_id) 按需获取。
  • contact_note 仅用于补充说明(如联系时间、注意事项),不替代电话/邮箱字段。

Taxonomy 依赖字段(字段名 + 备注):

字段名对应 taxonomy 分类(code)备注
region_coderegion必填,单值。用于职位主地点区域。
salary_type_codesalary_type必填,单值。用于薪资结算周期(如 daily/weekly/monthly)。
work_type_codeswork_type必填,多值数组,至少 1 个。用于工作类型(如 daily/part_time)。
visa_codesvisa选填,多值数组。用于可接受签证类型(支持 22 类常见在韩签证)。
benefit_codesbenefit选填,多值数组。用于福利标签。
companion_codestag选填,多值数组。用于同行分类(如夫妻/朋友 couple_friend)。
income_codestag选填,多值数组。用于收入分类(如基础/中等/高等)。未传自动推导。
tag_codestag选填,多值数组。用于通用业务标签。亦兼容直接传入同行或收入标签。
shift_codesshift选填,多值数组。用于工作班次(如白班/夜班/轮班)。
board_codesboard选填,多值数组。用于食宿福利(如包吃/包住)。
occupation_codesoccupation必填,多值数组,至少 1 个。用于岗位分类。
korean_req_codekorean_req选填,单值。用于韩语要求。
employer_nationalityemployer_nationality选填,单值。用于雇主国籍属性(如 kr/cn)。
education_codeeducation选填,单值。用于学历要求。
experience_codeexperience选填,单值。用于经验要求。

补充规则:

  • 上述 code 来自 public.taxonomy_items.code,并按所属 public.taxonomies.code 分类校验。
  • 仅 is_active = true 的 taxonomy item 可用。
  • 传入不存在/已停用 code 会返回 invalid(例如 region_code invalid: xxx)。

13 类 taxonomy 可用 code 与注释(当前):

  • 覆盖字段:region_code、salary_type_code、work_type_codes、visa_codes、benefit_codes、tag_codes、shift_codes、board_codes、occupation_codes、korean_req_code、employer_nationality、education_code、experience_code。
  • 数据来源:supabase/migrations/02_seed_taxonomies.sql(初始化种子)+ 17_job_occupations_and_bundle_update.sql、21_expand_occupation_taxonomy.sql(岗位分类扩充)+ 44_expand_visa_taxonomy_full.sql(签证扩充)+ 48_add_shift_and_board_taxonomies.sql(班次/食宿)+ 50_update_korean_req_taxonomy.sql(韩语要求)+ 52_add_employer_nationality_taxonomy.sql(雇主国籍);运行时仍以数据库中 is_active = true 的 taxonomy_items 为准。

region(地区,字段:region_code)

code中文注释韩文注释越南文注释俄文注释
seoul首尔서울SeoulСеул
busan釜山부산BusanПусан
daegu大邱대구DaeguТэгу
incheon仁川인천IncheonИнчхон
gwangju光州광주GwangjuКванджу
daejeon大田대전DaejeonТэджон
ulsan蔚山울산UlsanУльсан
sejong世宗세종SejongСечжон
gyeonggi京畿경기GyeonggiКёнги
gangwon江原강원GangwonКанвон
chungbuk忠北충북ChungbukЧхунбук
chungnam忠南충남ChungnamЧхуннам
jeonbuk全北전북JeonbukЧонбук
jeonnam全南전남JeonnamЧоннам
gyeongbuk庆北경북GyeongbukКёнбук
gyeongnam庆南경남GyeongnamКённам
jeju济州제주JejuЧеджу

salary_type(薪资类型,字段:salary_type_code)

code中文注释韩文注释越南文注释俄文注释
hourly时薪시급Luong gioПочасовая
daily日薪일급Luong ngayЕжедневная
weekly周薪주급Luong tuanЕженедельная
monthly月薪월급Luong thangЕжемесячная
yearly年薪연봉Luong namГодовая
negotiable面议협의Thuong luongДоговорная

work_type(工作类型,字段:work_type_codes)

code中文注释韩文注释越南文注释俄文注释
long_term长期장기Dai hanДолгосрочная
short_term短期단기Ngan hanКраткосрочная
daily日结일당Luong ngayЕжедневная
part_time兼职아르바이트Ban thoi gianПодработка

visa(签证类型,字段:visa_codes)

code中文注释韩文注释越南文注释俄文注释
kr韩国国籍한국 국적Quốc tịch Hàn QuốcКорейское гражданство
c4C-4 (短期就业)C-4 (단기취업)C-4 (Việc làm ngắn hạn)C-4 (Краткосрочное трудоустройство)
e1E-1 (教授)E-1 (교수)E-1 (Giáo sư)E-1 (Профессор)
e2E-2 (外语指导)E-2 (회화지도)E-2 (Giảng viên ngoại ngữ)E-2 (Преподаватель иностранного языка)
e3E-3 (研究)E-3 (연구)E-3 (Nghiên cứu)E-3 (Исследования)
e4E-4 (技术指导)E-4 (기술지도)E-4 (Chuyển giao công nghệ)E-4 (Передача технологий)
e5E-5 (专门职业)E-5 (전문직업)E-5 (Chuyên gia)E-5 (Профессионал)
e6E-6 (艺术演艺)E-6 (예술연예)E-6 (Nghệ thuật & Giải trí)E-6 (Искусство и развлечения)
e7E-7 (特定活动)E-7 (특정활동)E-7 (Nghề nghiệp đặc biệt)E-7 (Специальные профессии)
e8E-8 (季节劳务)E-8 (계절근로)E-8 (Lao động thời vụ)E-8 (Сезонный труд)
e9E-9 (非专门就业)E-9 (비전문취업)E-9 (Lao động phổ thông)E-9 (Неквалифицированный труд)
d2D-2 (留学)D-2 (유학)D-2 (Du học)D-2 (Обучение)
d4D-4 (语言研修)D-4 (일반연수/어학연수)D-4 (Học tiếng)D-4 (Языковые курсы)
d7D-7 (企业内部调动)D-7 (주재)D-7 (Chuyển công tác nội bộ)D-7 (Внутрикорпоративный перевод)
d8D-8 (投资创业)D-8 (기업투자)D-8 (Đầu tư doanh nghiệp)D-8 (Корпоративные инвестиции)
d9D-9 (贸易经营)D-9 (무역경영)D-9 (Quản lý thương mại)D-9 (Торговля и управление)
h1H-1 (打工度假)H-1 (관광취업/워킹홀리데이)H-1 (Lao động kết hợp kỳ nghỉ)H-1 (Рабочий отпуск)
h2H-2 (访问就业)H-2 (방문취업)H-2 (Thăm viếng làm việc)H-2 (Рабочий визит)
f4F-4 (在外同胞)F-4 (재외동포)F-4 (Việt kiều Hàn)F-4 (Зарубежные корейцы)
f2F-2 (长期居住)F-2 (거주)F-2 (Cư trú)F-2 (Резидент)
f5F-5 (永久居留)F-5 (영주)F-5 (Thường trú nhân)F-5 (ПМЖ)
f6F-6 (结婚移民)F-6 (결혼이민)F-6 (Kết hôn di dân)F-6 (Брачный мигрант)

benefit(福利待遇,字段:benefit_codes)

code中文注释韩文注释越南文注释俄文注释
food_stay包吃住숙식 제공Bao an oЖилье и питание
food包吃식사 제공Bao anПитание
insurance四大保险4대 보험4 bao hiem4 страховки
bonus奖金提成보너스ThuongБонус
annual_leave年假연차/휴가Nghi phep namОтпуск
shuttle通勤车통근버스Xe dua donШаттл
severance退职金퇴직금Tro cap thoi viecВыходное пособие
overtime_pay加班费연장수당Luong tang caСверхурочные
night_pay夜班津贴야간수당Phu cap ca demНочная надбавка
uniform制服유니폼Dong phucУниформа
housing包住기숙사 제공Bao oЖилье
meal_allowance餐补식대 지원Phu cap anКомпенсация питания
transport_allowance交通补贴교통비 지원Phu cap di laiТранспортная компенсация

companion(同行分类,字段:companion_codes)

按分类对齐的独立维度。爬虫可直接传入 companion_codes: ["couple_friend"] 或单值 "couple_friend"(亦兼容别名 companion,以及中韩文词汇 夫妻/朋友、부부/친구)。

code中文注释韩文注释越南文注释俄文注释
couple_friend夫妻/朋友(同行)부부/친구 (동반)Vợ chồng/Bạn bèСемейные пары/Друзья

income(收入分类,字段:income_codes)

按分类对齐的独立维度。爬虫可直接传入 income_codes: ["income_middle"](亦兼容别名 income_tier / income,以及中文 中等收入 等)。

收入未传时的自动推导规则

若爬虫未上传 income_codes(且未在 tag_codes 显式提供 income_*),服务端将根据 salary_type_code 与薪资数值(优先取 salary_min,未传时取 salary_max)自动推导归类(单位:韩元 KRW):

薪资周期 (salary_type_code)基础薪资 (income_basic)中等收入 (income_middle)高等收入 (income_high)
月薪 (monthly)< 2,500,000 韩元(250万以下)2,500,000 ~ 3,500,000 韩元(250万~350万)> 3,500,000 韩元(350万以上)
日薪 (daily)< 130,000 韩元(13万以下)130,000 ~ 180,000 韩元(13万~18万)> 180,000 韩元(18万以上)
时薪 (hourly)< 11,000 韩元(1.1万以下)11,000 ~ 15,000 韩元(1.1万~1.5万)> 15,000 韩元(1.5万以上)
年薪 (yearly)折合月薪 < 2,500,000 韩元折合月薪 2,500,000 ~ 3,500,000 韩元折合月薪 > 3,500,000 韩元

注:若薪资为面议或金额 <= 0,则不强制推导,保持为空。

code中文注释韩文注释越南文注释俄文注释
income_basic基础薪资(收入)기본 급여 (소득)Lương cơ bản (Thu nhập)Базовый доход
income_middle中等收入(收入)중간 소득 (소득)Thu nhập trung bình (Thu nhập)Средний доход
income_high高等收入(收入)고소득 (소득)Thu nhập cao (Thu nhập)Высокий доход

tag(职位标签,字段:tag_codes)

通用职位标签(自由多选维度)。亦兼容在此字段中直接传入 couple_friend 或 income_*。

code中文注释韩文注释越南文注释俄文注释
office_job办公室사무직Van phongОфис
professional专业职位전문직Chuyen nghiepПрофессионал
career_growth晋升空间커리어 성장Tang tienКарьерный рост
visa_support签证支持비자 지원Ho tro visaВизовая поддержка
no_experience无需经验경력 무관Khong kinh nghiemБез опыта
daily_pay日结당일 지급Tra ngayОплата ежедневно
factory工厂공장Nha mayЗавод
night_shift夜班야간Ca demНочная смена
student_friendly留学生友好유학생Than thien sinh vienДля студентов
service服务业서비스Dich vuСервис
physical_labor体力劳动육체노동Lao dong tay chanФизический труд
high_salary高薪고액Luong caoВысокая зарплата
bilingual双语이중언어Song nguДвуязычный
remote远程可재택 가능Lam tu xaУдаленно
flexible时间灵活유연근무Linh hoatГибкий график
immediate_start可立即上岗즉시출근Di lam ngayСрочный выход

occupation(岗位分类,字段:occupation_codes)

code中文注释韩文注释越南文注释俄文注释
factory_assembly组装与包装조립/포장Lap rap/Dong goiСборка/Упаковка
factory_machine机器操作/技工기계조작/기술Van hanh mayОператор машины
factory_qa质检与验货검사/검수Kiem hangИнспекция качества
factory_food食品加工식품가공Che bien thuc phamПищевое производство
factory_molding注塑/成型사출/성형Ep/tao hinhЛитье/формовка
factory_clean无尘室/洁净클린룸Phong sachЧистая комната
const_labor现场杂工현장잡부Phu hoРазнорабочий
const_skilled焊工/专业技工용접/전문기공Tho hanСварщик
const_interior室内装修인테리어Noi thatИнтерьер
const_scaffold脚手架비계Gian giaoЛеса
const_paint油漆/涂装도장SonПокраска
const_electric电工전기DienЭлектрик
const_plumber水暖배관Ong nuocСантехник
svc_kitchen后厨/洗碗주방/설거지Phu bep/Rua batКухня/Посудомойщик
svc_serving餐厅厅面홀서빙Phuc vuОфициант
svc_cleaning清扫/客房청소/룸메이드Don depУборка
svc_cafe咖啡/饮品카페/음료Ca phe/do uongКаfe/Напитки
svc_retail便利店/零售편의점/소매Cua hangМагазин/Ритейл
svc_hotel酒店/前台/客房호텔/프론트/룸Khach sanОтель
svc_security保安/巡逻보안/경비Bao veОхрана
svc_childcare育儿/保姆육아/베이비시터Trong treНяня
logi_sorting分拣/搬运(二炮)상하차/분류Phan loaiСортировка
logi_warehouse仓库管理창고관리/전산KhoСклад
logi_rider外卖骑手/代驾배달라이더/대리Giao hangКурьер
logi_driver货车/司机화물/운전Tai xeВодитель
logi_forklift叉车/吊装지게차Xe nangПогрузчик
logi_last_mile快递/末端配送택배/라스트마일Giao nhanhДоставка
logi_inventory盘点/库存재고/피킹Kiem keИнвентарь
lang_trans翻译与口译번역/통역Bien phien dichПеревод
lang_ecommerce中韩电商/采购이커머스/구매Thuong mai dien tuЭлектронная коммерция
lang_support中韩客服/支持중한 고객지원Ho tro CN-KRПоддержка CN-KR
lang_guide导游/同声가이드/통역Huong danГид/Переводчик
lang_trade跨境电商/贸易무역/이커머스Thuong maiТорговля
prof_admin行政/财务/文秘사무/회계/경리Hanh chinhАдмин
prof_itIT/软件开发/设计개발/디자인IT/Thiet keIT/Дизайн
prof_hr人事/招聘인사/채용Nhan suHR/Подбор
prof_sales销售/BD영업/BDBan hangПродажи
prof_marketing市场/运营마케팅/운영MarketingМаркетинг
prof_design设计/美术디자인Thiet keДизайн
prof_customer客服/呼叫中心콜센터/CSCham soc KHКолл-центр
prof_pm产品/项目管理PM/기획Quan ly du anPM/Проект
prof_data数据/分析데이터/분석Du lieuАналитика
med_care看护与护工간병인Cham soc nguoi giaСиделка
med_nurse护士/护理간호Y taМедсестра
med_clinic诊所助理의원 보조Tro ly phong khamАссистент клиники
agri_farm农场/大棚농장/비닐하우스Nong trangФерма
agri_fishery渔业/水产수산/양식Thuy sanРыболовство
agri_livestock畜牧/养殖축산/사육Chan nuoiЖивотноводство
flex_day_worker日结/临时工일용직/단기Viec ngayПодработка/дневная
flex_event活动/会展행사/이벤트Su kienИвенты
flex_promo促销/路演프로모션Khuyen maiПромо
flex_dispatch派遣/替班파견/대체Phai cuЗамена/аутстафф

shift(班次,字段:shift_codes)

code中文注释韩文注释越南文注释俄文注释
shift_day白班주간Ca ngàyДневная
shift_night夜班야간Ca đêmНочная
shift_rotating轮班교대Ca luân phiênСменная

board(食宿,字段:board_codes)

code中文注释韩文注释越南文注释俄文注释
board_meals提供工作餐식사 제공Cung cấp bữa ănПитание
board_housing提供住宿숙소 제공Cung cấp chỗ ởПроживание

若需要最新列表,可通过接口拉取:/rest/v1/taxonomy_items?select=code,label_i18n&taxonomies.code=eq.occupation&is_active=eq.true。

education(学历要求,字段:education_code)

code中文注释韩文注释越南文注释俄文注释
none学历不限학력무관Khong yeu cau bang capОбразование не важно
high_school高中及以上고졸 이상Tren cap 3Среднее+
college大专及以上전문대 이상Cao dang+Среднее спец.+
bachelor本科及以上학사 이상Cu nhan+Бакалавр+
master硕士及以上석사 이상Thac si+Магистр+
phd博士박사Tien siДоктор наук

experience(经验要求,字段:experience_code)

code中文注释韩文注释越南文注释俄文注释
none经验不限경력무관Khong can kinh nghiemБез опыта
newbie欢迎新手신입 환영Chao don nguoi moiДля новичков
1-3y1-3年1-3년1-3 nam1-3 года
3-5y3-5年3-5년3-5 nam3-5 лет
5y_plus5年以上5년 이상Tren 5 nam5+ лет
10y_plus10年以上10년 이상Tren 10 nam10+ лет

korean_req(韩语要求,字段:korean_req_code)

code中文注释韩文注释越南文注释俄文注释
lang_fluent熟练능통Thành thạoСвободно
lang_basic基本기초Cơ bảnНачальный
lang_none零基础/不限무관Không yêu cầuБез знания

employer_nationality(雇主国籍,字段:employer_nationality)

code中文注释韩文注释越南文注释俄文注释
kr韩国雇主한국 고용주Chủ sử dụng Hàn QuốcКорейский работодатель
cn中国雇主중국 고용주Chủ sử dụng Trung QuốcКитайский работодатель

最小可用 payload(建议):

  • 至少包含:title + description + (contact_phone 或 contact_email) + region_code + salary_min + salary_type_code + work_type_codes + occupation_codes。
{
  "jobs": [
    {
      "source_channel": "crawler",
      "publisher_type": "organization",
      "company_name": {
        "zh": "安山电子厂",
        "ko": "안산 전자공장",
        "vi": "Nha may dien tu Ansan",
        "ru": "Завод электроники Ансан"
      },
      "title": {
        "zh": "电子厂装配工",
        "ko": "전자공장 조립원",
        "vi": "Cong nhan lap rap nha may dien tu",
        "ru": "Сборщик на электронном заводе"
      },
      "description": {
        "zh": "负责电子部件装配与基础质检,白夜两班制。",
        "ko": "전자 부품 조립 및 기초 검사, 주야 2교대."
      },
      "contact_phone": "010-1234-5678",
      "region_code": "gyeonggi",
      "salary_min": 120000,
      "salary_type_code": "daily",
      "work_type_codes": ["daily"],
      "occupation_codes": ["factory_assembly"]
    }
  ]
}

全字段详细 payload(14 国语言完整示例):

{
  "jobs": [
    {
      "external_ref": "api-ansan-assembly-20260308-day-001",
      "source_channel": "api",
      "status": "active",
      "visibility": "public",
      "publisher_type": "organization",
      "company_name": {
        "en": "Ansan Auto Electronics Plant (Direct)",
        "vi": "Nhà máy điện tử ô tô Ansan (Tuyển trực tiếp)",
        "zh": "安山汽车电子厂(直招)",
        "th": "โรงงานอิเล็กทรอนิกส์ยานยนต์อันซาน (รับตรง)",
        "uz": "Ansan avto elektronika zavodi (To'g'ridan-to'g'ri qabul)",
        "ru": "Завод автоэлектроники в Ансане (прямой набор)",
        "ne": "अंसान अटो इलेक्ट्रोनिक्स प्लान्ट (प्रत्यक्ष भर्ती)",
        "id": "Pabrik Elektronik Otomotif Ansan (Perekrutan Langsung)",
        "mn": "Ансан авто электроникийн үйлдвэр (Шууд ажилд авна)",
        "my": "အန်ဆန်း မော်တော်ကား အီလက်ထရွန်းနစ် စက်ရုံ (တိုက်ရိုက်အလုပ်ခေါ်ယူခြင်း)",
        "km": "រោងចក្រអេឡិចត្រូនិចរថយន្តអានសាន (ជ្រើសរើសផ្ទាល់)",
        "si": "අන්සාන් මෝටර් රථ ඉලෙක්ට්‍රොනික කර්මාන්තශාලාව (සෘජු බඳවා ගැනීම)",
        "tl": "Pabrika ng Auto Electronics sa Ansan (Direktang Hiring)",
        "ko": "안산 자동차 전자공장(직영)"
      },
      "organization_slug": "ansan-auto-electronics-direct",
      "brand_name": "Ansan E-Mobility Plant",
      "country_code": "KR",
      "original_url": "https://www.jobkorea.co.kr/Recruit/GI_Read/12345678",
      "title": {
        "en": "Electronic Component Assembly / Quality Inspector (Same-day Interview Available)",
        "vi": "Công nhân lắp ráp / kiểm tra linh kiện điện tử (Có thể phỏng vấn ngay trong ngày)",
        "zh": "电子零件装配/质检作业员(可当天面试)",
        "th": "พนักงานประกอบ/ตรวจสอบชิ้นส่วนอิเล็กทรอนิกส์ (สัมภาษณ์ได้ในวันเดียวกัน)",
        "uz": "Elektron qismlarni yig'ish / sifat nazoratchisi (Shu kunning o'zida suhbat)",
        "ru": "Сборщик/контролер электронных компонентов (собеседование в день обращения)",
        "ne": "इलेक्ट्रोनिक कम्पोनेन्ट एसेम्बली / गुणस्तर निरीक्षक (सोही दिन अन्तर्वार्ता उपलब्ध)",
        "id": "Operator Perakitan Komponen Elektronik / Pemeriksaan Kualitas (Bisa Wawancara Hari Ini)",
        "mn": "Электрон эд анги угсрагч / чанарын байцаагч (Тухайн өдөр ярилцлага хийх боломжтой)",
        "my": "အီလက်ထရွန်းနစ် အစိတ်အပိုင်း တပ်ဆင်သူ / အရည်အသွေး စစ်ဆေးရေးမှူး (ထိုနေ့တွင်ပင် လူတွေ့စစ်ဆေးနိုင်သည်)",
        "km": "បុគ្គលិកដំឡើង / ត្រួតពិនិត្យគុណភាពគ្រឿងបន្លាស់អេឡិចត្រូនិច (អាចសម្ភាសន៍ក្នុងថ្ងៃតែមួយ)",
        "si": "ඉලෙක්ට්‍රොනික උපාංග එකලස් කිරීම / තත්ත්ව පරීක්ෂක (එදිනම සම්මුඛ පරීක්ෂණ පැවැත්විය හැක)",
        "tl": "Electronic Component Assembly / Quality Inspector (Pwedeng Mag-interview sa Parehong Araw)",
        "ko": "전자부품 조립·검사 사원(당일 면접 가능)"
      },
      "summary": {
        "en": "Korean company direct hiring, dormitory and shuttle bus provided, same-day interview & trial available",
        "vi": "Tuyển dụng trực tiếp từ doanh nghiệp Hàn Quốc, có ký túc xá và xe đưa đón, phỏng vấn và thử việc trong ngày",
        "zh": "韩企直招,提供宿舍与通勤车,可当天安排面试和试岗",
        "th": "รับสมัครตรงโดยบริษัทเกาหลี มีหอพักและรถรับส่ง สัมภาษณ์และทดลองงานได้ในวันเดียวกัน",
        "uz": "Koreya kompaniyasi to'g'ridan-to'g'ri ishga oladi, yotoqxona va transport taqdim etiladi",
        "ru": "Прямой набор корейской компанией, общежитие и шаттл, собеседование в день обращения",
        "ne": "कोरियाली कम्पनी प्रत्यक्ष भर्ती, छात्रावास र शटल बस उपलब्ध",
        "id": "Perekrutan langsung perusahaan Korea, tersedia asrama dan bus jemputan",
        "mn": "Солонгос компани шууд ажилд авна, дотуур байр болон унаагаар хангана",
        "my": "ကိုရီးယားကုမ္ပဏီ တိုက်ရိုက်ခေါ်ယူခြင်း၊ အဆောင်နှင့် ကြိုပို့ကား စီစဉ်ပေးသည်",
        "km": "ជ្រើសរើសដោយផ្ទាល់ពីក្រុមហ៊ុនកូរ៉េ មានកន្លែងស្នាក់នៅ និងរថយន្តជូនដំណើរ",
        "si": "කොරියානු සමාගම සෘජුවම බඳවා ගනී, නේවාසිකාගාර සහ ප්‍රවාහන පහසුකම් සපයනු ලැබේ",
        "tl": "Direktang hiring mula sa kumpanya sa Korea, may dormitoryo at shuttle bus",
        "ko": "한국 기업 직영 채용, 기숙사/통근버스 제공, 당일 면접 및 시범근무 가능"
      },
      "description": {
        "en": "Assembly line position at Ansan auto electronics plant, mainly responsible for connectors and wire harness pre-assembly. Standing work in climate-controlled cleanroom, two rotating shifts, safety training provided.",
        "vi": "Vị trí dây chuyền lắp ráp tại nhà máy điện tử ô tô Ansan, phụ trách lắp ráp đầu nối và bó dây điện. Làm việc đứng trong phòng sạch điều hòa nhiệt độ, 2 ca luân phiên, có đào tạo an toàn trước khi nhận việc.",
        "zh": "安山汽车电子工厂装配线岗位,主要负责连接器与线束预装。恒温车间站立作业,实行两班倒,入职前提供安全培训。",
        "th": "ตำแหน่งสายการประกอบที่โรงงานอิเล็กทรอนิกส์ยานยนต์อันซาน รับผิดชอบการประกอบขั้วต่อและชุดสายไฟ ทำงานยืนในห้องควบคุมอุณหภูมิ เข้ากะหมุนเวียน 2 กะ มีการฝึกอบรมความปลอดภัย",
        "uz": "Ansan avto elektronika zavodida yig'ish liniyasi, asosan konnektorlar va simlarni dastlabki yig'ish. Konditsionerli xonada tik turib ishlash, 2 smena, xavfsizlik bo'yicha trening beriladi.",
        "ru": "Позиция на линии сборки автоэлектроники в Ансане: сборка разъемов и жгутов проводов. Работа стоя в кондиционированном цехе, 2 смены, вводный инструктаж по безопасности.",
        "ne": "अंसान अटो इलेक्ट्रोनिक्स प्लान्टमा एसेम्बली लाइन पद, कनेक्टर र तार हार्नेस प्रि-एसेम्बली। वातानुकूलित सफा कोठामा उभिएर काम गर्ने, दुई सिफ्ट, सुरक्षा तालिम प्रदान गरिनेछ।",
        "id": "Posisi lini perakitan di pabrik elektronik otomotif Ansan, bertanggung jawab atas perakitan konektor dan wire harness. Bekerja berdiri di ruangan ber-AC, 2 shift bergilir, ada pelatihan keselamatan kerja.",
        "mn": "Ансаны авто электроникийн үйлдвэрт угсрах шугамын ажилтан, холбогч болон кабелийн угсралт хариуцна. Дулаан тохируулгатай өрөөнд зогсож ажиллана, 2 ээлжээр ажиллана, аюулгүй ажиллагааны сургалттай.",
        "my": "အန်ဆန်း မော်တော်ကား အီလက်ထရွန်းနစ် စက်ရုံ တပ်ဆင်ရေးလိုင်း အလုပ်နေရာ၊ ချိတ်ဆက်ကိရိယာများနှင့် ဝါယာကြိုးများ ကြိုတင်တပ်ဆင်ခြင်း။ အပူချိန်ထိန်းချုပ်ထားသော အခန်းတွင် မတ်တပ်ရပ်လုပ်ကိုင်ရမည်၊ ၂ ဆိုင်းဆင်းရမည်၊ ဘေးအန္တရာယ်ကင်းရှင်းရေး သင်တန်းပေးသည်။",
        "km": "តួនាទីខ្សែសង្វាក់ដំឡើងនៅរោងចក្រអេឡិចត្រូនិចរថយន្តអានសាន ទទួលខុសត្រូវលើការដំឡើងឧបករណ៍ភ្ជាប់ និងខ្សែភ្លើង។ ធ្វើការឈរក្នុងបន្ទប់ម៉ាស៊ីនត្រជាក់ វេនវិលជុំ ២ វេន មានការបណ្តុះបណ្តាលសុវត្ថិភាព។",
        "si": "අන්සාන් මෝටර් රථ ඉලෙක්ට්‍රොනික කර්මාන්තශාලාවේ එකලස් කිරීමේ මාර්ග තනතුර, සම්බන්ධක සහ වයර් එකලස් කිරීම. වායු සමනය කළ කාමරයක හිටගෙන වැඩ කිරීම, මුර 2ක් මාරුවෙන් මාරුවට, ආරක්ෂිත පුහුණුව ලබා දෙනු ලැබේ.",
        "tl": "Assembly line position sa pabrika ng auto electronics sa Ansan, pangunahing responsable sa pre-assembly ng mga connector at wire harness. Nakatayong trabaho sa air-conditioned room, 2 shifts, may safety training bago magsimula.",
        "ko": "안산 자동차 전자공장 조립라인 포지션, 커넥터 및 와이어 하네스 사전 조립 담당. 항온 작업장 입식 근무, 주야 2교대, 입사 전 안전교육 제공."
      },
      "duties": {
        "en": "1) Assemble parts and perform visual inspection according to SOP; 2) Record defective items and hand over to line leader; 3) Complete 5S and shift handover.",
        "vi": "1) Lắp ráp linh kiện và kiểm tra ngoại quan theo SOP; 2) Ghi nhận lỗi và bàn giao cho trưởng chuyền; 3) Thực hiện 5S và bàn giao ca.",
        "zh": "按SOP完成装配与初检,记录不良并交接,完成工位5S。",
        "th": "1) ประกอบชิ้นส่วนและตรวจสอบตาม SOP; 2) บันทึกสินค้าที่มีตำหนิและส่งมอบให้หัวหน้ากะ; 3) ทำ 5S และส่งมอบกะงาน",
        "uz": "1) SOP bo'yicha qismlarni yig'ish va vizual tekshirish; 2) Nuqsonlarni qayd etish va smena rahbariga topshirish; 3) 5S qoidalariga rioya qilish.",
        "ru": "1) Сборка и визуальный контроль по SOP; 2) фиксация дефектов и передача мастеру; 3) соблюдение 5S и передача смены.",
        "ne": "१) SOP अनुसार पार्टपुर्जा एसेम्बल र प्रारम्भिक निरीक्षण गर्ने; २) त्रुटिहरू रेकर्ड गर्ने र लाइन लिडरलाई हस्तान्तरण गर्ने; ३) 5S र सिफ्ट ह्यान्डઓभर पूरा गर्ने।",
        "id": "1) Merakit komponen dan inspeksi visual sesuai SOP; 2) Mencatat produk cacat dan serah terima ke supervisor lini; 3) Menyelesaikan 5S dan serah terima shift.",
        "mn": "1) SOP-ийн дагуу эд анги угсрах болон харааны шалгалт хийх; 2) Гологдол бүртгэж ахлагчид хүлээлгэн өгөх; 3) 5S болон ээлж хүлээлцэх.",
        "my": "၁) SOP အတိုင်း အစိတ်အပိုင်းများ တပ်ဆင်ခြင်းနှင့် ပဏာမ စစ်ဆေးခြင်း၊ ၂) ချွတ်ယွင်းချက်များ မှတ်တမ်းတင်ပြီး ခေါင်းဆောင်ထံ လွှဲပြောင်းပေးခြင်း၊ ၃) 5S ဆောင်ရွက်ခြင်း။",
        "km": "១) ដំឡើងគ្រឿងបន្លាស់ និងត្រួតពិនិត្យតាម SOP; ២) កត់ត្រាកំហុស និងប្រគល់ជូនប្រធានខ្សែសង្វាក់; ៣) អនុវត្ត 5S និងផ្ទេរវេនការងារ។",
        "si": "1) SOP අනුව කොටස් එකලස් කිරීම සහ පරීක්ෂා කිරීම; 2) දෝෂ වාර්තා කර ප්‍රධානියාට භාර දීම; 3) 5S සම්පූර්ණ කිරීම.",
        "tl": "1) Mag-assemble ng piyesa at mag-inspeksyon ayon sa SOP; 2) I-record ang depekto at i-handover sa line leader; 3) Magsagawa ng 5S at shift turnover.",
        "ko": "SOP 기반 부품 조립 및 1차 외관 검사, 불량 내역 기록 및 인계, 작업장 5S 수행."
      },
      "working_hours": {
        "en": "Day shift 08:30-17:30 / Night shift 20:30-05:30 (Overtime available, 90 mins total break)",
        "vi": "Ca ngày 08:30-17:30 / Ca đêm 20:30-05:30 (Có tăng ca, nghỉ giải lao 90 phút)",
        "zh": "白班 08:30-17:30 / 夜班 20:30-05:30(含加班)",
        "th": "กะกลางวัน 08:30-17:30 / กะกลางคืน 20:30-05:30 (มีโอที พักรวม 90 นาที)",
        "uz": "Kunduzgi smena 08:30-17:30 / Tungi smena 20:30-05:30 (Qo'shimcha ish vaqti mavjud)",
        "ru": "Дневная смена 08:30-17:30 / Ночная смена 20:30-05:30 (переработки, отдых 90 мин)",
        "ne": "दिनको सिफ्ट ०८:३०-१७:३० / रातीको सिफ्ट २०:३०-०५:३० (ओभरटाइम सहित)",
        "id": "Shift Pagi 08:30-17:30 / Shift Malam 20:30-05:30 (Termasuk lembur, istirahat 90 menit)",
        "mn": "Өдрийн ээлж 08:30-17:30 / Шөнийн ээлж 20:30-05:30 (Илүү цагтай, амралт 90 мин)",
        "my": "နေ့ဆိုင်း ၀၈:၃၀-၁၇:၃၀ / ညဆိုင်း ၂၀:၃၀-၀၅:၃၀ (အချိန်ပိုဆင်းရနိုင်သည်)",
        "km": "វេនថ្ងៃ ០៨:៣០-១៧:៣០ / វេនយប់ ២០:៣០-០៥:៣០ (មានថែមម៉ោង សម្រាក ៩០ នាទី)",
        "si": "දවල් මුරය 08:30-17:30 / රාත්‍රී මුරය 20:30-05:30 (අතිකාල දීමනා සහිතයි)",
        "tl": "Day shift 08:30-17:30 / Night shift 20:30-05:30 (May overtime, 90 mins break)",
        "ko": "주간 08:30-17:30 / 야간 20:30-05:30 (연장근무 포함, 총 휴게 90분)"
      },
      "location_note": {
        "en": "10 minutes by shuttle from Ansan Station Exit 2; cafeteria, locker rooms and lounge in complex",
        "ko": "안산역 2번 출구 셔틀버스 10분, 단지 내 식당/탈의실/휴게공간 제공",
        "zh": "安山站2号口有班车10分钟直达,园区内配食堂、更衣室、休息区",
        "vi": "Từ cổng số 2 ga Ansan có xe đưa đón 10 phút, trong khu có nhà ăn, phòng thay đồ và khu nghỉ",
        "ru": "От выхода 2 станции Ансан есть шаттл (10 минут), на территории столовая, раздевалки и зона отдыха"
      },
      "contact_phone": "010-1234-5678",
      "contact_email": "demo.hr.contact+001@gmail.com",
      "contact_note": {
        "en": "Mon-Fri 09:00-18:00 phone inquiry; please note visa type, Korean level, and available start date",
        "ko": "평일 09:00-18:00 전화 문의 가능; 지원 시 비자 유형/한국어 수준/출근 가능일 기재",
        "zh": "工作日 09:00-18:00 电话咨询;报名请备注签证类型、韩语等级和可到岗日期",
        "vi": "Liên hệ ngày thường 09:00-18:00; khi đăng ký vui lòng ghi loại visa, trình độ tiếng Hàn và ngày có thể đi làm",
        "ru": "Связь по будням 09:00-18:00; при отклике укажите тип визы, уровень корейского и дату выхода"
      },
      "salary_type_code": "daily",
      "salary_min": 120000,
      "salary_max": 180000,
      "salary_currency": "KRW",
      "salary_display_text": "日结 12万~18万韩元(夜班/加班津贴另算)",
      "salary_is_negotiable": false,
      "region_code": "gyeonggi",
      "address_line": "경기도 안산시 단원구 원시동 774-3 (안산스마트허브 5공단)",
      "latitude": 37.3215,
      "longitude": 126.8302,
      "work_type_codes": ["long_term", "daily"],
      "visa_codes": ["h2", "f4", "f2"],
      "benefit_codes": [
        "food_stay",
        "shuttle",
        "overtime_pay",
        "night_pay",
        "insurance"
      ],
      "tag_codes": ["factory", "daily_pay", "immediate_start", "no_experience"],
      "companion_codes": ["couple_friend"],
      "income_codes": ["income_middle"],
      "shift_codes": ["shift_day", "shift_night"],
      "board_codes": ["board_meals", "board_housing"],
      "occupation_codes": ["factory_assembly"],
      "korean_req_code": "lang_basic",
      "employer_nationality": "kr",
      "education_code": "high_school",
      "experience_code": "none",
      "requirement_notes": {
        "en": "Standing work and repetitive tasks; must hold valid legal stay status in Korea.",
        "vi": "Chấp nhận làm việc đứng và công việc lặp lại; cần có giấy tờ cư trú hợp pháp tại Hàn Quốc.",
        "zh": "可接受站班与重复性作业;需提供在韩合法居留证明。",
        "th": "สามารถยืนทำงานและทำงานซ้ำๆ ได้ ต้องมีเอกสารแสดงสถานะพำนักถูกกฎหมายในเกาหลี",
        "uz": "Tik turib ishlash va takroriy vazifalarga tayyor bo'lish; Koreyada qonuniy yashash ruxsatnomasi talab qilinadi.",
        "ru": "Готовность к работе стоя и однотипным операциям; требуется подтверждение легального пребывания в Корее.",
        "ne": "उभिएर काम गर्न र दोहोरिने कार्यहरू गर्न सक्ने; कोरियामा वैध कानुनी बसोबास स्थिति आवश्यक।",
        "id": "Bisa bekerja berdiri dan pekerjaan repetitif; wajib memiliki izin tinggal resmi di Korea.",
        "mn": "Зогсож ажиллах болон давтагдах үйлдлийг хийх чадвартай; Солонгост хууль ёсоор оршин суух зөвшөөрөлтэй байх.",
        "my": "မတ်တပ်ရပ်လုပ်ကိုင်နိုင်ပြီး ထပ်ခါတလဲလဲလုပ်ရသောအလုပ်ကို လုပ်နိုင်သူ၊ ကိုရီးယားတွင် တရားဝင်နေထိုင်ခွင့်ရှိရမည်။",
        "km": "អាចឈរធ្វើការ និងធ្វើការងារដដែលៗបាន ត្រូវមានលិខិតស្នាក់នៅស្របច្បាប់នៅកូរ៉េ។",
        "si": "හිටගෙන සහ එකම කාර්යය නැවත නැවත කිරීමට හැකි විය යුතුය; කොරියාවේ නීත්‍යානුකූල වීසා බලපත්‍රයක් තිබිය යුතුය.",
        "tl": "Kayang tumayo at gumawa ng paulit-ulit na gawain; kailangang may legal na stay status sa Korea.",
        "ko": "입식 및 반복 작업 가능자; 합법적인 체류 증빙 필수."
      }
    }
  ]
}

5. 成功响应

{
  "ok": true,
  "received": 1,
  "accepted": 1,
  "invalidCount": 0,
  "invalid": [],
  "processed": [
    {
      "job_post_id": 8,
      "external_ref": "demo-001",
      "source_channel": "seed",
      "publisher_type": "organization",
      "status": "active"
    }
  ]
}
字段类型说明
okboolean是否全部成功(invalidCount == 0)
receivednumber接收到的 job 数量
acceptednumber成功入库数量
invalidCountnumber失败数量
invalidstring[]每条失败原因(含下标)
processedobject[]成功条目摘要

6. 错误码

HTTP 状态码场景
400JSON 非法 / 没有可用 jobs payload
401缺少签名头 / 时间戳过期 / 签名错误
405非 POST 请求
500服务端异常(环境变量缺失或数据库错误)

7. 请求示例(Node.js)

import crypto from 'node:crypto'

const url = 'https://<project-ref>.supabase.co/functions/v1/ingest-jobs'
const secret = process.env.INGEST_JOBS_SECRET!
const timestamp = Date.now().toString()

const body = JSON.stringify({
  jobs: [
    {
      external_ref: 'api-ansan-assembly-20260308-day-001',
      source_channel: 'api',
      publisher_type: 'organization',
      company_name: {
        en: 'Ansan Auto Electronics Plant (Direct)',
        vi: 'Nhà máy điện tử ô tô Ansan (Tuyển trực tiếp)',
        zh: '安山汽车电子厂(直招)',
        th: 'โรงงานอิเล็กทรอนิกส์ยานยนต์อันซาน (รับตรง)',
        uz: "Ansan avto elektronika zavodi (To'g'ridan-to'g'ri qabul)",
        ru: 'Завод автоэлектроники в Ансане (прямой набор)',
        ne: 'अंसान अटो इलेक्ट्रोनिक्स प्लान्ट (प्रत्यक्ष भर्ती)',
        id: 'Pabrik Elektronik Otomotif Ansan (Perekrutan Langsung)',
        mn: 'Ансан авто электроникийн үйлдвэр (Шууд ажилд авна)',
        my: 'အန်ဆန်း မော်တော်ကား အီလက်ထရွန်းနစ် စက်ရုံ (တိုက်ရိုက်အလုပ်ခေါ်ယူခြင်း)',
        km: 'រោងចក្រអេឡិចត្រូនិចរថយន្តអានសាន (ជ្រើសរើសផ្ទាល់)',
        si: 'අන්සාන් මෝටර් රථ ඉලෙක්ට්‍රොනික කර්මාන්තශාලාව (සෘජු බඳවා ගැනීම)',
        tl: 'Pabrika ng Auto Electronics sa Ansan (Direktang Hiring)',
        ko: '안산 자동차 전자공장(직영)',
      },
      title: {
        en: 'Electronic Component Assembly / Quality Inspector (Same-day Interview Available)',
        vi: 'Công nhân lắp ráp / kiểm tra linh kiện điện tử (Có thể phỏng vấn ngay trong ngày)',
        zh: '电子零件装配/质检作业员(可当天面试)',
        th: 'พนักงานประกอบ/ตรวจสอบชิ้นส่วนอิเล็กทรอนิกส์ (สัมภาษณ์ได้ในวันเดียวกัน)',
        uz: "Elektron qismlarni yig'ish / sifat nazoratchisi (Shu kunning o'zida suhbat)",
        ru: 'Сборщик/контролер электронных компонентов (собеседование в день обращения)',
        ne: 'इलेक्ट्रोनिक कम्पोनेन्ट एसेम्बली / गुणस्तर निरीक्षक (सोही दिन अन्तर्वार्ता उपलब्ध)',
        id: 'Operator Perakitan Komponen Elektronik / Pemeriksaan Kualitas (Bisa Wawancara Hari Ini)',
        mn: 'Электрон эд анги угсрагч / чанарын байцаагч (Тухайн өдөр ярилцлага хийх боломжтой)',
        my: 'အီလက်ထရွန်းနစ် အစိတ်အပိုင်း တပ်ဆင်သူ / အရည်အသွေး စစ်ဆေးရေးမှူး (ထိုနေ့တွင်ပင် လူတွေ့စစ်ဆေးနိုင်သည်)',
        km: 'បុគ្គលិកដំឡើង / ត្រួតពិនិត្យគុណភាពគ្រឿងបន្លាស់អេឡិចត្រូនិច (អាចសម្ភាសន៍ក្នុងថ្ងៃតែមួយ)',
        si: 'ඉලෙක්ට්‍රොනික උපාංග එකලස් කිරීම / තත්ත්ව පරීක්ෂක (එදිනම සම්මුඛ පරීක්ෂණ පැවැත්විය හැක)',
        tl: 'Electronic Component Assembly / Quality Inspector (Pwedeng Mag-interview sa Parehong Araw)',
        ko: '전자부품 조립·검사 사원(당일 면접 가능)',
      },
      summary: {
        en: 'Korean company direct hiring, dormitory and shuttle bus provided, same-day interview & trial available',
        vi: 'Tuyển dụng trực tiếp từ doanh nghiệp Hàn Quốc, có ký túc xá và xe đưa đón, phỏng vấn và thử việc trong ngày',
        zh: '韩企直招,提供宿舍与通勤车,可当天安排面试和试岗',
        th: 'รับสมัครตรงโดยบริษัทเกาหลี มีหอพักและรถรับส่ง สัมภาษณ์และทดลองงานได้ในวันเดียวกัน',
        uz: "Koreya kompaniyasi to'g'ridan-to'g'ri ishga oladi, yotoqxona va transport taqdim etiladi",
        ru: 'Прямой набор корейской компанией, общежитие и шаттл, собеседование в день обращения',
        ne: 'कोरियाली कम्पनी प्रत्यक्ष भर्ती, छात्रावास र शटल बस उपलब्ध',
        id: 'Perekrutan langsung perusahaan Korea, tersedia asrama dan bus jemputan',
        mn: 'Солонгос компани шууд ажилд авна, дотуур байр болон унаагаар хангана',
        my: 'ကိုရီးယားကုမ္ပဏီ တိုက်ရိုက်ခေါ်ယူခြင်း၊ အဆောင်နှင့် ကြိုပို့ကား စီစဉ်ပေးသည်',
        km: 'ជ្រើសរើសដោយផ្ទាល់ពីក្រុមហ៊ុនកូរ៉េ មានកន្លែងស្នាក់នៅ និងរថយន្តជូនដំណើរ',
        si: 'කොරියානු සමාගම සෘජුවම බඳවා ගනී, නේවාසිකාගාර සහ ප්‍රවාහන පහසුකම් සපයනු ලැබේ',
        tl: 'Direktang hiring mula sa kumpanya sa Korea, may dormitoryo at shuttle bus',
        ko: '한국 기업 직영 채용, 기숙사/통근버스 제공, 당일 면접 및 시범근무 가능',
      },
      description: {
        en: 'Assembly line position at Ansan auto electronics plant, mainly responsible for connectors and wire harness pre-assembly. Standing work in climate-controlled cleanroom, two rotating shifts, safety training provided.',
        vi: 'Vị trí dây chuyền lắp ráp tại nhà máy điện tử ô tô Ansan, phụ trách lắp ráp đầu nối và bó dây điện. Làm việc đứng trong phòng sạch điều hòa nhiệt độ, 2 ca luân phiên, có đào tạo an toàn trước khi nhận việc.',
        zh: '安山汽车电子工厂装配线岗位,主要负责连接器与线束预装。恒温车间站立作业,实行两班倒,入职前提供安全培训。',
        th: 'ตำแหน่งสายการประกอบที่โรงงานอิเล็กทรอนิกส์ยานยนต์อันซาน รับผิดชอบการประกอบขั้วต่อและชุดสายไฟ ทำงานยืนในห้องควบคุมอุณหภูมิ เข้ากะหมุนเวียน 2 กะ มีการฝึกอบรมความปลอดภัย',
        uz: "Ansan avto elektronika zavodida yig'ish liniyasi, asosan konnektorlar va simlarni dastlabki yig'ish. Konditsionerli xonada tik turib ishlash, 2 smena, xavfsizlik bo'yicha trening beriladi.",
        ru: 'Позиция на линии сборки автоэлектроники в Ансане: сборка разъемов и жгутов проводов. Работа стоя в кондиционированном цехе, 2 смены, вводный инструктаж по безопасности.',
        ne: 'अंसान अटो इलेक्ट्रोनिक्स प्लान्टमा एसेम्बली लाइन पद, कनेक्टर र तार हार्नेस प्रि-एसेम्बली। वातानुकूलित सफा कोठामा उभिएर काम गर्ने, दुई सिफ्ट, सुरक्षा तालिम प्रदान गरिनेछ।',
        id: 'Posisi lini perakitan di pabrik elektronik otomotif Ansan, bertanggung jawab atas perakitan konektor dan wire harness. Bekerja berdiri di ruangan ber-AC, 2 shift bergilir, ada pelatihan keselamatan kerja.',
        mn: 'Ансаны авто электроникийн үйлдвэрт угсрах шугамын ажилтан, холбогч болон кабелийн угсралт хариуцна. Дулаан тохируулгатай өрөөнд зогсож ажиллана, 2 ээлжээр ажиллана, аюулгүй ажиллагааны сургалттай.',
        my: 'အန်ဆန်း မော်တော်ကား အီလက်ထရွန်းနစ် စက်ရုံ တပ်ဆင်ရေးလိုင်း အလုပ်နေရာ၊ ချိတ်ဆက်ကိရိယာများနှင့် ဝါယာကြိုးများ ကြိုတင်တပ်ဆင်ခြင်း။ အပူချိန်ထိန်းချုပ်ထားသော အခန်းတွင် မတ်တပ်ရပ်လုပ်ကိုင်ရမည်၊ ၂ ဆိုင်းဆင်းရမည်၊ ဘေးအန္တရာယ်ကင်းရှင်းရေး သင်တန်းပေးသည်။',
        km: 'តួនាទីខ្សែសង្វាក់ដំឡើងនៅរោងចក្រអេឡិចត្រូនិចរថយន្តអានសាន ទទួលខុសត្រូវលើការដំឡើងឧបករណ៍ភ្ជាប់ និងខ្សែភ្លើង។ ធ្វើការឈរក្នុងបន្ទប់ម៉ាស៊ីនត្រជាក់ វេនវិលជុំ ២ វេន មានការបណ្តុះបណ្តាលសុវត្ថិភាព។',
        si: 'අන්සාන් මෝටර් රථ ඉලෙක්ට්‍රොනික කර්මාන්තශාලාවේ එකලස් කිරීමේ මාර්ග තනතුර, සම්බන්ධක සහ වයර් එකලස් කිරීම. වායු සමනය කළ කාමරයක හිටගෙන වැඩ කිරීම, මුර 2ක් මාරුවෙන් මාරුවට, ආරක්ෂිත පුහුණුව ලබා දෙනු ලැබේ.',
        tl: 'Assembly line position sa pabrika ng auto electronics sa Ansan, pangunahing responsable sa pre-assembly ng mga connector at wire harness. Nakatayong trabaho sa air-conditioned room, 2 shifts, may safety training bago magsimula.',
        ko: '안산 자동차 전자공장 조립라인 포지션, 커넥터 및 와이어 하네스 사전 조립 담당. 항온 작업장 입식 근무, 주야 2교대, 입사 전 안전교육 제공.',
      },
      duties: {
        en: '1) Assemble parts and perform visual inspection according to SOP; 2) Record defective items and hand over to line leader; 3) Complete 5S and shift handover.',
        vi: '1) Lắp ráp linh kiện và kiểm tra ngoại quan theo SOP; 2) Ghi nhận lỗi và bàn giao cho trưởng chuyền; 3) Thực hiện 5S và bàn giao ca.',
        zh: '按SOP完成装配与初检,记录不良并交接,完成工位5S。',
        th: '1) ประกอบชิ้นส่วนและตรวจสอบตาม SOP; 2) บันทึกสินค้าที่มีตำหนิและส่งมอบให้หัวหน้ากะ; 3) ทำ 5S และส่งมอบกะงาน',
        uz: "1) SOP bo'yicha qismlarni yig'ish va vizual tekshirish; 2) Nuqsonlarni qayd etish va smena rahbariga topshirish; 3) 5S qoidalariga rioya qilish.",
        ru: '1) Сборка и визуальный контроль по SOP; 2) фиксация дефектов и передача мастеру; 3) соблюдение 5S и передача смены.',
        ne: '१) SOP अनुसार पार्टपुर्जा एसेम्बल र प्रारम्भिक निरीक्षण गर्ने; २) त्रुटिहरू रेकرد गर्ने र लाइन लिडरलाई हस्तान्तरण गर्ने; ३) 5S र सिफ्ट ह्यान्डઓभर पूरा गर्ने।',
        id: '1) Merakit komponen dan inspeksi visual sesuai SOP; 2) Mencatat produk cacat dan serah terima ke supervisor lini; 3) Menyelesaikan 5S dan serah terima shift.',
        mn: '1) SOP-ийн дагуу эд анги угсрах болон харааны шалгалт хийх; 2) Гологдол бүртгэж ахлагчид хүлээлгэн өгөх; 3) 5S болон ээлж хүлээлцэх.',
        my: '၁) SOP အတိုင်း အစိတ်အပိုင်းများ တပ်ဆင်ခြင်းနှင့် ပဏာမ စစ်ဆေးခြင်း၊ ၂) ချွတ်ယွင်းချက်များ မှတ်တမ်းတင်ပြီး ခေါင်းဆောင်ထံ လွှဲပြောင်းပေးခြင်း၊ ၃) 5S ဆောင်ရွက်ခြင်း။',
        km: '១) ដំឡើងគ្រឿងបន្លាស់ និងត្រួតពិនិត្យតាម SOP; ២) កត់ត្រាកំហុស និងប្រគល់ជូនប្រធានខ្សែសង្វាក់; ៣) អនុវត្ត 5S និងផ្ទេរវេនការងារ។',
        si: '1) SOP අනුව කොටස් එකලස් කිරීම සහ පරීක්ෂා කිරීම; 2) දෝෂ වාර්තා කර ප්‍රධානියාට භාර දීම; 3) 5S සම්පූර්ණ කිරීම.',
        tl: '1) Mag-assemble ng piyesa at mag-inspeksyon ayon sa SOP; 2) I-record ang depekto at i-handover sa line leader; 3) Magsagawa ng 5S at shift turnover.',
        ko: 'SOP 기반 부품 조립 및 1차 외관 검사, 불량 내역 기록 및 인계, 작업장 5S 수행.',
      },
      working_hours: {
        en: 'Day shift 08:30-17:30 / Night shift 20:30-05:30 (Overtime available, 90 mins total break)',
        vi: 'Ca ngày 08:30-17:30 / Ca đêm 20:30-05:30 (Có tăng ca, nghỉ giải lao 90 phút)',
        zh: '白班 08:30-17:30 / 夜班 20:30-05:30(含加班)',
        th: 'กะกลางวัน 08:30-17:30 / กะกลางคืน 20:30-05:30 (มีโอที พักรวม 90 นาที)',
        uz: "Kunduzgi smena 08:30-17:30 / Tungi smena 20:30-05:30 (Qo'shimcha ish vaqti mavjud)",
        ru: 'Дневная смена 08:30-17:30 / Ночная смена 20:30-05:30 (переработки, отдых 90 мин)',
        ne: 'दिनको सिफ्ट ०८:३०-१७:३० / रातीको सिफ्ट २०:३०-०५:३० (ओभरटाइम सहित)',
        id: 'Shift Pagi 08:30-17:30 / Shift Malam 20:30-05:30 (Termasuk lembur, istirahat 90 menit)',
        mn: 'Өдрийн ээлж 08:30-17:30 / Шөнийн ээлж 20:30-05:30 (Илүү цагтай, амралт 90 мин)',
        my: 'နေ့ဆိုင်း ၀၈:၃၀-၁၇:၃၀ / ညဆိုင်း ၂၀:၃၀-၀၅:၃၀ (အချိန်ပိုဆင်းရနိုင်သည်)',
        km: 'វេនថ្ងៃ ០៨:៣០-១៧:៣០ / វេនយប់ ២០:៣០-០៥:៣០ (មានថែមម៉ោង សម្រាក ៩០ នាទី)',
        si: 'දවල් මුරය 08:30-17:30 / රාත්‍රී මුරය 20:30-05:30 (අතිකාල දීමනා සහිතයි)',
        tl: 'Day shift 08:30-17:30 / Night shift 20:30-05:30 (May overtime, 90 mins break)',
        ko: '주간 08:30-17:30 / 야간 20:30-05:30 (연장근무 포함, 총 휴게 90분)',
      },
      region_code: 'gyeonggi',
      address_line: '경기도 안산시 단원구 원시동 774-3',
      latitude: 37.3215,
      longitude: 126.8302,
      original_url: 'https://www.jobkorea.co.kr/Recruit/GI_Read/12345678',
      salary_min: 120000,
      salary_max: 180000,
      salary_type_code: 'daily',
      salary_currency: 'KRW',
      salary_display_text: '日结 12万~18万韩元(夜班/加班津贴另算)',
      salary_is_negotiable: false,
      work_type_codes: ['long_term', 'daily'],
      visa_codes: ['h2', 'f4', 'f2'],
      benefit_codes: [
        'food_stay',
        'shuttle',
        'overtime_pay',
        'night_pay',
        'insurance',
      ],
      tag_codes: ['factory', 'daily_pay', 'immediate_start', 'no_experience'],
      companion_codes: ['couple_friend'],
      income_codes: ['income_middle'],
      shift_codes: ['shift_day', 'shift_night'],
      board_codes: ['board_meals', 'board_housing'],
      occupation_codes: ['factory_assembly'],
      korean_req_code: 'lang_basic',
      employer_nationality: 'kr',
      education_code: 'high_school',
      experience_code: 'none',
      requirement_notes: {
        en: 'Standing work and repetitive tasks; must hold valid legal stay status in Korea.',
        vi: 'Chấp nhận làm việc đứng và công việc lặp lại; cần có giấy tờ cư trú hợp pháp tại Hàn Quốc.',
        zh: '可接受站班与重复性作业;需提供在韩合法居留证明。',
        th: 'สามารถยืนทำงานและทำงานซ้ำๆ ได้ ต้องมีเอกสารแสดงสถานะพำนักถูกกฎหมายในเกาหลี',
        uz: "Tik turib ishlash va takroriy vazifalarga tayyor bo'lish; Koreyada qonuniy yashash ruxsatnomasi talab qilinadi.",
        ru: 'Готовность к работе стоя и однотипным операциям; требуется подтверждение легального пребывания в Корее.',
        ne: 'उभिएर काम गर्न र दोहोरिने कार्यहरू गर्न सक्ने; कोरियामा वैध कानुनी बसोबास स्थिति आवश्यक।',
        id: 'Bisa bekerja berdiri dan pekerjaan repetitif; wajib memiliki izin tinggal resmi di Korea.',
        mn: 'Зогсож ажиллах болон давтагдах үйлдлийг хийх чадвартай; Солонгост хууль ёсоор оршин суух зөвшөөрөлтэй байх.',
        my: 'မတ်တပ်ရပ်လုပ်ကိုင်နိုင်ပြီး ထပ်ခါတလဲလဲလုပ်ရသောအလုပ်ကို လုပ်နိုင်သူ၊ ကိုရီးယားတွင် တရားဝင်နေထိုင်ခွင့်ရှိရမည်။',
        km: 'អាចឈរធ្វើការ និងធ្វើការងារដដែលៗបាន ត្រូវមានលិខិតស្នាក់នៅស្របច្បាប់នៅកូរ៉េ។',
        si: 'හිටගෙන සහ එකම කාර්යය නැවත නැවත කිරීමට හැකි විය යුතුය; කොරියාවේ නීත්‍යානුකූල වීසා බලපත්‍රයක් තිබිය යුතුය.',
        tl: 'Kayang tumayo at gumawa ng paulit-ulit na gawain; kailangang may legal na stay status sa Korea.',
        ko: '입식 및 반복 작업 가능자; 합법적인 체류 증빙 필수.',
      },
      status: 'active',
      visibility: 'public',
    },
  ],
})

const signature = crypto
  .createHmac('sha256', secret)
  .update(`${timestamp}.${body}`)
  .digest('base64url')

const res = await fetch(url, {
  method: 'POST',
  headers: {
    'content-type': 'application/json',
    'x-timestamp': timestamp,
    'x-signature': signature,
  },
  body,
})

console.log(await res.json())

8. 请求示例(Python)

import base64
import hashlib
import hmac
import json
import os
import time

import requests

url = "https://<project-ref>.supabase.co/functions/v1/ingest-jobs"
secret = os.environ["INGEST_JOBS_SECRET"]
timestamp = str(int(time.time() * 1000))

payload = {
    "jobs": [
        {
            "external_ref": "api-ansan-assembly-20260308-day-001",
            "source_channel": "api",
            "publisher_type": "organization",
            "company_name": {
                "en": "Ansan Auto Electronics Plant (Direct)",
                "vi": "Nhà máy điện tử ô tô Ansan (Tuyển trực tiếp)",
                "zh": "安山汽车电子厂(直招)",
                "th": "โรงงานอิเล็กทรอนิกส์ยานยนต์อันซาน (รับตรง)",
                "uz": "Ansan avto elektronika zavodi (To'g'ridan-to'g'ri qabul)",
                "ru": "Завод автоэлектроники в Ансане (прямой набор)",
                "ne": "अंसान अटो इलेक्ट्रोनिक्स प्लान्ट (प्रत्यक्ष भर्ती)",
                "id": "Pabrik Elektronik Otomotif Ansan (Perekrutan Langsung)",
                "mn": "Ансан авто электроникийн үйлдвэр (Шууд ажилд авна)",
                "my": "အန်ဆန်း မော်တော်ကား အီလက်ထရွန်းနစ် စက်ရုံ (တိုက်ရိုက်အလုပ်ခေါ်ယူခြင်း)",
                "km": "រោងចក្រអេឡិចត្រូនិចរថយន្តអានសាន (ជ្រើសរើសផ្ទាល់)",
                "si": "අන්සාන් මෝටර් රථ ඉලෙක්ට්‍රොනික කර්මාන්තශාලාව (සෘජු බඳවා ගැනීම)",
                "tl": "Pabrika ng Auto Electronics sa Ansan (Direktang Hiring)",
                "ko": "안산 자동차 전자공장(직영)"
            },
            "title": {
                "en": "Electronic Component Assembly / Quality Inspector (Same-day Interview Available)",
                "vi": "Công nhân lắp ráp / kiểm tra linh kiện điện tử (Có thể phỏng vấn ngay trong ngày)",
                "zh": "电子零件装配/质检作业员(可当天面试)",
                "th": "พนักงานประกอบ/ตรวจสอบชิ้นส่วนอิเล็กทรอนิกส์ (สัมภาษณ์ได้ในวันเดียวกัน)",
                "uz": "Elektron qismlarni yig'ish / sifat nazoratchisi (Shu kunning o'zida suhbat)",
                "ru": "Сборщик/контролер электронных компонентов (собеседование в день обращения)",
                "ne": "इलेक्ट्रोनिक कम्पोनेन्ट एसेम्बली / गुणस्तर निरीक्षक (सोही दिन अन्तर्वार्ता उपलब्ध)",
                "id": "Operator Perakitan Komponen Elektronik / Pemeriksaan Kualitas (Bisa Wawancara Hari Ini)",
                "mn": "Электрон эд анги угсрагч / чанарын байцаагч (Тухайн өдөр ярилцлага хийх боломжтой)",
                "my": "အီလက်ထရွန်းနစ် အစိတ်အပိုင်း တပ်ဆင်သူ / အရည်အသွေး စစ်ဆေးရေးမှူး (ထိုနေ့တွင်ပင် လူတွေ့စစ်ဆေးနိုင်သည်)",
                "km": "បុគ្គលិកដំឡើង / ត្រួតពិនិត្យគុណភាពគ្រឿងបន្លាស់អេឡិចត្រូនិច (អាចសម្ភាសន៍ក្នុងថ្ងៃតែមួយ)",
                "si": "ඉලෙක්ට්‍රොනික උපාංග එකලස් කිරීම / තත්ත්ව පරීක්ෂක (එදිනම සම්මුඛ පරීක්ෂණ පැවැත්විය හැක)",
                "tl": "Electronic Component Assembly / Quality Inspector (Pwedeng Mag-interview sa Parehong Araw)",
                "ko": "전자부품 조립·검사 사원(당일 면접 가능)"
            },
            "description": {
                "en": "Assembly line position at Ansan auto electronics plant, mainly responsible for connectors and wire harness pre-assembly. Standing work in climate-controlled cleanroom, two rotating shifts, safety training provided.",
                "vi": "Vị trí dây chuyền lắp ráp tại nhà máy điện tử ô tô Ansan, phụ trách lắp ráp đầu nối và bó dây điện. Làm việc đứng trong phòng sạch điều hòa nhiệt độ, 2 ca luân phiên, có đào tạo an toàn trước khi nhận việc.",
                "zh": "安山汽车电子工厂装配线岗位,主要负责连接器与线束预装。恒温车间站立作业,实行两班倒,入职前提供安全培训。",
                "th": "ตำแหน่งสายการประกอบที่โรงงานอิเล็กทรอนิกส์ยานยนต์อันซาน รับผิดชอบการประกอบขั้วต่อและชุดสายไฟ ทำงานยืนในห้องควบคุมอุณหภูมิ เข้ากะหมุนเวียน 2 กะ มีการฝึกอบรมความปลอดภัย",
                "uz": "Ansan avto elektronika zavodida yig'ish liniyasi, asosan konnektorlar va simlarni dastlabki yig'ish. Konditsionerli xonada tik turib ishlash, 2 smena, xavfsizlik bo'yicha trening beriladi.",
                "ru": "Позиция на линии сборки автоэлектроники в Ансане: сборка разъемов и жгутов проводов. Работа стоя в кондиционированном цехе, 2 смены, вводный инструктаж по безопасности.",
                "ne": "अंसान अटो इलेक्ट्रोनिक्स प्लान्टमा एसेम्बली लाइन पद, कनेक्टर र तार हार्नेस प्रि-एसेम्बली। वातानुकूलित सफा कोठामा उभिएर काम गर्ने, दुई सिफ्ट, सुरक्षा तालिम प्रदान गरिनेछ।",
                "id": "Posisi lini perakitan di pabrik elektronik otomotif Ansan, bertanggung jawab atas perakitan konektor dan wire harness. Bekerja berdiri di ruangan ber-AC, 2 shift bergilir, ada pelatihan keselamatan kerja.",
                "mn": "Ансаны авто электроникийн үйлдвэрт угсрах шугамын ажилтан, холбогч болон кабелийн угсралт хариуцна. Дулаан тохируулгатай өрөөнд зогсож ажиллана, 2 ээлжээр ажиллана, аюулгүй ажиллагааны сургалттай.",
                "my": "အန်ဆန်း မော်တော်ကား အီလက်ထရွန်းနစ် စက်ရုံ တပ်ဆင်ရေးလိုင်း အလုပ်နေရာ၊ ချိတ်ဆက်ကိရိယာများနှင့် ဝါယာကြိုးများ ကြိုတင်တပ်ဆင်ခြင်း။ အပူချိန်ထိန်းချုပ်ထားသော အခန်းတွင် မတ်တပ်ရပ်လုပ်ကိုင်ရမည်၊ ၂ ဆိုင်းဆင်းရမည်၊ ဘေးအန္တရာယ်ကင်းရှင်းရေး သင်တန်းပေးသည်။",
                "km": "តួនាទីខ្សែសង្វាក់ដំឡើងនៅរោងចក្រអេឡិចត្រូនិចរថយន្តអានសាន ទទួលខុសត្រូវលើការដំឡើងឧបករណ៍ភ្ជាប់ និងខ្សែភ្លើង។ ធ្វើការឈរក្នុងបន្ទប់ម៉ាស៊ីនត្រជាក់ វេនវិលជុំ ២ វេន មានការបណ្តុះបណ្តាលសុវត្ថិភាព។",
                "si": "අන්සාන් මෝටර් රථ ඉලෙක්ට්‍රොනික කර්මාන්තශාලාවේ එකලස් කිරීමේ මාර්ග තනතුර, සම්බන්ධක සහ වයර් එකලස් කිරීම. වායු සමනය කළ කාමරයක හිටගෙන වැඩ කිරීම, මුර 2ක් මාරුවෙන් මාරුවට, ආරක්ෂිත පුහුණුව ලබා දෙනු ලැබේ.",
                "tl": "Assembly line position sa pabrika ng auto electronics sa Ansan, pangunahing responsable sa pre-assembly ng mga connector at wire harness. Nakatayong trabaho sa air-conditioned room, 2 shifts, may safety training bago magsimula.",
                "ko": "안산 자동차 전자공장 조립라인 포지션, 커넥터 및 와이어 하네스 사전 조립 담당. 항온 작업장 입식 근무, 주야 2교대, 입사 전 안전교육 제공."
            },
            "duties": {
                "en": "1) Assemble parts and perform visual inspection according to SOP; 2) Record defective items and hand over to line leader; 3) Complete 5S and shift handover.",
                "vi": "1) Lắp ráp linh kiện và kiểm tra ngoại quan theo SOP; 2) Ghi nhận lỗi và bàn giao cho trưởng chuyền; 3) Thực hiện 5S và bàn giao ca.",
                "zh": "按SOP完成装配与初检,记录不良并交接,完成工位5S。",
                "th": "1) ประกอบชิ้นส่วนและตรวจสอบตาม SOP; 2) บันทึกสินค้าที่มีตำหนิและส่งมอบให้หัวหน้ากะ; 3) ทำ 5S และส่งมอบกะงาน",
                "uz": "1) SOP bo'yicha qismlarni yig'ish va vizual tekshirish; 2) Nuqsonlarni qayd etish va smena rahbariga topshirish; 3) 5S qoidalariga rioya qilish.",
                "ru": "1) Сборка и визуальный контроль по SOP; 2) фиксация дефектов и передача мастеру; 3) соблюдение 5S и передача смены.",
                "ne": "१) SOP अनुसार पार्टपुर्जा एसेम्बल र प्रारम्भिक निरीक्षण गर्ने; २) त्रुटिहरू रेकर्ड गर्ने र लाइन लिडरलाई हस्तान्तरण गर्ने; ३) 5S र सिफ्ट ह्यान्डઓभर पूरा गर्ने।",
                "id": "1) Merakit komponen dan inspeksi visual sesuai SOP; 2) Mencatat produk cacat dan serah terima ke supervisor lini; 3) Menyelesaikan 5S dan serah terima shift.",
                "mn": "1) SOP-ийн дагуу эд анги угсрах болон харааны шалгалт хийх; 2) Гологдол бүртгэж ахлагчид хүлээлгэн өгөх; 3) 5S болон ээлж хүлээлцэх.",
                "my": "၁) SOP အတိုင်း အစိတ်အပိုင်းများ တပ်ဆင်ခြင်းနှင့် ပဏာမ စစ်ဆေးခြင်း၊ ၂) ချွတ်ယွင်းချက်များ မှတ်တမ်းတင်ပြီး ခေါင်းဆောင်ထံ လွှဲပြောင်းပေးခြင်း၊ ၃) 5S ဆောင်ရွက်ခြင်း။",
                "km": "១) ដំឡើងគ្រឿងបន្លាស់ និងត្រួតពិនិត្យតាម SOP; ២) កត់ត្រាកំហុស និងប្រគល់ជូនប្រធានខ្សែសង្វាក់; ៣) អនុវត្ត 5S និងផ្ទេរវេនការងារ។",
                "si": "1) SOP අනුව කොටස් එකලස් කිරීම සහ පරීක්ෂා කිරීම; 2) දෝෂ වාර්තා කර ප්‍රධානියාට භාර දීම; 3) 5S සම්පූර්ණ කිරීම.",
                "tl": "1) Mag-assemble ng piyesa at mag-inspeksyon ayon sa SOP; 2) I-record ang depekto at i-handover sa line leader; 3) Magsagawa ng 5S at shift turnover.",
                "ko": "SOP 기반 부품 조립 및 1차 외관 검사, 불량 내역 기록 및 인계, 작업장 5S 수행."
            },
            "contact_phone": "010-1234-5678",
            "region_code": "gyeonggi",
            "original_url": "https://www.jobkorea.co.kr/Recruit/GI_Read/12345678",
            "salary_min": 120000,
            "salary_max": 180000,
            "salary_type_code": "daily",
            "work_type_codes": ["long_term", "daily"],
            "visa_codes": ["h2", "f4", "f2"],
            "benefit_codes": ["food_stay", "shuttle", "overtime_pay", "night_pay", "insurance"],
            "tag_codes": ["factory", "daily_pay", "immediate_start", "no_experience"],
            "companion_codes": ["couple_friend"],
            "income_codes": ["income_middle"],
            "shift_codes": ["shift_day", "shift_night"],
            "board_codes": ["board_meals", "board_housing"],
            "occupation_codes": ["factory_assembly"],
            "korean_req_code": "lang_basic",
            "employer_nationality": "kr",
            "status": "active",
            "visibility": "public",
        }
    ]
}

body = json.dumps(payload, ensure_ascii=False, separators=(",", ":"))
raw = f"{timestamp}.{body}".encode("utf-8")
digest = hmac.new(secret.encode("utf-8"), raw, hashlib.sha256).digest()
signature = base64.urlsafe_b64encode(digest).decode("utf-8").rstrip("=")

resp = requests.post(
    url,
    headers={
        "content-type": "application/json",
        "x-timestamp": timestamp,
        "x-signature": signature,
    },
    data=body.encode("utf-8"),
    timeout=30,
)

print(resp.status_code)
print(resp.json())

9. 请求示例(cURL / Bash)

在 Bash 或 Shell 脚本中可通过 Node.js 或 Python 快速计算签名并发起 cURL 请求:

#!/bin/bash
URL="https://<project-ref>.supabase.co/functions/v1/ingest-jobs"
SECRET="your-ingest-jobs-secret"
TIMESTAMP=$(node -e 'console.log(Date.now())')

BODY='{"jobs":[{"source_channel":"crawler","publisher_type":"organization","company_name":{"ko":"안산 전자공장","zh":"安山电子厂","en":"Ansan Electronics Plant"},"title":{"ko":"전자부품 조립 사원","zh":"电子零件装配工","en":"Electronic Component Assembly Operator"},"description":{"ko":"주야 2교대 전자부품 조립 라인 포지션입니다.","zh":"电子零件装配线岗位,两班倒。"},"contact_phone":"010-1234-5678","region_code":"gyeonggi","salary_min":120000,"salary_type_code":"daily","work_type_codes":["daily"],"occupation_codes":["factory_assembly"]}]}'

SIGNATURE=$(node -e "
  const crypto = require('crypto');
  console.log(crypto.createHmac('sha256', '$SECRET').update('$TIMESTAMP.' + '$BODY').digest('base64url'));
")

curl -X POST "$URL" \
  -H "Content-Type: application/json" \
  -H "x-timestamp: $TIMESTAMP" \
  -H "x-signature: $SIGNATURE" \
  -d "$BODY"