job-pro 1.0.62 → 1.0.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bytedance.js CHANGED
@@ -610,9 +610,10 @@ export async function fetchApplicationSchema(postId) {
610
610
  postId: id,
611
611
  jobTitle: title,
612
612
  applyUrl,
613
- submitEndpoint: "https://jobs.bytedance.com/api/v1/user_apply",
614
- submitKind: "multipart-session",
615
- submitNotes: "ByteDance — POST /api/v1/user_apply with session cookie. CAPTCHA verification required for first-time applicants. Endpoint inferred; needs validation.",
613
+ submitEndpoint: "https://jobs.bytedance.com/api/v1/user/applications",
614
+ submitKind: "feishu-3-step",
615
+ endpointVerified: true,
616
+ submitNotes: "ByteDance — POST /api/v1/user/applications. jobs.bytedance.com is an atsx-throne (Feishu) tenant, so it uses Feishu's 3-step apply flow: POST /api/v1/attachment/upload/tokens → PUT presigned URL → POST /api/v1/user/applications with { post_id, attachment_id, applicant_info }. Endpoint anon-probed → HTTP 405 (same route as Feishu adapters; verified in 1.0.62). CAPTCHA verification required for first-time applicants; session cookies via extension.",
616
617
  }),
617
618
  };
618
619
  }
package/dist/index.js CHANGED
@@ -130,6 +130,7 @@ const SUBMIT_KIND_BY_FAMILY = {
130
130
  const SUBMIT_KIND_OVERRIDES = {
131
131
  unitree: "external", // Bespoke family, but WeChat-QR — no API submit.
132
132
  lilith: "cdp-real-browser", // Feishu tenant, but needs ByteDance _signature bypass.
133
+ bytedance: "feishu-3-step", // Bespoke family but jobs.bytedance.com is atsx-throne.
133
134
  };
134
135
  function submitKindFor(adapterKey, family) {
135
136
  return SUBMIT_KIND_OVERRIDES[adapterKey] ?? SUBMIT_KIND_BY_FAMILY[family];
@@ -169,6 +170,10 @@ const ENDPOINT_VERIFIED = new Set([
169
170
  // Feishu family: /api/v1/user/applications discovered via SPA chunk 4026
170
171
  // (1.0.62). Promotes all 8 Feishu adapters since they share backend.
171
172
  "xiaomi", "nio", "minimax", "zhipu", "iqiyi", "agibot", "zerooneai", "baichuan",
173
+ // bytedance: atsx-throne tenant, same /api/v1/user/applications (1.0.63)
174
+ "bytedance",
175
+ // Beisen Wecruit family: anon probe with X-Requested-With (1.0.63)
176
+ "sensetime", "horizonrobotics",
172
177
  ]);
173
178
  const HELP = `
174
179
  job-pro — query Chinese big-tech campus recruiting from your terminal
package/dist/wecruit.js CHANGED
@@ -410,11 +410,15 @@ export function createAdapter(cfg) {
410
410
  submit_endpoint: `${SITE_ROOT}/wecruit/delivery/resume/${encodeURIComponent(ch.channelId)}`,
411
411
  submit_method: "POST",
412
412
  submit_kind: "beisen-wecruit",
413
+ endpoint_verified: true,
413
414
  submit_notes: "Beisen Wecruit apply flow: POST /wecruit/resume/upload/file/save/<SU> → " +
414
415
  "POST /wecruit/resume/info/add/<SU> → POST /wecruit/delivery/resume/<SU> with " +
415
- "{ post_id, resume_attachment_id, channel_id }. Requires candidate session " +
416
- "(WeChat OAuth or phone OTP via /pb/<channel>/login.html). Capture via extension/, " +
417
- "drop session.json under ~/.jobpro/. Multi-step submitter lands in a future iteration.",
416
+ "{ post_id, resume_attachment_id, channel_id }. Endpoint verified by reading " +
417
+ "/pb/js/vendor.js (Beisen Wecruit's vendor bundle) which lists /delivery/resume/, " +
418
+ "/resume/info/add/, /resume/upload/file/save/ etc as quoted paths. Anon-probe with " +
419
+ "X-Requested-With:XMLHttpRequest header → HTTP 200 + {type:\"error\",state:\"809\"," +
420
+ "msg:\"您尚未登录...\"} = real auth gate (without that header, Nginx returns the SPA HTML). " +
421
+ "Requires candidate session (WeChat OAuth or phone OTP via /pb/<channel>/login.html).",
418
422
  questions,
419
423
  },
420
424
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "job-pro",
3
- "version": "1.0.62",
3
+ "version": "1.0.63",
4
4
  "description": "Query Chinese big-tech campus recruiting from your terminal. 50 companies, all 50 live. 46 via each company's own API; the 4 with no public canonical feed (Hikvision, CICC, Cainiao, WeBank) surfaced via Liepin as a clearly-labeled third-party fallback. No signup, no token, no server.",
5
5
  "homepage": "https://job.ha7ch.com",
6
6
  "repository": "https://github.com/HA7CH/job-pro",