job-pro 1.0.33 → 1.0.35

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
@@ -150,6 +150,7 @@ export function stageApplication(schema, profile) {
150
150
  submit_method: schema.submit_method,
151
151
  submit_kind: schema.submit_kind,
152
152
  submit_notes: schema.submit_notes,
153
+ endpoint_verified: schema.endpoint_verified,
153
154
  staged,
154
155
  unanswered_required,
155
156
  ready: unanswered_required.length === 0,
@@ -205,7 +206,12 @@ export function formatStaged(s) {
205
206
  lines.push(`job: ${s.post_id} — ${s.job_title}`);
206
207
  lines.push(`apply_url: ${s.apply_url}`);
207
208
  if (s.submit_endpoint) {
208
- lines.push(`submit: ${s.submit_method ?? "POST"} ${s.submit_endpoint}`);
209
+ const verifiedTag = s.endpoint_verified === true
210
+ ? " (verified)"
211
+ : s.submit_kind === "external"
212
+ ? ""
213
+ : " (⚠ speculative — endpoint inferred, not end-to-end verified)";
214
+ lines.push(`submit: ${s.submit_method ?? "POST"} ${s.submit_endpoint}${verifiedTag}`);
209
215
  }
210
216
  lines.push("");
211
217
  lines.push(`ready: ${s.ready ? "✓ all required fields filled" : `✗ ${s.unanswered_required.length} required field(s) unfilled`}`);
@@ -410,6 +410,7 @@ export function createAdapter(cfg) {
410
410
  submit_endpoint: `${API_ROOT}/jobs/${encodeURIComponent(id)}`,
411
411
  submit_method: "POST",
412
412
  submit_kind: "multipart-anon",
413
+ endpoint_verified: true,
413
414
  submit_notes: "Greenhouse Job Board API accepts anonymous multipart/form-data POSTs " +
414
415
  "whose field names match the questions[].fields[].name returned here.",
415
416
  questions,
package/dist/index.js CHANGED
@@ -776,6 +776,9 @@ async function runCompany(adapter, company, rawArgs) {
776
776
  }, compact);
777
777
  }
778
778
  const result = await familyExecutor(staged, session, { kind: "upstream" });
779
+ if (result.ok) {
780
+ memoryEvent("applied", `${company} ${postId} — ${staged.job_title}`);
781
+ }
779
782
  return emit({ mode: "really-submit", staged, submit_kind: kind, session_used: true, result }, compact);
780
783
  }
781
784
  if (!isGenericMultipart) {
@@ -825,6 +828,9 @@ async function runCompany(adapter, company, rawArgs) {
825
828
  }
826
829
  }
827
830
  const result = await submitApplication(staged, { kind: "upstream" }, { session });
831
+ if (result.ok) {
832
+ memoryEvent("applied", `${company} ${postId} — ${staged.job_title}`);
833
+ }
828
834
  return emit({ mode: "really-submit", staged, submit_kind: kind, session_used: !!session, result }, compact);
829
835
  }
830
836
  // Default: dry-run print, no network.
package/dist/lever.js CHANGED
@@ -432,6 +432,7 @@ export function createAdapter(cfg) {
432
432
  submit_endpoint: `${BOARD_URL}/${id}/apply`,
433
433
  submit_method: "POST",
434
434
  submit_kind: "multipart-anon",
435
+ endpoint_verified: true,
435
436
  submit_notes: "Lever apply-page accepts anonymous multipart/form-data POST whose field " +
436
437
  "names match Lever's hosted apply form (standard contact-info + each " +
437
438
  "customQuestion's auto-named field).",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "job-pro",
3
- "version": "1.0.33",
3
+ "version": "1.0.35",
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",