@hadoku/jobplatform-worker 2.32.34 → 2.32.36

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.
@@ -35,6 +35,8 @@
35
35
  * profile_tombstones Their "I deleted the Default profile" markers.
36
36
  * job_states Their triage of each posting (and the packet slug
37
37
  * they sent with an application).
38
+ * job_events Their application timeline: state changes, and the
39
+ * notes, interviews and contacts they logged.
38
40
  * job_feedback Their up/down votes, one per (user, job).
39
41
  * applications Their apply queue. The runner writes these ON THEIR
40
42
  * BEHALF (ownerName), which is why the data lives here
@@ -47,6 +49,7 @@
47
49
  * applicant_profiles Their contact facts, education and work history.
48
50
  * mail_reconcile_state Reconciliation of their mailbox: cursor and counts.
49
51
  * mail_unmatched Subjects and senders of their ATS mail.
52
+ * blocked_companies The employers they hid from their feed.
50
53
  * owner_name_cache A STORED NAME: a cached display-name → userId
51
54
  * resolution. It must go, or the name keeps resolving
52
55
  * to an erased person for up to 15 minutes.
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/routes/account.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,mFAAmF;AACnF,eAAO,MAAM,aAAa,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAwBlE,CAAC;AAEF;;;GAGG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAO/F;AAyBD,eAAO,MAAM,aAAa,oCAAM,CAAC"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/routes/account.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,mFAAmF;AACnF,eAAO,MAAM,aAAa,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EA0BlE,CAAC;AAEF;;;GAGG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAO/F;AAyBD,eAAO,MAAM,aAAa,oCAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/routes/ingest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAuB9E,UAAU,YAAY;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QAAE,WAAW,EAAE,iBAAiB,CAAA;KAAE,CAAC;CAC9C;AA47BD,eAAO,MAAM,YAAY,oCAAM,CAAC"}
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/routes/ingest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAwB9E,UAAU,YAAY;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QAAE,WAAW,EAAE,iBAAiB,CAAA;KAAE,CAAC;CAC9C;AAkiCD,eAAO,MAAM,YAAY,oCAAM,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type JobsApp } from './shared.js';
2
+ export declare function registerBlockedRoutes(app: JobsApp): void;
3
+ //# sourceMappingURL=blocked.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocked.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/blocked.ts"],"names":[],"mappings":"AAmBA,OAAO,EAKN,KAAK,OAAO,EACZ,MAAM,aAAa,CAAC;AA2BrB,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAuHxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"detail.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/detail.ts"],"names":[],"mappings":"AAKA,OAAO,EAON,KAAK,OAAO,EACZ,MAAM,aAAa,CAAC;AAErB,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAgKtD"}
1
+ {"version":3,"file":"detail.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/detail.ts"],"names":[],"mappings":"AAUA,OAAO,EAON,KAAK,OAAO,EACZ,MAAM,aAAa,CAAC;AAErB,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA+JtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/feed.ts"],"names":[],"mappings":"AAUA,OAAO,EASN,KAAK,OAAO,EACZ,MAAM,aAAa,CAAC;AA8KrB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAmmBpD"}
1
+ {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/feed.ts"],"names":[],"mappings":"AAYA,OAAO,EASN,KAAK,OAAO,EACZ,MAAM,aAAa,CAAC;AAkLrB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAuqBpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA+BhD,eAAO,MAAM,SAAS,oCAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAuChD,eAAO,MAAM,SAAS,oCAAM,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type JobsApp } from './shared.js';
2
+ /** Monday 00:00 UTC of the week holding `iso`, as YYYY-MM-DD. */
3
+ export declare function weekOf(iso: string): string;
4
+ export declare function registerInsightsRoute(app: JobsApp): void;
5
+ //# sourceMappingURL=insights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/insights.ts"],"names":[],"mappings":"AAsBA,OAAO,EAKN,KAAK,OAAO,EACZ,MAAM,aAAa,CAAC;AAQrB,iEAAiE;AACjE,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK1C;AAgCD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA0KxD"}
@@ -0,0 +1,3 @@
1
+ import type { JobsApp } from './shared.js';
2
+ export declare function registerLocationsRoute(app: JobsApp): void;
3
+ //# sourceMappingURL=locations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locations.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/locations.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAY3C,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAwCzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/owner.ts"],"names":[],"mappings":"AAWA,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAoItD"}
1
+ {"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/owner.ts"],"names":[],"mappings":"AAWA,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAsItD"}
@@ -0,0 +1,3 @@
1
+ import { type JobsApp } from './shared.js';
2
+ export declare function registerPipelineRoutes(app: JobsApp): void;
3
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/pipeline.ts"],"names":[],"mappings":"AA+BA,OAAO,EAMN,KAAK,OAAO,EACZ,MAAM,aAAa,CAAC;AAyGrB,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAgTzD"}
@@ -2,6 +2,9 @@ import { type JobsApp } from './shared.js';
2
2
  /**
3
3
  * PUT / DELETE /jobs/{id}/state — the caller's triage state for one job.
4
4
  *
5
+ * A change of state is also a row on the job's timeline (job_events, kind
6
+ * 'state'); see pipeline.ts for the rest of that timeline.
7
+ *
5
8
  * gateAuthed is registered as middleware on the plain method+path first; the
6
9
  * openapi routes below then run as the next handler in the same chain. Keep
7
10
  * that order.
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAiItD"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA2JtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"tailoring.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/tailoring.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAmG9F,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAsN1D"}
1
+ {"version":3,"file":"tailoring.d.ts","sourceRoot":"","sources":["../../../src/routes/jobs/tailoring.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAmG9F,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAoO1D"}
package/dist/schemas.d.ts CHANGED
@@ -212,11 +212,15 @@ export declare const RoleTrackSchema: z.ZodEnum<{
212
212
  ic: "ic";
213
213
  manager: "manager";
214
214
  }>;
215
+ export declare const JOB_STATES: readonly ["interested", "dismissed", "saved", "applied", "interviewing", "offered", "rejected"];
215
216
  export declare const JobStateSchema: z.ZodEnum<{
216
217
  interested: "interested";
217
218
  dismissed: "dismissed";
218
219
  saved: "saved";
219
220
  applied: "applied";
221
+ interviewing: "interviewing";
222
+ offered: "offered";
223
+ rejected: "rejected";
220
224
  }>;
221
225
  export type JobStateValue = z.infer<typeof JobStateSchema>;
222
226
  export declare const JobStateReadSchema: z.ZodEnum<{
@@ -224,8 +228,14 @@ export declare const JobStateReadSchema: z.ZodEnum<{
224
228
  dismissed: "dismissed";
225
229
  saved: "saved";
226
230
  applied: "applied";
231
+ interviewing: "interviewing";
232
+ offered: "offered";
233
+ rejected: "rejected";
227
234
  new: "new";
228
235
  }>;
236
+ export type JobStateReadValue = z.infer<typeof JobStateReadSchema>;
237
+ /** D1 hands back plain TEXT; anything this code never wrote reads as 'new'. */
238
+ export declare function asJobStateRead(v: string | null | undefined): JobStateReadValue;
229
239
  export declare const ApplicationStatusSchema: z.ZodEnum<{
230
240
  failed: "failed";
231
241
  queued: "queued";
@@ -283,6 +293,9 @@ export declare const JobSummarySchema: z.ZodObject<{
283
293
  dismissed: "dismissed";
284
294
  saved: "saved";
285
295
  applied: "applied";
296
+ interviewing: "interviewing";
297
+ offered: "offered";
298
+ rejected: "rejected";
286
299
  new: "new";
287
300
  }>>;
288
301
  application_status: z.ZodNullable<z.ZodEnum<{
@@ -345,6 +358,9 @@ export declare const JobDetailSchema: z.ZodObject<{
345
358
  dismissed: "dismissed";
346
359
  saved: "saved";
347
360
  applied: "applied";
361
+ interviewing: "interviewing";
362
+ offered: "offered";
363
+ rejected: "rejected";
348
364
  new: "new";
349
365
  }>>;
350
366
  application_status: z.ZodNullable<z.ZodEnum<{
@@ -407,6 +423,9 @@ export declare const SetJobStateSchema: z.ZodObject<{
407
423
  dismissed: "dismissed";
408
424
  saved: "saved";
409
425
  applied: "applied";
426
+ interviewing: "interviewing";
427
+ offered: "offered";
428
+ rejected: "rejected";
410
429
  }>;
411
430
  variant_slug: z.ZodOptional<z.ZodString>;
412
431
  }, z.core.$strip>;
@@ -419,6 +438,9 @@ export declare const JobStateResponseSchema: z.ZodObject<{
419
438
  dismissed: "dismissed";
420
439
  saved: "saved";
421
440
  applied: "applied";
441
+ interviewing: "interviewing";
442
+ offered: "offered";
443
+ rejected: "rejected";
422
444
  new: "new";
423
445
  }>;
424
446
  updated_at: z.ZodString;
@@ -434,6 +456,9 @@ export declare const PacketSummarySchema: z.ZodObject<{
434
456
  dismissed: "dismissed";
435
457
  saved: "saved";
436
458
  applied: "applied";
459
+ interviewing: "interviewing";
460
+ offered: "offered";
461
+ rejected: "rejected";
437
462
  new: "new";
438
463
  }>;
439
464
  variant_slug: z.ZodString;
@@ -452,6 +477,9 @@ export declare const PacketsResponseSchema: z.ZodObject<{
452
477
  dismissed: "dismissed";
453
478
  saved: "saved";
454
479
  applied: "applied";
480
+ interviewing: "interviewing";
481
+ offered: "offered";
482
+ rejected: "rejected";
455
483
  new: "new";
456
484
  }>;
457
485
  variant_slug: z.ZodString;
@@ -510,6 +538,9 @@ export declare const JobsResponseSchema: z.ZodObject<{
510
538
  dismissed: "dismissed";
511
539
  saved: "saved";
512
540
  applied: "applied";
541
+ interviewing: "interviewing";
542
+ offered: "offered";
543
+ rejected: "rejected";
513
544
  new: "new";
514
545
  }>>;
515
546
  application_status: z.ZodNullable<z.ZodEnum<{
@@ -581,6 +612,9 @@ export declare const JobResponseSchema: z.ZodObject<{
581
612
  dismissed: "dismissed";
582
613
  saved: "saved";
583
614
  applied: "applied";
615
+ interviewing: "interviewing";
616
+ offered: "offered";
617
+ rejected: "rejected";
584
618
  new: "new";
585
619
  }>>;
586
620
  application_status: z.ZodNullable<z.ZodEnum<{
@@ -1085,4 +1119,337 @@ export declare const DeleteCompanyResponseSchema: z.ZodObject<{
1085
1119
  id: z.ZodString;
1086
1120
  }, z.core.$strip>;
1087
1121
  }, z.core.$strip>;
1122
+ /** Kinds a person writes; 'state' rows are written by PUT /jobs/:id/state only. */
1123
+ export declare const PERSON_EVENT_KINDS: readonly ["note", "interview", "contact", "follow_up"];
1124
+ export declare const JobEventKindSchema: z.ZodEnum<{
1125
+ state: "state";
1126
+ note: "note";
1127
+ interview: "interview";
1128
+ contact: "contact";
1129
+ follow_up: "follow_up";
1130
+ }>;
1131
+ export declare const JobEventSchema: z.ZodObject<{
1132
+ id: z.ZodNumber;
1133
+ job_id: z.ZodString;
1134
+ kind: z.ZodEnum<{
1135
+ state: "state";
1136
+ note: "note";
1137
+ interview: "interview";
1138
+ contact: "contact";
1139
+ follow_up: "follow_up";
1140
+ }>;
1141
+ from_state: z.ZodNullable<z.ZodEnum<{
1142
+ interested: "interested";
1143
+ dismissed: "dismissed";
1144
+ saved: "saved";
1145
+ applied: "applied";
1146
+ interviewing: "interviewing";
1147
+ offered: "offered";
1148
+ rejected: "rejected";
1149
+ }>>;
1150
+ to_state: z.ZodNullable<z.ZodEnum<{
1151
+ interested: "interested";
1152
+ dismissed: "dismissed";
1153
+ saved: "saved";
1154
+ applied: "applied";
1155
+ interviewing: "interviewing";
1156
+ offered: "offered";
1157
+ rejected: "rejected";
1158
+ }>>;
1159
+ note: z.ZodNullable<z.ZodString>;
1160
+ occurred_at: z.ZodString;
1161
+ created_at: z.ZodString;
1162
+ }, z.core.$strip>;
1163
+ export declare const JobEventsResponseSchema: z.ZodObject<{
1164
+ success: z.ZodLiteral<true>;
1165
+ data: z.ZodObject<{
1166
+ events: z.ZodArray<z.ZodObject<{
1167
+ id: z.ZodNumber;
1168
+ job_id: z.ZodString;
1169
+ kind: z.ZodEnum<{
1170
+ state: "state";
1171
+ note: "note";
1172
+ interview: "interview";
1173
+ contact: "contact";
1174
+ follow_up: "follow_up";
1175
+ }>;
1176
+ from_state: z.ZodNullable<z.ZodEnum<{
1177
+ interested: "interested";
1178
+ dismissed: "dismissed";
1179
+ saved: "saved";
1180
+ applied: "applied";
1181
+ interviewing: "interviewing";
1182
+ offered: "offered";
1183
+ rejected: "rejected";
1184
+ }>>;
1185
+ to_state: z.ZodNullable<z.ZodEnum<{
1186
+ interested: "interested";
1187
+ dismissed: "dismissed";
1188
+ saved: "saved";
1189
+ applied: "applied";
1190
+ interviewing: "interviewing";
1191
+ offered: "offered";
1192
+ rejected: "rejected";
1193
+ }>>;
1194
+ note: z.ZodNullable<z.ZodString>;
1195
+ occurred_at: z.ZodString;
1196
+ created_at: z.ZodString;
1197
+ }, z.core.$strip>>;
1198
+ }, z.core.$strip>;
1199
+ }, z.core.$strip>;
1200
+ export declare const JobEventResponseSchema: z.ZodObject<{
1201
+ success: z.ZodLiteral<true>;
1202
+ data: z.ZodObject<{
1203
+ event: z.ZodObject<{
1204
+ id: z.ZodNumber;
1205
+ job_id: z.ZodString;
1206
+ kind: z.ZodEnum<{
1207
+ state: "state";
1208
+ note: "note";
1209
+ interview: "interview";
1210
+ contact: "contact";
1211
+ follow_up: "follow_up";
1212
+ }>;
1213
+ from_state: z.ZodNullable<z.ZodEnum<{
1214
+ interested: "interested";
1215
+ dismissed: "dismissed";
1216
+ saved: "saved";
1217
+ applied: "applied";
1218
+ interviewing: "interviewing";
1219
+ offered: "offered";
1220
+ rejected: "rejected";
1221
+ }>>;
1222
+ to_state: z.ZodNullable<z.ZodEnum<{
1223
+ interested: "interested";
1224
+ dismissed: "dismissed";
1225
+ saved: "saved";
1226
+ applied: "applied";
1227
+ interviewing: "interviewing";
1228
+ offered: "offered";
1229
+ rejected: "rejected";
1230
+ }>>;
1231
+ note: z.ZodNullable<z.ZodString>;
1232
+ occurred_at: z.ZodString;
1233
+ created_at: z.ZodString;
1234
+ }, z.core.$strip>;
1235
+ }, z.core.$strip>;
1236
+ }, z.core.$strip>;
1237
+ export declare const AddJobEventSchema: z.ZodObject<{
1238
+ kind: z.ZodEnum<{
1239
+ note: "note";
1240
+ interview: "interview";
1241
+ contact: "contact";
1242
+ follow_up: "follow_up";
1243
+ }>;
1244
+ note: z.ZodString;
1245
+ occurred_at: z.ZodOptional<z.ZodString>;
1246
+ }, z.core.$strip>;
1247
+ export declare const PrioritySchema: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
1248
+ /** Every field optional; `null` clears one. At least one must be present. */
1249
+ export declare const SetTrackingSchema: z.ZodObject<{
1250
+ notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1251
+ priority: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>>;
1252
+ follow_up_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1253
+ contact_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1254
+ contact_email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1255
+ }, z.core.$strip>;
1256
+ export declare const TrackingSchema: z.ZodObject<{
1257
+ notes: z.ZodNullable<z.ZodString>;
1258
+ priority: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
1259
+ follow_up_at: z.ZodNullable<z.ZodString>;
1260
+ contact_name: z.ZodNullable<z.ZodString>;
1261
+ contact_email: z.ZodNullable<z.ZodString>;
1262
+ }, z.core.$strip>;
1263
+ export declare const TrackingResponseSchema: z.ZodObject<{
1264
+ success: z.ZodLiteral<true>;
1265
+ data: z.ZodObject<{
1266
+ job_id: z.ZodString;
1267
+ tracking: z.ZodObject<{
1268
+ notes: z.ZodNullable<z.ZodString>;
1269
+ priority: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
1270
+ follow_up_at: z.ZodNullable<z.ZodString>;
1271
+ contact_name: z.ZodNullable<z.ZodString>;
1272
+ contact_email: z.ZodNullable<z.ZodString>;
1273
+ }, z.core.$strip>;
1274
+ }, z.core.$strip>;
1275
+ }, z.core.$strip>;
1276
+ export declare const PipelineItemSchema: z.ZodObject<{
1277
+ job_id: z.ZodString;
1278
+ title: z.ZodString;
1279
+ company: z.ZodString;
1280
+ location: z.ZodString;
1281
+ workplace_type: z.ZodString;
1282
+ salary_min: z.ZodNullable<z.ZodNumber>;
1283
+ salary_max: z.ZodNullable<z.ZodNumber>;
1284
+ url: z.ZodString;
1285
+ posted_date: z.ZodNullable<z.ZodString>;
1286
+ state: z.ZodEnum<{
1287
+ interested: "interested";
1288
+ dismissed: "dismissed";
1289
+ saved: "saved";
1290
+ applied: "applied";
1291
+ interviewing: "interviewing";
1292
+ offered: "offered";
1293
+ rejected: "rejected";
1294
+ }>;
1295
+ updated_at: z.ZodString;
1296
+ tracking: z.ZodObject<{
1297
+ notes: z.ZodNullable<z.ZodString>;
1298
+ priority: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
1299
+ follow_up_at: z.ZodNullable<z.ZodString>;
1300
+ contact_name: z.ZodNullable<z.ZodString>;
1301
+ contact_email: z.ZodNullable<z.ZodString>;
1302
+ }, z.core.$strip>;
1303
+ variant_slug: z.ZodNullable<z.ZodString>;
1304
+ application_status: z.ZodNullable<z.ZodEnum<{
1305
+ failed: "failed";
1306
+ queued: "queued";
1307
+ filled: "filled";
1308
+ approved: "approved";
1309
+ submitted: "submitted";
1310
+ needs_manual: "needs_manual";
1311
+ job_closed: "job_closed";
1312
+ }>>;
1313
+ applied_at: z.ZodNullable<z.ZodString>;
1314
+ last_event_at: z.ZodNullable<z.ZodString>;
1315
+ }, z.core.$strip>;
1316
+ export declare const PipelineResponseSchema: z.ZodObject<{
1317
+ success: z.ZodLiteral<true>;
1318
+ data: z.ZodObject<{
1319
+ items: z.ZodArray<z.ZodObject<{
1320
+ job_id: z.ZodString;
1321
+ title: z.ZodString;
1322
+ company: z.ZodString;
1323
+ location: z.ZodString;
1324
+ workplace_type: z.ZodString;
1325
+ salary_min: z.ZodNullable<z.ZodNumber>;
1326
+ salary_max: z.ZodNullable<z.ZodNumber>;
1327
+ url: z.ZodString;
1328
+ posted_date: z.ZodNullable<z.ZodString>;
1329
+ state: z.ZodEnum<{
1330
+ interested: "interested";
1331
+ dismissed: "dismissed";
1332
+ saved: "saved";
1333
+ applied: "applied";
1334
+ interviewing: "interviewing";
1335
+ offered: "offered";
1336
+ rejected: "rejected";
1337
+ }>;
1338
+ updated_at: z.ZodString;
1339
+ tracking: z.ZodObject<{
1340
+ notes: z.ZodNullable<z.ZodString>;
1341
+ priority: z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
1342
+ follow_up_at: z.ZodNullable<z.ZodString>;
1343
+ contact_name: z.ZodNullable<z.ZodString>;
1344
+ contact_email: z.ZodNullable<z.ZodString>;
1345
+ }, z.core.$strip>;
1346
+ variant_slug: z.ZodNullable<z.ZodString>;
1347
+ application_status: z.ZodNullable<z.ZodEnum<{
1348
+ failed: "failed";
1349
+ queued: "queued";
1350
+ filled: "filled";
1351
+ approved: "approved";
1352
+ submitted: "submitted";
1353
+ needs_manual: "needs_manual";
1354
+ job_closed: "job_closed";
1355
+ }>>;
1356
+ applied_at: z.ZodNullable<z.ZodString>;
1357
+ last_event_at: z.ZodNullable<z.ZodString>;
1358
+ }, z.core.$strip>>;
1359
+ }, z.core.$strip>;
1360
+ }, z.core.$strip>;
1361
+ export declare const BlockedCompanySchema: z.ZodObject<{
1362
+ company: z.ZodString;
1363
+ company_key: z.ZodString;
1364
+ created_at: z.ZodString;
1365
+ }, z.core.$strip>;
1366
+ export declare const BlockedCompaniesResponseSchema: z.ZodObject<{
1367
+ success: z.ZodLiteral<true>;
1368
+ data: z.ZodObject<{
1369
+ companies: z.ZodArray<z.ZodObject<{
1370
+ company: z.ZodString;
1371
+ company_key: z.ZodString;
1372
+ created_at: z.ZodString;
1373
+ }, z.core.$strip>>;
1374
+ }, z.core.$strip>;
1375
+ }, z.core.$strip>;
1376
+ export declare const BlockCompanySchema: z.ZodObject<{
1377
+ company: z.ZodString;
1378
+ }, z.core.$strip>;
1379
+ export declare const BlockedCompanyResponseSchema: z.ZodObject<{
1380
+ success: z.ZodLiteral<true>;
1381
+ data: z.ZodObject<{
1382
+ company: z.ZodObject<{
1383
+ company: z.ZodString;
1384
+ company_key: z.ZodString;
1385
+ created_at: z.ZodString;
1386
+ }, z.core.$strip>;
1387
+ }, z.core.$strip>;
1388
+ }, z.core.$strip>;
1389
+ export declare const UnblockCompanyResponseSchema: z.ZodObject<{
1390
+ success: z.ZodLiteral<true>;
1391
+ data: z.ZodObject<{
1392
+ company_key: z.ZodString;
1393
+ deleted: z.ZodBoolean;
1394
+ }, z.core.$strip>;
1395
+ }, z.core.$strip>;
1396
+ export declare const InsightsSchema: z.ZodObject<{
1397
+ states: z.ZodRecord<z.ZodString, z.ZodNumber>;
1398
+ reached: z.ZodObject<{
1399
+ applied: z.ZodNumber;
1400
+ responded: z.ZodNumber;
1401
+ interviewed: z.ZodNumber;
1402
+ offered: z.ZodNumber;
1403
+ }, z.core.$strip>;
1404
+ rates: z.ZodObject<{
1405
+ response: z.ZodNullable<z.ZodNumber>;
1406
+ interview: z.ZodNullable<z.ZodNumber>;
1407
+ offer: z.ZodNullable<z.ZodNumber>;
1408
+ }, z.core.$strip>;
1409
+ weekly_applied: z.ZodArray<z.ZodObject<{
1410
+ week: z.ZodString;
1411
+ count: z.ZodNumber;
1412
+ }, z.core.$strip>>;
1413
+ workplace: z.ZodArray<z.ZodObject<{
1414
+ workplace_type: z.ZodString;
1415
+ count: z.ZodNumber;
1416
+ }, z.core.$strip>>;
1417
+ skills: z.ZodArray<z.ZodObject<{
1418
+ skill: z.ZodString;
1419
+ postings: z.ZodNumber;
1420
+ in_stack: z.ZodBoolean;
1421
+ }, z.core.$strip>>;
1422
+ skill_postings: z.ZodNumber;
1423
+ }, z.core.$strip>;
1424
+ export declare const InsightsResponseSchema: z.ZodObject<{
1425
+ success: z.ZodLiteral<true>;
1426
+ data: z.ZodObject<{
1427
+ states: z.ZodRecord<z.ZodString, z.ZodNumber>;
1428
+ reached: z.ZodObject<{
1429
+ applied: z.ZodNumber;
1430
+ responded: z.ZodNumber;
1431
+ interviewed: z.ZodNumber;
1432
+ offered: z.ZodNumber;
1433
+ }, z.core.$strip>;
1434
+ rates: z.ZodObject<{
1435
+ response: z.ZodNullable<z.ZodNumber>;
1436
+ interview: z.ZodNullable<z.ZodNumber>;
1437
+ offer: z.ZodNullable<z.ZodNumber>;
1438
+ }, z.core.$strip>;
1439
+ weekly_applied: z.ZodArray<z.ZodObject<{
1440
+ week: z.ZodString;
1441
+ count: z.ZodNumber;
1442
+ }, z.core.$strip>>;
1443
+ workplace: z.ZodArray<z.ZodObject<{
1444
+ workplace_type: z.ZodString;
1445
+ count: z.ZodNumber;
1446
+ }, z.core.$strip>>;
1447
+ skills: z.ZodArray<z.ZodObject<{
1448
+ skill: z.ZodString;
1449
+ postings: z.ZodNumber;
1450
+ in_stack: z.ZodBoolean;
1451
+ }, z.core.$strip>>;
1452
+ skill_postings: z.ZodNumber;
1453
+ }, z.core.$strip>;
1454
+ }, z.core.$strip>;
1088
1455
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAItC,eAAO,MAAM,mBAAmB;;;;iBAA8B,CAAC;AAO/D,eAAO,MAAM,oBAAoB;;;;;;;;iBAMN,CAAC;AAS5B,eAAO,MAAM,kBAAkB;;;;EAA8D,CAAC;AAC9F,eAAO,MAAM,eAAe;;;;;;;;;;;;EAAiE,CAAC;AAE9F,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcN,CAAC;AAErB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQN,CAAC;AAE3B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAyD,CAAC;AAE1F,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAElC,CAAC;AACF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEjC,CAAC;AACF,eAAO,MAAM,oBAAoB;;;;;;iBAEN,CAAC;AAM5B,eAAO,MAAM,oBAAoB;;;;;;;;iBAUN,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,eAAe;;;;EAA4D,CAAC;AAMzF,eAAO,MAAM,cAAc;;;;;EAEN,CAAC;AACtB,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAG3D,eAAO,MAAM,kBAAkB;;;;;;EAEN,CAAC;AAS1B,eAAO,MAAM,uBAAuB;;;;;;;;EAEN,CAAC;AAE/B,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2CN,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BL,CAAC;AAGxB,eAAO,MAAM,gBAAgB,6FAYnB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAMN,CAAC;AAE5B,eAAO,MAAM,yBAAyB;;;;;;;;iBAON,CAAC;AAEjC,eAAO,MAAM,iBAAiB;;;;;;;;iBAQN,CAAC;AAEzB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;iBAMN,CAAC;AAM9B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAUN,CAAC;AAE3B,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;iBAEjC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQN,CAAC;AAE1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA+D,CAAC;AAQ9F,eAAO,MAAM,qBAAqB;;;EAAwD,CAAC;AAG3F,eAAO,MAAM,kBAAkB;;;;;;;iBAiBN,CAAC;AAE1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;iBAkBN,CAAC;AAIzB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBL,CAAC;AAEjC,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAErC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAaN,CAAC;AAElC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;iBAWN,CAAC;AAMlC,eAAO,MAAM,YAAY;;;;;iBASN,CAAC;AAEpB,eAAO,MAAM,eAAe;;;;iBAwBN,CAAC;AAEvB,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAAkE,CAAC;AACpG,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAEjC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;kBASN,CAAC;AAEhC;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;iBAEL,CAAC;AAEpC,eAAO,MAAM,2BAA2B;;;;;;;;;iBAWN,CAAC;AAEnC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;iBAwEN,CAAC;AAEhC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEN,CAAC;AAMhC,eAAO,MAAM,2BAA2B;;;iBAON,CAAC;AAEnC,eAAO,MAAM,4BAA4B;;;;;;;iBAMN,CAAC;AAEpC,eAAO,MAAM,gCAAgC;;;;;iBAIN,CAAC;AAExC,eAAO,MAAM,iCAAiC;;;;;;iBAKN,CAAC;AAiBzC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;iBAgB1B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyBN,CAAC;AAE3B,eAAO,MAAM,oBAAoB;;;;;;;;iBAON,CAAC;AAM5B,eAAO,MAAM,oBAAoB;;;;;;iBAQN,CAAC;AAE5B,eAAO,MAAM,uBAAuB;;;;iBAMN,CAAC;AAE/B,eAAO,MAAM,kBAAkB;;;iBAKN,CAAC;AAE1B,eAAO,MAAM,iBAAiB;;;;;iBAON,CAAC;AAEzB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;iBAIN,CAAC;AAElC,eAAO,MAAM,kBAAkB;;;iBAKN,CAAC;AAE1B,eAAO,MAAM,kBAAkB;;;;;;;;;iBAWN,CAAC;AAE1B,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;iBAEN,CAAC;AAElC,eAAO,MAAM,8BAA8B;;;;;;;;;;;iBAEN,CAAC;AAEtC,eAAO,MAAM,+BAA+B;;;;;;;;;;;;iBAKN,CAAC;AAEvC,eAAO,MAAM,2BAA2B;;;;;;iBAEN,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Which technologies a posting asks for — the vocabulary behind GET /insights'
3
+ * skill demand.
4
+ *
5
+ * Ported from JobPulse's matcher.py (2026-11-06), trimmed to the engineering
6
+ * terms this corpus actually carries: its help-desk and IT-operations tail
7
+ * ("ticketing", "windows 10") and its catch-alls ("api", "automation") named
8
+ * something in nearly every posting and so ranked nothing. Each entry is one
9
+ * canonical name with the spellings that mean it — JobPulse's SKILL_SYNONYMS,
10
+ * folded in — so "k8s" and "Kubernetes" count once.
11
+ *
12
+ * Go is matched by context, never by the bare word: "go" is an English verb in
13
+ * every other description. GO_RE is JobPulse's GOLANG_PATTERN.
14
+ *
15
+ * Scoring does not use this. stack_fit reads TITLE_TECH in scoring.ts, which is
16
+ * a different question (what defines the role) from this one (what the
17
+ * postings you are pursuing keep asking for).
18
+ */
19
+ /** The canonical skills a text names, each once, in vocabulary order. */
20
+ export declare function extractSkills(text: string): string[];
21
+ /** Fold a person's own spelling ("K8s", "Postgres") onto the vocabulary's name. */
22
+ export declare function canonicalSkill(term: string): string;
23
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAwHH,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMpD;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD"}
@@ -0,0 +1,51 @@
1
+ -- V5 pipeline: what happens to an application after it is sent.
2
+ --
3
+ -- job_states already says where a posting stands for one person. V5 adds the
4
+ -- states past "applied" (interviewing / offered / rejected — the column is
5
+ -- free TEXT by design, see 0005, so those are a code-only change), the facts a
6
+ -- person tracks per application, and an append-only timeline.
7
+ --
8
+ -- The tracking columns live on job_states rather than a table of their own
9
+ -- because they mean nothing without a state: a posting is in someone's
10
+ -- pipeline exactly when it has a job_states row, and that row is also what
11
+ -- makes the posting immune to the daily cull (ingest.ts cullExpired), so a
12
+ -- listing that closes while you are interviewing stays readable.
13
+ --
14
+ -- priority 1 high · 2 normal · 3 low; NULL = unset
15
+ -- follow_up_at the date (YYYY-MM-DD) the person means to chase it
16
+ -- contact_name / contact_email
17
+ -- the recruiter or hiring manager, as the person wrote it down
18
+ ALTER TABLE job_states ADD COLUMN priority INTEGER;
19
+ ALTER TABLE job_states ADD COLUMN follow_up_at TEXT;
20
+ ALTER TABLE job_states ADD COLUMN contact_name TEXT;
21
+ ALTER TABLE job_states ADD COLUMN contact_email TEXT;
22
+
23
+ -- The timeline. One row per thing that happened, never updated:
24
+ --
25
+ -- kind = 'state' written by PUT /jobs/:id/state when the state CHANGES
26
+ -- (from_state → to_state; from_state NULL = was new)
27
+ -- kind = 'note' | 'interview' | 'contact' | 'follow_up'
28
+ -- written by the person (POST /jobs/:id/events), with
29
+ -- occurred_at as they give it — an interview logged the
30
+ -- evening after happened that morning.
31
+ --
32
+ -- Only person-written rows can be deleted; a state row is the record of a
33
+ -- transition and goes only with the job or the person (erase hook).
34
+ CREATE TABLE IF NOT EXISTS job_events (
35
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
36
+ job_id TEXT NOT NULL,
37
+ user_id TEXT NOT NULL,
38
+ kind TEXT NOT NULL,
39
+ from_state TEXT,
40
+ to_state TEXT,
41
+ note TEXT,
42
+ occurred_at TEXT NOT NULL,
43
+ created_at TEXT NOT NULL,
44
+ FOREIGN KEY (job_id) REFERENCES jobs(id) ON DELETE CASCADE
45
+ );
46
+
47
+ -- One job's timeline, and the cascade from jobs (job_id leads neither of the
48
+ -- other two, and an unindexed cascade is what 0027 had to fix).
49
+ CREATE INDEX IF NOT EXISTS idx_job_events_job ON job_events(job_id, user_id, occurred_at);
50
+ -- Insights: one person's transitions over time.
51
+ CREATE INDEX IF NOT EXISTS idx_job_events_user ON job_events(user_id, kind, occurred_at);