job-pro 1.0.70 → 1.0.72

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/apply.js CHANGED
@@ -670,7 +670,9 @@ export async function executeFeishu3Step(staged, session, target) {
670
670
  if (!s2.response.ok) {
671
671
  return { ok: false, posted_to: upload_url, status: s2.response.status, message: "step 2 failed (upload to CDN)", steps };
672
672
  }
673
- // STEP 3 — resume/apply
673
+ // STEP 3 — final apply call. Uses staged.submit_endpoint (e.g.
674
+ // /api/v1/user/applications, verified in 1.0.62 + 1.0.63) rather than
675
+ // hardcoding, so the schema is the single source of truth.
674
676
  const applicantInfo = {};
675
677
  for (const f of staged.staged) {
676
678
  if (f.name === "name" || f.name === "email" || f.name === "phone") {
@@ -682,8 +684,10 @@ export async function executeFeishu3Step(staged, session, target) {
682
684
  attachment_id,
683
685
  applicant_info: applicantInfo,
684
686
  };
685
- const step3Url = `${apiRoot}/resume/apply`;
686
- const s3 = await doStep("resume-apply", step3Url, {
687
+ const step3Url = debug
688
+ ? target.url
689
+ : (staged.submit_endpoint ?? `${apiRoot}/user/applications`);
690
+ const s3 = await doStep("apply", step3Url, {
687
691
  method: "POST",
688
692
  headers: {
689
693
  ...sessionHeaders,
package/dist/index.js CHANGED
@@ -1389,7 +1389,13 @@ async function main() {
1389
1389
  for (const r of results) {
1390
1390
  const tag = r.status ? `${r.status}` : "—";
1391
1391
  const vTag = r.already_verified ? " 🟢" : "";
1392
- console.log(` ${ICON[r.classification]} ${r.company.padEnd(width)} ${tag.padEnd(4)} ${r.classification.padEnd(17)}${vTag} ${r.detail}`);
1392
+ // If the schema asserts endpoint_verified: true but the anon probe
1393
+ // sees 404/HTML, the framework's response is misleading — schema's
1394
+ // probe round was deeper. Surface a ⚠ icon instead of ✗ to signal
1395
+ // "schema says verified, probe disagrees".
1396
+ const probeOK = r.classification === "verified-real" || r.classification === "external";
1397
+ const icon = r.already_verified && !probeOK ? "⚠" : ICON[r.classification];
1398
+ console.log(` ${icon} ${r.company.padEnd(width)} ${tag.padEnd(4)} ${r.classification.padEnd(17)}${vTag} ${r.detail}`);
1393
1399
  }
1394
1400
  console.log(`\n Tally:`);
1395
1401
  for (const [k, v] of [...tally.entries()].sort()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "job-pro",
3
- "version": "1.0.70",
3
+ "version": "1.0.72",
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",