job-pro 1.0.49 → 1.0.51
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/didi.js +2 -1
- package/dist/index.js +10 -1
- package/dist/netease.js +2 -1
- package/dist/pingan.js +2 -1
- package/dist/sf.js +3 -2
- package/package.json +1 -1
package/dist/didi.js
CHANGED
|
@@ -374,7 +374,8 @@ export async function fetchApplicationSchema(postId) {
|
|
|
374
374
|
applyUrl,
|
|
375
375
|
submitEndpoint: "https://talent.didiglobal.com/talent-api/applyResume",
|
|
376
376
|
submitKind: "multipart-session",
|
|
377
|
-
|
|
377
|
+
endpointVerified: true,
|
|
378
|
+
submitNotes: "Didi — POST /talent-api/applyResume with session cookie. Endpoint anon-probed → HTTP 405 + Nginx page (routing table has this URL; the backend rejects POST without session/CSRF, not 404). Body shape still needs validation.",
|
|
378
379
|
}),
|
|
379
380
|
};
|
|
380
381
|
}
|
package/dist/index.js
CHANGED
|
@@ -146,6 +146,10 @@ const ENDPOINT_VERIFIED = new Set([
|
|
|
146
146
|
"moonshot", "megvii", "deepseek", "galaxyuniversal", "stepfun", "cambricon", "geely",
|
|
147
147
|
// beisen-italent (anon-probe-verified — IIS 500 template)
|
|
148
148
|
"iflytek", "vivo",
|
|
149
|
+
// multipart-session probe-verified via re-routing (1.0.50)
|
|
150
|
+
"sf",
|
|
151
|
+
// multipart-session probe-verified via 405 (route exists, method/body wrong)
|
|
152
|
+
"netease", "didi", "pingan",
|
|
149
153
|
]);
|
|
150
154
|
const HELP = `
|
|
151
155
|
job-pro — query Chinese big-tech campus recruiting from your terminal
|
|
@@ -1250,11 +1254,16 @@ async function main() {
|
|
|
1250
1254
|
// generic 500 templates are HTML but still real-route signals.
|
|
1251
1255
|
if (status >= 500)
|
|
1252
1256
|
return "verified-real";
|
|
1257
|
+
// 405 + any body = method-not-allowed = the routing table has this
|
|
1258
|
+
// URL; just the method/body is wrong. Real route. Nginx's HTML 405
|
|
1259
|
+
// page is one common form, hence the explicit handling here.
|
|
1260
|
+
if (status === 405)
|
|
1261
|
+
return "verified-real";
|
|
1253
1262
|
if (status === 404)
|
|
1254
1263
|
return isHTML ? "html-fallthrough" : "speculative-404";
|
|
1255
1264
|
if (isHTML)
|
|
1256
1265
|
return "html-fallthrough";
|
|
1257
|
-
// 401/403/200-with-error-body/
|
|
1266
|
+
// 401/403/200-with-error-body/4xx-with-business-error = real route
|
|
1258
1267
|
return "verified-real";
|
|
1259
1268
|
}
|
|
1260
1269
|
function withTimeout(p, ms) {
|
package/dist/netease.js
CHANGED
|
@@ -417,7 +417,8 @@ export async function fetchApplicationSchema(postId) {
|
|
|
417
417
|
applyUrl,
|
|
418
418
|
submitEndpoint: "https://hr.163.com/post-app/apply.do",
|
|
419
419
|
submitKind: "multipart-session",
|
|
420
|
-
|
|
420
|
+
endpointVerified: true,
|
|
421
|
+
submitNotes: "NetEase — POST /post-app/apply.do with session cookie. Endpoint anon-probed → HTTP 405 (Nginx routing table has this .do path; the servlet container rejects the request due to wrong Content-Type / missing form fields, not 404). Body shape still needs validation against a real candidate session.",
|
|
421
422
|
}),
|
|
422
423
|
};
|
|
423
424
|
}
|
package/dist/pingan.js
CHANGED
|
@@ -486,7 +486,8 @@ export async function fetchApplicationSchema(postId) {
|
|
|
486
486
|
applyUrl,
|
|
487
487
|
submitEndpoint: "https://campus.pingan.com/recruit/api/applyJob",
|
|
488
488
|
submitKind: "multipart-session",
|
|
489
|
-
|
|
489
|
+
endpointVerified: true,
|
|
490
|
+
submitNotes: "Ping An — POST /recruit/api/applyJob with session cookie. Endpoint anon-probed → HTTP 405 + Nginx page (routing table has this URL; the backend expects POST with session, not anon). Body shape still needs validation.",
|
|
490
491
|
}),
|
|
491
492
|
};
|
|
492
493
|
}
|
package/dist/sf.js
CHANGED
|
@@ -301,9 +301,10 @@ export async function fetchApplicationSchema(postId) {
|
|
|
301
301
|
postId: id,
|
|
302
302
|
jobTitle: title,
|
|
303
303
|
applyUrl,
|
|
304
|
-
submitEndpoint: "https://campus.sf-express.com/api/web/
|
|
304
|
+
submitEndpoint: "https://campus.sf-express.com/api/web/applicant/apply",
|
|
305
305
|
submitKind: "multipart-session",
|
|
306
|
-
|
|
306
|
+
endpointVerified: true,
|
|
307
|
+
submitNotes: "SF Express — POST /api/web/applicant/apply with cr-service header + GeeTest captcha + session cookie. Endpoint anon-probed → HTTP 401 from the SF gateway (real auth gate; the cr-service-web-cloud cluster distinguishes /api/web/position/* [position service] from /api/web/applicant/* and /api/web/resume/* [applicant service, auth-gated]). Body shape still needs validation against a real candidate session.",
|
|
307
308
|
}),
|
|
308
309
|
};
|
|
309
310
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "job-pro",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.51",
|
|
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",
|