job-pro 1.0.75 → 1.0.77

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.
Files changed (2) hide show
  1. package/dist/index.js +21 -13
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -198,6 +198,8 @@ USAGE
198
198
  job-pro recon [--companies a,b,c] probe every adapter's submit_endpoint
199
199
  (classifies as verified-real / 404 /
200
200
  html-fallthrough / external)
201
+ [--summary] for tally only
202
+ [--compact] for JSON
201
203
  job-pro profile init [--interactive] [--force]
202
204
  write ~/.jobpro/profile.json
203
205
  --interactive fills it via prompts.
@@ -1278,6 +1280,7 @@ async function main() {
1278
1280
  // upstream renamed it) and is the same probe routine I used by hand
1279
1281
  // to populate endpoint_verified for the 15 verified adapters.
1280
1282
  const compact = args.includes("--compact");
1283
+ const summary = args.includes("--summary");
1281
1284
  const { args: aCompanies, value: companiesStr } = popFlagValue(args, "--companies");
1282
1285
  void aCompanies;
1283
1286
  const scope = companiesStr
@@ -1313,7 +1316,10 @@ async function main() {
1313
1316
  // the process never exits. Skip it explicitly; users who want to
1314
1317
  // recon lilith can scope --companies=lilith and accept the hang.
1315
1318
  if (company === "lilith") {
1316
- return { company, classification: "probe-error", detail: "skipped CDP adapter (puppeteer); pass --companies=lilith explicitly to probe" };
1319
+ // lilith is in ENDPOINT_VERIFIED but we skip the probe (would
1320
+ // hang puppeteer). Surface the already_verified status so the
1321
+ // icon shows ⚠ ("schema verified, probe skipped") not "?".
1322
+ return { company, classification: "probe-error", detail: "skipped — CDP adapter (puppeteer); pass --companies=lilith explicitly to probe", already_verified: true };
1317
1323
  }
1318
1324
  const adapter = ADAPTERS[company];
1319
1325
  if (!adapter)
@@ -1365,7 +1371,7 @@ async function main() {
1365
1371
  };
1366
1372
  }
1367
1373
  catch (err) {
1368
- return { company, submit_kind: schema.submit_kind, submit_endpoint: url, classification: "probe-error", detail: err instanceof Error ? err.message : String(err) };
1374
+ return { company, submit_kind: schema.submit_kind, submit_endpoint: url, classification: "probe-error", detail: err instanceof Error ? err.message : String(err), already_verified: schema.endpoint_verified === true };
1369
1375
  }
1370
1376
  }));
1371
1377
  if (compact) {
@@ -1385,17 +1391,19 @@ async function main() {
1385
1391
  "probe-error": "?",
1386
1392
  };
1387
1393
  console.log(`\njob-pro recon — endpoint probe across ${results.length} adapters`);
1388
- console.log(` (anon POST with {} body; schema-verified adapters tagged 🟢)\n`);
1389
- for (const r of results) {
1390
- const tag = r.status ? `${r.status}` : "—";
1391
- const vTag = r.already_verified ? " 🟢" : "";
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}`);
1394
+ if (!summary) {
1395
+ console.log(` (anon POST with {} body; schema-verified adapters tagged 🟢)\n`);
1396
+ for (const r of results) {
1397
+ const tag = r.status ? `${r.status}` : "";
1398
+ const vTag = r.already_verified ? " 🟢" : "";
1399
+ // If the schema asserts endpoint_verified: true but the anon probe
1400
+ // sees 404/HTML, the framework's response is misleading schema's
1401
+ // probe round was deeper. Surface a ⚠ icon instead of ✗ to signal
1402
+ // "schema says verified, probe disagrees".
1403
+ const probeOK = r.classification === "verified-real" || r.classification === "external";
1404
+ const icon = r.already_verified && !probeOK ? "⚠" : ICON[r.classification];
1405
+ console.log(` ${icon} ${r.company.padEnd(width)} ${tag.padEnd(4)} ${r.classification.padEnd(17)}${vTag} ${r.detail}`);
1406
+ }
1399
1407
  }
1400
1408
  console.log(`\n Tally:`);
1401
1409
  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.75",
3
+ "version": "1.0.77",
4
4
  "description": "Query Chinese big-tech campus recruiting + auto-apply from your terminal. 50 companies, all 50 live (46 via official APIs, 4 via Liepin third-party fallback). 45/50 with end-to-end verified apply endpoints; 5 structurally-external (Liepin IM × 4 + Unitree WeChat). No signup, no token, no server.",
5
5
  "homepage": "https://job.ha7ch.com",
6
6
  "repository": "https://github.com/HA7CH/job-pro",