job-pro 1.0.80 → 1.0.82

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 +15 -10
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1288,13 +1288,16 @@ async function main() {
1288
1288
  const results = await Promise.all(scope.map(async (company) => {
1289
1289
  // lilith uses CDP (puppeteer launches Chrome) — its withTimeout
1290
1290
  // returns but the browser handle keeps the event loop alive, so
1291
- // the process never exits. Skip it explicitly; users who want to
1292
- // recon lilith can scope --companies=lilith and accept the hang.
1293
- if (company === "lilith") {
1291
+ // the process never exits during a 50-company sweep. Skip when
1292
+ // we're running a default/broad sweep; only probe lilith if the
1293
+ // user explicitly scoped --companies and lilith is the ONLY one
1294
+ // (so they're knowingly waiting for a CDP launch).
1295
+ const lilithScopedExplicit = scope.length === 1 && scope[0] === "lilith";
1296
+ if (company === "lilith" && !lilithScopedExplicit) {
1294
1297
  // lilith is in ENDPOINT_VERIFIED but we skip the probe (would
1295
1298
  // hang puppeteer). Surface the already_verified status so the
1296
1299
  // icon shows ⚠ ("schema verified, probe skipped") not "?".
1297
- return { company, classification: "probe-error", detail: "skipped — CDP adapter (puppeteer); pass --companies=lilith explicitly to probe", already_verified: true };
1300
+ return { company, classification: "probe-error", detail: "skipped — CDP adapter (puppeteer); pass --companies=lilith alone to probe", already_verified: true };
1298
1301
  }
1299
1302
  const adapter = ADAPTERS[company];
1300
1303
  if (!adapter)
@@ -1367,17 +1370,19 @@ async function main() {
1367
1370
  };
1368
1371
  console.log(`\njob-pro recon — endpoint probe across ${results.length} adapters`);
1369
1372
  if (!summary) {
1370
- console.log(` (anon POST with {} body; schema-verified adapters tagged 🟢)\n`);
1373
+ console.log(` (anon POST with {} body; schema-verified 🟢, session captured 🔐)\n`);
1371
1374
  for (const r of results) {
1372
1375
  const tag = r.status ? `${r.status}` : "—";
1373
1376
  const vTag = r.already_verified ? " 🟢" : "";
1374
- // If the schema asserts endpoint_verified: true but the anon probe
1375
- // sees 404/HTML, the framework's response is misleading schema's
1376
- // probe round was deeper. Surface a icon instead of ✗ to signal
1377
- // "schema says verified, probe disagrees".
1377
+ // Session presence (~/.jobpro/<co>.session.json). 🔐 means user
1378
+ // already captured; 🚫 means they need to run `job-pro extension`.
1379
+ // multipart-anon adapters don't need a session so no tag.
1380
+ const isAnon = r.submit_kind === "multipart-anon";
1381
+ const isExternal = r.classification === "external";
1382
+ const sessTag = isAnon || isExternal ? " " : (loadSession(r.company) ? "🔐" : "🚫");
1378
1383
  const probeOK = r.classification === "verified-real" || r.classification === "external";
1379
1384
  const icon = r.already_verified && !probeOK ? "⚠" : ICON[r.classification];
1380
- console.log(` ${icon} ${r.company.padEnd(width)} ${tag.padEnd(4)} ${r.classification.padEnd(17)}${vTag} ${r.detail}`);
1385
+ console.log(` ${icon} ${r.company.padEnd(width)} ${sessTag} ${tag.padEnd(4)} ${r.classification.padEnd(17)}${vTag} ${r.detail}`);
1381
1386
  }
1382
1387
  }
1383
1388
  console.log(`\n Tally:`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "job-pro",
3
- "version": "1.0.80",
3
+ "version": "1.0.82",
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",