@cavuno/board 1.20.0 → 1.21.1

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/index.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  interface components {
2
2
  schemas: {
3
+ AddApplicantNoteBody: {
4
+ /** @description The note text. */
5
+ body: string;
6
+ };
3
7
  /** @description Links related to this resource. List responses only carry the `admin` URL because the public URL needs the company slug, which list-shape Convex projections do not fan out to. */
4
8
  AdminOnlyResourceLinks: {
5
9
  /**
@@ -325,6 +329,14 @@ interface components {
325
329
  displayName: string | null;
326
330
  emailVerified: boolean;
327
331
  };
332
+ BulkMoveApplicantsBody: {
333
+ applicationIds: string[];
334
+ /** @description The target stage id. */
335
+ stageId: string;
336
+ };
337
+ BulkRejectApplicantsBody: {
338
+ applicationIds: string[];
339
+ };
328
340
  CandidateAvatar: {
329
341
  /** @enum {string} */
330
342
  object: "candidate_avatar";
@@ -392,6 +404,14 @@ interface components {
392
404
  name: string;
393
405
  jobSkillId: string | null;
394
406
  };
407
+ ClaimableCompany: {
408
+ id: string;
409
+ /** @enum {string} */
410
+ object: "claimable_company";
411
+ name: string;
412
+ slug: string;
413
+ website: string | null;
414
+ };
395
415
  CompaniesBatchRequest: {
396
416
  /** @description Array of sub-operations to execute. Each entry runs independently and reports its result on the corresponding entry of the response `data` array. Sub-operation `id` values must be unique within the batch. Up to 100 entries. */
397
417
  operations: ({
@@ -482,6 +502,24 @@ interface components {
482
502
  /** @description Source slug for the market. Use it as the `:market` segment of the market-scoped company browse. */
483
503
  slug: string;
484
504
  };
505
+ CompanyMembership: {
506
+ id: string;
507
+ /** @enum {string} */
508
+ object: "company_membership";
509
+ /** @enum {string} */
510
+ status: "approved" | "pending_work_email" | "awaiting_admin" | "rejected";
511
+ role: string;
512
+ workEmail: string | null;
513
+ /** Format: date-time */
514
+ workEmailVerifiedAt: string | null;
515
+ company: {
516
+ id: string;
517
+ name: string;
518
+ slug: string | null;
519
+ website: string | null;
520
+ logoUrl: string | null;
521
+ };
522
+ };
485
523
  CompanyPublic: {
486
524
  /** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the company endpoints (e.g. `GET /v1/companies/{id}`). */
487
525
  id: string;
@@ -607,6 +645,9 @@ interface components {
607
645
  public?: string | null;
608
646
  };
609
647
  };
648
+ ConfirmWorkEmailBody: {
649
+ token: string;
650
+ };
610
651
  CreateAuthorBody: {
611
652
  /** @description URL-friendly slug for the author. Auto-generated from `name` when omitted. */
612
653
  slug?: string;
@@ -877,6 +918,12 @@ interface components {
877
918
  };
878
919
  colorMode?: string;
879
920
  };
921
+ CreatePipelineStageBody: {
922
+ /** @description The job whose pipeline gains the stage. */
923
+ jobId: string;
924
+ /** @description The stage label. */
925
+ label: string;
926
+ };
880
927
  CreateTagBody: {
881
928
  /** @description URL-friendly slug for the tag. Auto-generated from `name` when omitted. */
882
929
  slug?: string;
@@ -955,6 +1002,405 @@ interface components {
955
1002
  /** @description Space-separated list of scopes the client may request. */
956
1003
  scope: string;
957
1004
  };
1005
+ EmployerApplicant: {
1006
+ id: string;
1007
+ /** @enum {string} */
1008
+ object: "employer_applicant";
1009
+ jobId: string;
1010
+ candidateBoardUserId: string | null;
1011
+ candidateProfileId: string | null;
1012
+ candidateProfileHandle: string | null;
1013
+ candidateName: string | null;
1014
+ candidateEmail: string | null;
1015
+ candidateHeadline: string | null;
1016
+ candidateLocation: string | null;
1017
+ coverNote: string | null;
1018
+ resumeFilename: string | null;
1019
+ /** @description A short-lived signed URL to the uploaded resume, or `null`. */
1020
+ resumeUrl: string | null;
1021
+ stage: string;
1022
+ /** @description How the application arrived (e.g. `native_apply`). */
1023
+ source: string;
1024
+ /** Format: date-time */
1025
+ appliedAt: string;
1026
+ timeline: components["schemas"]["EmployerApplicantTimelineEntry"][];
1027
+ };
1028
+ EmployerApplicantTimelineEntry: {
1029
+ id: string;
1030
+ /** @description The activity kind (e.g. `stage_changed`, `note_created`, `application_created`). */
1031
+ type: string;
1032
+ actorBoardUserId: string | null;
1033
+ actorName: string | null;
1034
+ noteId: string | null;
1035
+ /** @description The note text for a `note_created` entry, else `null`. */
1036
+ noteBody: string | null;
1037
+ fromStage: string | null;
1038
+ toStage: string | null;
1039
+ /** Format: date-time */
1040
+ createdAt: string;
1041
+ };
1042
+ EmployerBillingOption: {
1043
+ id: string;
1044
+ /** @enum {string} */
1045
+ object: "employer_billing_option";
1046
+ /** @enum {string} */
1047
+ type: "subscription" | "order";
1048
+ planId: string;
1049
+ planName: string;
1050
+ /** @enum {string} */
1051
+ planKind: "subscription" | "one_time" | "bundle";
1052
+ jobsRemaining: number;
1053
+ jobsTotal: number;
1054
+ featuredRemaining: number;
1055
+ featuredTotal: number;
1056
+ /**
1057
+ * Format: date-time
1058
+ * @description When a subscription renews, or `null` for one-time orders.
1059
+ */
1060
+ renewsAt: string | null;
1061
+ };
1062
+ EmployerCheckout: {
1063
+ /** @enum {string} */
1064
+ object: "employer_checkout";
1065
+ /** @enum {string} */
1066
+ status: "checkout" | "published" | "invoice_sent";
1067
+ /** @description The Stripe Checkout / hosted-invoice URL, or `null`. */
1068
+ checkoutUrl: string | null;
1069
+ jobId: string;
1070
+ jobSlug: string | null;
1071
+ };
1072
+ EmployerCheckoutBody: {
1073
+ billing: {
1074
+ /** @enum {string} */
1075
+ type: "new";
1076
+ planId: string;
1077
+ } | {
1078
+ /** @enum {string} */
1079
+ type: "order";
1080
+ planId: string;
1081
+ id: string;
1082
+ } | {
1083
+ /** @enum {string} */
1084
+ type: "subscription";
1085
+ planId: string;
1086
+ id: string;
1087
+ };
1088
+ invoiceBilling?: {
1089
+ billingName?: string;
1090
+ /** Format: email */
1091
+ email?: string;
1092
+ address?: {
1093
+ line1?: string;
1094
+ city?: string;
1095
+ postalCode?: string;
1096
+ country?: string;
1097
+ };
1098
+ taxId?: string;
1099
+ detailFields?: {
1100
+ name: string;
1101
+ value: string;
1102
+ }[];
1103
+ };
1104
+ isFeatured?: boolean;
1105
+ /**
1106
+ * Format: uri
1107
+ * @description Where Stripe returns the buyer on success. Defaults to the board's canonical employer pages.
1108
+ */
1109
+ successUrl?: string;
1110
+ /**
1111
+ * Format: uri
1112
+ * @description Where Stripe returns the buyer on cancel.
1113
+ */
1114
+ cancelUrl?: string;
1115
+ };
1116
+ EmployerCompany: {
1117
+ id: string;
1118
+ /** @enum {string} */
1119
+ object: "employer_company";
1120
+ name: string;
1121
+ slug: string;
1122
+ website: string | null;
1123
+ description: string | null;
1124
+ summary: string | null;
1125
+ xUrl: string | null;
1126
+ linkedinUrl: string | null;
1127
+ facebookUrl: string | null;
1128
+ logoUrl: string | null;
1129
+ };
1130
+ EmployerCreateJobBody: {
1131
+ /** @description Long-form description of the role. Up to 25,000 characters. */
1132
+ description: string;
1133
+ /** @description URL-friendly slug for the job. Auto-generated from `title` when omitted. */
1134
+ slug?: string;
1135
+ /**
1136
+ * @description Employment type of the role.
1137
+ * @enum {string}
1138
+ */
1139
+ employmentType?: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other";
1140
+ /**
1141
+ * @description Whether the role is on-site, hybrid, or fully remote.
1142
+ * @enum {string}
1143
+ */
1144
+ remoteOption?: "on_site" | "hybrid" | "remote";
1145
+ /** @description Where remote candidates must hold work authorization. Each entry is the smallest relevant scope: `worldwide`, a `world_region` (EMEA / LATAM / NA / APAC), a `continent`, a `region`, a `subregion`, a `custom` group (e.g. `EU`), a `country` (ISO 3166-1 alpha-2), or a `subdivision` (ISO 3166-2). Subdivisions auto-imply their parent country in the derived `remoteWorkPermitCountryCodes` output. Worldwide is mutually exclusive with all other entries. The canonical `{type, value}` set is published at `GET /v1/taxonomies/remote-permits`. Pass `[]` to clear an existing constraint. */
1146
+ remotePermits?: {
1147
+ /** @enum {string} */
1148
+ type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
1149
+ value: string;
1150
+ }[];
1151
+ /** @description Where remote candidates must be timezone-compatible. Each entry mirrors the `remotePermits` shape (`world_region`, `continent`, `region`, `subregion`, `country`) plus `timezone` (specific IANA name with optional `plusMinus` ±N hours expansion) and `all` (every timezone — equivalent of `worldwide` for permits). The canonical `{type, value}` set is published at `GET /v1/taxonomies/remote-timezones`. **When omitted on POST**, the server auto-derives this from `remotePermits` (or `[{all,all}]` if neither was provided). **PATCH never auto-re-derives** — once set, only an explicit replacement updates the stored value, even when `remotePermits` changes. Pass `[]` to clear an existing constraint. */
1152
+ remoteTimezones?: {
1153
+ /** @enum {string} */
1154
+ type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
1155
+ value: string;
1156
+ plusMinus?: number;
1157
+ }[];
1158
+ /**
1159
+ * @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
1160
+ * @enum {string}
1161
+ */
1162
+ remoteSponsorship?: "yes" | "no" | "unknown";
1163
+ /**
1164
+ * @description Seniority level of the role.
1165
+ * @enum {string}
1166
+ */
1167
+ seniority?: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive";
1168
+ /** @description Where candidates apply. Accepts an HTTPS URL, a `mailto:` URI, or a bare email address (normalized to `mailto:` form). */
1169
+ applicationUrl: string;
1170
+ /** @description Minimum salary, in `salaryCurrency` units. */
1171
+ salaryMin?: number;
1172
+ /** @description Maximum salary, in `salaryCurrency` units. */
1173
+ salaryMax?: number;
1174
+ /** @description Three-letter ISO 4217 currency code for `salaryMin` and `salaryMax`. */
1175
+ salaryCurrency?: string;
1176
+ /**
1177
+ * @description Period the `salaryMin` and `salaryMax` figures are quoted against.
1178
+ * @enum {string}
1179
+ */
1180
+ salaryTimeframe?: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour";
1181
+ /** @description Required education credentials. Each value is one of `high_school`, `associate_degree`, `bachelor_degree`, `professional_certificate`, `postgraduate_degree`, or `no_requirements`. */
1182
+ educationRequirements?: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
1183
+ /** @description Minimum required experience, expressed in months. */
1184
+ experienceMonths?: number;
1185
+ /** @description If `true`, equivalent experience may substitute for the listed education requirements. */
1186
+ experienceInPlaceOfEducation?: boolean;
1187
+ /**
1188
+ * @description Period denominator for `inOfficeFrequency`.
1189
+ * @enum {string}
1190
+ */
1191
+ inOfficePeriod?: "per_week" | "per_month" | "per_year";
1192
+ /** @description How often the candidate must be in-office over `inOfficePeriod`. */
1193
+ inOfficeFrequency?: number;
1194
+ /** @description Physical office locations associated with the job. Each entry is forward-geocoded server-side; a country mismatch returns `400 jobs_unresolvable_location`. */
1195
+ officeLocations?: components["schemas"]["JobOfficeLocationInput"][];
1196
+ /** @description The job title. */
1197
+ title: string;
1198
+ };
1199
+ EmployerJob: components["schemas"]["EmployerJobSummary"] & {
1200
+ /** @description Long-form description of the role, or `null` if not specified. */
1201
+ description: string | null;
1202
+ /** @description Where candidates apply, or `null` if not specified. An HTTPS URL or `mailto:` URI. */
1203
+ applicationUrl: string | null;
1204
+ /** @description Hierarchical permit selection authored by the employer. The three `remoteWorkPermit*` and `remoteWorldwide` fields are read-only derived projections. */
1205
+ remotePermits: {
1206
+ type: string;
1207
+ value: string;
1208
+ }[];
1209
+ /** @description Read-only — derived from `remotePermits`. */
1210
+ remoteWorldwide: boolean | null;
1211
+ /** @description Hierarchical timezone selection. The flat `remoteAllowedTzOffsets` below is the read-only derived projection. */
1212
+ remoteTimezones: {
1213
+ type: string;
1214
+ value: string;
1215
+ plusMinus?: number;
1216
+ }[];
1217
+ /** @description Read-only — derived from `remoteTimezones`. UTC hour offsets. */
1218
+ remoteAllowedTzOffsets: number[];
1219
+ /** @description Read-only — derived from `remotePermits`. ISO 3166-1 alpha-2. */
1220
+ remoteWorkPermitCountryCodes: string[];
1221
+ /** @description Read-only — derived from `remotePermits`. ISO 3166-2. */
1222
+ remoteWorkPermitSubdivisionCodes: string[];
1223
+ /**
1224
+ * @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
1225
+ * @enum {string}
1226
+ */
1227
+ remoteSponsorship: "yes" | "no" | "unknown";
1228
+ /** @description Required education credentials. */
1229
+ educationRequirements: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
1230
+ /** @description Minimum required experience in months, or `null`. */
1231
+ experienceMonths: number | null;
1232
+ /** @description If `true`, equivalent experience may substitute for education. `null` if not specified. */
1233
+ experienceInPlaceOfEducation: boolean | null;
1234
+ /**
1235
+ * @description Period denominator for `inOfficeFrequency`, or `null`.
1236
+ * @enum {string|null}
1237
+ */
1238
+ inOfficePeriod: "per_week" | "per_month" | "per_year" | null;
1239
+ /** @description How often the candidate must be in-office, or `null`. */
1240
+ inOfficeFrequency: number | null;
1241
+ company: components["schemas"]["JobCompany"];
1242
+ /** @description Physical office locations associated with the job. */
1243
+ officeLocations: components["schemas"]["JobOfficeLocation"][];
1244
+ };
1245
+ /** @description Public-only links. The operator dashboard URL is intentionally omitted on employer responses. */
1246
+ EmployerJobLinks: {
1247
+ /**
1248
+ * Format: uri
1249
+ * @description Canonical public URL for this job, or `null` when the job has no slug or no associated company slug (so a stable URL cannot be assembled). A draft carries a URL but only resolves once published.
1250
+ */
1251
+ public: string | null;
1252
+ };
1253
+ EmployerJobSummary: {
1254
+ /** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the job endpoints (e.g. `GET /v1/jobs/{id}`). */
1255
+ id: string;
1256
+ /**
1257
+ * @description String representing the object's type. Objects of the same type share the same value.
1258
+ * @enum {string}
1259
+ */
1260
+ object: "employer_job";
1261
+ /** @description The job title. */
1262
+ title: string;
1263
+ /** @description URL-friendly slug used in public board URLs, or `null` if no slug is set. */
1264
+ slug: string | null;
1265
+ /**
1266
+ * @description Current status of the job. One of `draft`, `published`, `expired`, or `archived`.
1267
+ * @enum {string}
1268
+ */
1269
+ status: "draft" | "published" | "expired" | "archived";
1270
+ /** @description Identifier of the company the job belongs to, or `null` if no company is attached. */
1271
+ companyId: string | null;
1272
+ /**
1273
+ * @description Employment type of the role, or `null` if not specified.
1274
+ * @enum {string|null}
1275
+ */
1276
+ employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
1277
+ /**
1278
+ * @description Whether the role is on-site, hybrid, or fully remote, or `null` if not specified.
1279
+ * @enum {string|null}
1280
+ */
1281
+ remoteOption: "on_site" | "hybrid" | "remote" | null;
1282
+ /**
1283
+ * @description Seniority level of the role, or `null` if not specified.
1284
+ * @enum {string|null}
1285
+ */
1286
+ seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
1287
+ /** @description Minimum salary in `salaryCurrency` units, or `null` if not specified. */
1288
+ salaryMin: number | null;
1289
+ /** @description Maximum salary in `salaryCurrency` units, or `null` if not specified. */
1290
+ salaryMax: number | null;
1291
+ /** @description Three-letter ISO 4217 currency code for the salary range, or `null` if no salary is specified. */
1292
+ salaryCurrency: string | null;
1293
+ /**
1294
+ * @description Period the salary range is quoted against, or `null` if no salary is specified.
1295
+ * @enum {string|null}
1296
+ */
1297
+ salaryTimeframe: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour" | null;
1298
+ /** @description Whether the job appears in featured slots on the public board. */
1299
+ isFeatured: boolean;
1300
+ /** @description Time at which the job was first published, or `null` if not yet published. ISO 8601 datetime. */
1301
+ publishedAt: string | null;
1302
+ /** @description Time at which the job expires, or `null` if no expiry is set. ISO 8601 datetime. */
1303
+ expiresAt: string | null;
1304
+ /** @description Time at which the job was created. ISO 8601 datetime. */
1305
+ createdAt: string;
1306
+ /** @description Time at which the job was last updated. ISO 8601 datetime. */
1307
+ updatedAt: string;
1308
+ links: components["schemas"]["EmployerJobLinks"];
1309
+ };
1310
+ EmployerPipeline: {
1311
+ /** @enum {string} */
1312
+ object: "employer_pipeline";
1313
+ job: {
1314
+ id: string;
1315
+ title: string;
1316
+ status: string;
1317
+ /** Format: date-time */
1318
+ expiresAt: string | null;
1319
+ };
1320
+ stages: components["schemas"]["EmployerPipelineStage"][];
1321
+ applicants: components["schemas"]["EmployerApplicant"][];
1322
+ };
1323
+ EmployerPipelineStage: {
1324
+ id: string;
1325
+ /** @enum {string} */
1326
+ object: "employer_pipeline_stage";
1327
+ jobId: string;
1328
+ label: string;
1329
+ /** @description The stable system meaning (`review`/`offer`/`hired`/`rejected`), or `null` for a custom employer stage. */
1330
+ systemStage: string | null;
1331
+ isProtected: boolean;
1332
+ hidden: boolean;
1333
+ position: number;
1334
+ };
1335
+ EmployerUpdateJobBody: {
1336
+ /** @description Long-form description of the role. Up to 25,000 characters. */
1337
+ description?: string;
1338
+ /** @description URL-friendly slug for the job. Auto-generated from `title` when omitted. */
1339
+ slug?: string;
1340
+ /**
1341
+ * @description Employment type of the role.
1342
+ * @enum {string}
1343
+ */
1344
+ employmentType?: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other";
1345
+ /**
1346
+ * @description Whether the role is on-site, hybrid, or fully remote.
1347
+ * @enum {string}
1348
+ */
1349
+ remoteOption?: "on_site" | "hybrid" | "remote";
1350
+ /** @description Where remote candidates must hold work authorization. Each entry is the smallest relevant scope: `worldwide`, a `world_region` (EMEA / LATAM / NA / APAC), a `continent`, a `region`, a `subregion`, a `custom` group (e.g. `EU`), a `country` (ISO 3166-1 alpha-2), or a `subdivision` (ISO 3166-2). Subdivisions auto-imply their parent country in the derived `remoteWorkPermitCountryCodes` output. Worldwide is mutually exclusive with all other entries. The canonical `{type, value}` set is published at `GET /v1/taxonomies/remote-permits`. Pass `[]` to clear an existing constraint. */
1351
+ remotePermits?: {
1352
+ /** @enum {string} */
1353
+ type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
1354
+ value: string;
1355
+ }[];
1356
+ /** @description Where remote candidates must be timezone-compatible. Each entry mirrors the `remotePermits` shape (`world_region`, `continent`, `region`, `subregion`, `country`) plus `timezone` (specific IANA name with optional `plusMinus` ±N hours expansion) and `all` (every timezone — equivalent of `worldwide` for permits). The canonical `{type, value}` set is published at `GET /v1/taxonomies/remote-timezones`. **When omitted on POST**, the server auto-derives this from `remotePermits` (or `[{all,all}]` if neither was provided). **PATCH never auto-re-derives** — once set, only an explicit replacement updates the stored value, even when `remotePermits` changes. Pass `[]` to clear an existing constraint. */
1357
+ remoteTimezones?: {
1358
+ /** @enum {string} */
1359
+ type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
1360
+ value: string;
1361
+ plusMinus?: number;
1362
+ }[];
1363
+ /**
1364
+ * @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
1365
+ * @enum {string}
1366
+ */
1367
+ remoteSponsorship?: "yes" | "no" | "unknown";
1368
+ /**
1369
+ * @description Seniority level of the role.
1370
+ * @enum {string}
1371
+ */
1372
+ seniority?: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive";
1373
+ /** @description Where candidates apply. Accepts an HTTPS URL, a `mailto:` URI, or a bare email address (which is normalized to `mailto:` form). */
1374
+ applicationUrl?: string;
1375
+ /** @description Minimum salary, in `salaryCurrency` units. */
1376
+ salaryMin?: number;
1377
+ /** @description Maximum salary, in `salaryCurrency` units. */
1378
+ salaryMax?: number;
1379
+ /** @description Three-letter ISO 4217 currency code for `salaryMin` and `salaryMax`. */
1380
+ salaryCurrency?: string;
1381
+ /**
1382
+ * @description Period the `salaryMin` and `salaryMax` figures are quoted against.
1383
+ * @enum {string}
1384
+ */
1385
+ salaryTimeframe?: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour";
1386
+ /** @description Required education credentials. Each value is one of `high_school`, `associate_degree`, `bachelor_degree`, `professional_certificate`, `postgraduate_degree`, or `no_requirements`. */
1387
+ educationRequirements?: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
1388
+ /** @description Minimum required experience, expressed in months. */
1389
+ experienceMonths?: number;
1390
+ /** @description If `true`, equivalent experience may substitute for the listed education requirements. */
1391
+ experienceInPlaceOfEducation?: boolean;
1392
+ /**
1393
+ * @description Period denominator for `inOfficeFrequency`.
1394
+ * @enum {string}
1395
+ */
1396
+ inOfficePeriod?: "per_week" | "per_month" | "per_year";
1397
+ /** @description How often the candidate must be in-office over `inOfficePeriod`. */
1398
+ inOfficeFrequency?: number;
1399
+ /** @description Physical office locations associated with the job. Each entry is forward-geocoded server-side; a country mismatch returns `400 jobs_unresolvable_location`. */
1400
+ officeLocations?: components["schemas"]["JobOfficeLocationInput"][];
1401
+ /** @description The job title. */
1402
+ title?: string;
1403
+ };
958
1404
  FindOrCreateCompanyBody: {
959
1405
  /** @description The company's display name. */
960
1406
  name: string;
@@ -1454,6 +1900,10 @@ interface components {
1454
1900
  */
1455
1901
  purpose: "board_logo" | "board_hero" | "account_avatar" | "company_logo" | "blog_image";
1456
1902
  };
1903
+ MoveApplicantStageBody: {
1904
+ /** @description The target stage id. */
1905
+ stageId: string;
1906
+ };
1457
1907
  NotificationPreference: {
1458
1908
  /** @enum {string} */
1459
1909
  object: "notification_preference";
@@ -2090,6 +2540,12 @@ interface components {
2090
2540
  /** @description Human-readable display label. */
2091
2541
  label: string;
2092
2542
  };
2543
+ ReorderPipelineStagesBody: {
2544
+ /** @description The job whose stages are reordered. */
2545
+ jobId: string;
2546
+ /** @description Every stage id of the job, in the new order. */
2547
+ orderedStageIds: string[];
2548
+ };
2093
2549
  ResourceLinks: {
2094
2550
  /**
2095
2551
  * Format: uri
@@ -2244,6 +2700,10 @@ interface components {
2244
2700
  */
2245
2701
  limit?: number;
2246
2702
  };
2703
+ SendWorkEmailBody: {
2704
+ /** Format: email */
2705
+ workEmail: string;
2706
+ };
2247
2707
  SettingsAdsenseBody: {
2248
2708
  /** @description Whether AdSense placements are rendered on the public board. */
2249
2709
  adsenseEnabled?: boolean;
@@ -2804,6 +3264,15 @@ interface components {
2804
3264
  description?: string;
2805
3265
  sortOrder?: number;
2806
3266
  };
3267
+ UpdateEmployerCompanyBody: {
3268
+ name?: string;
3269
+ description?: string;
3270
+ website?: string;
3271
+ summary?: string;
3272
+ xUrl?: string;
3273
+ linkedinUrl?: string;
3274
+ facebookUrl?: string;
3275
+ };
2807
3276
  UpdateExperienceBody: {
2808
3277
  title?: string;
2809
3278
  companyName?: string;
@@ -2911,6 +3380,10 @@ interface components {
2911
3380
  channel: "messageEmails" | "applicationEmails";
2912
3381
  subscribed: boolean;
2913
3382
  };
3383
+ UpdatePipelineStageBody: {
3384
+ label?: string;
3385
+ hidden?: boolean;
3386
+ };
2914
3387
  UpdateSkillsBody: {
2915
3388
  skills: string[];
2916
3389
  };
@@ -3171,7 +3644,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
3171
3644
  * constant because the package is platform-neutral and cannot read
3172
3645
  * package.json at runtime.
3173
3646
  */
3174
- declare const SDK_VERSION = "1.20.0";
3647
+ declare const SDK_VERSION = "1.21.1";
3175
3648
 
3176
3649
  type BoardUser = Schemas['BoardUser'];
3177
3650
  type BoardAuthSession = Schemas['BoardAuthSession'];
@@ -3385,6 +3858,58 @@ type CandidateAvatar = Schemas['CandidateAvatar'];
3385
3858
  type NotificationPreference = Schemas['NotificationPreference'];
3386
3859
  type UpdateNotificationPreferenceBody = Schemas['UpdateNotificationPreferenceBody'];
3387
3860
  type UnsubscribeBody = Schemas['UnsubscribeBody'];
3861
+ /** The caller's tie to a company, with a computed claim `status`. */
3862
+ type CompanyMembership = Schemas['CompanyMembership'];
3863
+ /** The full editable company (`board.me.companies.update` echoes this). */
3864
+ type EmployerCompany = Schemas['EmployerCompany'];
3865
+ /** A search hit from `board.me.companies.search`. */
3866
+ type ClaimableCompany = Schemas['ClaimableCompany'];
3867
+ type CreateCompanyBody = Schemas['CreateCompanyBody'];
3868
+ type UpdateEmployerCompanyBody = Schemas['UpdateEmployerCompanyBody'];
3869
+ type SendWorkEmailBody = Schemas['SendWorkEmailBody'];
3870
+ type ConfirmWorkEmailBody = Schemas['ConfirmWorkEmailBody'];
3871
+ /** Query for `board.me.companies.search`. */
3872
+ type EmployerCompanySearchQuery = {
3873
+ q: string;
3874
+ /** 1–50. */
3875
+ limit?: number;
3876
+ };
3877
+ /** Flat list-item shape from `board.me.companies.jobs.list`. */
3878
+ type EmployerJobSummary = Schemas['EmployerJobSummary'];
3879
+ /** The full job from `board.me.companies.jobs.retrieve` + every mutation echo. */
3880
+ type EmployerJob = Schemas['EmployerJob'];
3881
+ type CreateEmployerJobBody = Schemas['EmployerCreateJobBody'];
3882
+ type UpdateEmployerJobBody = Schemas['EmployerUpdateJobBody'];
3883
+ /** Query for `board.me.companies.jobs.list`. */
3884
+ type EmployerJobsListQuery = {
3885
+ /** 1–200 (default 200). */
3886
+ limit?: number;
3887
+ };
3888
+ /** A job's full applicant pipeline (job header + stage rail + applicants). */
3889
+ type EmployerPipeline = Schemas['EmployerPipeline'];
3890
+ /** One applicant on a job's pipeline, with its activity timeline. */
3891
+ type EmployerApplicant = Schemas['EmployerApplicant'];
3892
+ /** One row of a job's stage rail. */
3893
+ type EmployerPipelineStage = Schemas['EmployerPipelineStage'];
3894
+ type MoveApplicantStageBody = Schemas['MoveApplicantStageBody'];
3895
+ type BulkMoveApplicantsBody = Schemas['BulkMoveApplicantsBody'];
3896
+ type BulkRejectApplicantsBody = Schemas['BulkRejectApplicantsBody'];
3897
+ type AddApplicantNoteBody = Schemas['AddApplicantNoteBody'];
3898
+ type CreatePipelineStageBody = Schemas['CreatePipelineStageBody'];
3899
+ type UpdatePipelineStageBody = Schemas['UpdatePipelineStageBody'];
3900
+ type ReorderPipelineStagesBody = Schemas['ReorderPipelineStagesBody'];
3901
+ /** Query for `board.me.companies.applicants.list`. */
3902
+ type EmployerPipelineQuery = {
3903
+ /** The job id whose pipeline to read. */
3904
+ job: string;
3905
+ /** Filter to a single stage (systemStage key, custom stage id, or `applied`). */
3906
+ stage?: string;
3907
+ };
3908
+ /** A reusable billing option (active subscription / pre-purchased bundle slot). */
3909
+ type EmployerBillingOption = Schemas['EmployerBillingOption'];
3910
+ /** The result of `board.me.companies.jobs.checkout`. */
3911
+ type EmployerCheckout = Schemas['EmployerCheckout'];
3912
+ type EmployerCheckoutBody = Schemas['EmployerCheckoutBody'];
3388
3913
 
3389
3914
  type JobAlertFrequency = 'daily' | 'weekly';
3390
3915
  type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
@@ -4287,6 +4812,400 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
4287
4812
  }>>;
4288
4813
  unsubscribeWithToken(body: UnsubscribeBody, options?: FetchOptions): Promise<void>;
4289
4814
  };
4815
+ companies: {
4816
+ search(query: EmployerCompanySearchQuery, options?: FetchOptions): Promise<ListEnvelope<{
4817
+ id: string;
4818
+ object: "claimable_company";
4819
+ name: string;
4820
+ slug: string;
4821
+ website: string | null;
4822
+ }>>;
4823
+ list(options?: FetchOptions): Promise<ListEnvelope<{
4824
+ id: string;
4825
+ object: "company_membership";
4826
+ status: "approved" | "pending_work_email" | "awaiting_admin" | "rejected";
4827
+ role: string;
4828
+ workEmail: string | null;
4829
+ workEmailVerifiedAt: string | null;
4830
+ company: {
4831
+ id: string;
4832
+ name: string;
4833
+ slug: string | null;
4834
+ website: string | null;
4835
+ logoUrl: string | null;
4836
+ };
4837
+ }>>;
4838
+ create(body: CreateCompanyBody, options?: FetchOptions): Promise<{
4839
+ id: string;
4840
+ object: "company_membership";
4841
+ status: "approved" | "pending_work_email" | "awaiting_admin" | "rejected";
4842
+ role: string;
4843
+ workEmail: string | null;
4844
+ workEmailVerifiedAt: string | null;
4845
+ company: {
4846
+ id: string;
4847
+ name: string;
4848
+ slug: string | null;
4849
+ website: string | null;
4850
+ logoUrl: string | null;
4851
+ };
4852
+ }>;
4853
+ claim(slug: string, options?: FetchOptions): Promise<{
4854
+ id: string;
4855
+ object: "company_membership";
4856
+ status: "approved" | "pending_work_email" | "awaiting_admin" | "rejected";
4857
+ role: string;
4858
+ workEmail: string | null;
4859
+ workEmailVerifiedAt: string | null;
4860
+ company: {
4861
+ id: string;
4862
+ name: string;
4863
+ slug: string | null;
4864
+ website: string | null;
4865
+ logoUrl: string | null;
4866
+ };
4867
+ }>;
4868
+ cancelClaim(slug: string, options?: FetchOptions): Promise<void>;
4869
+ update(slug: string, body: UpdateEmployerCompanyBody, options?: FetchOptions): Promise<{
4870
+ id: string;
4871
+ object: "employer_company";
4872
+ name: string;
4873
+ slug: string;
4874
+ website: string | null;
4875
+ description: string | null;
4876
+ summary: string | null;
4877
+ xUrl: string | null;
4878
+ linkedinUrl: string | null;
4879
+ facebookUrl: string | null;
4880
+ logoUrl: string | null;
4881
+ }>;
4882
+ workEmail: {
4883
+ verify(slug: string, body: SendWorkEmailBody, options?: FetchOptions): Promise<{
4884
+ id: string;
4885
+ object: "company_membership";
4886
+ status: "approved" | "pending_work_email" | "awaiting_admin" | "rejected";
4887
+ role: string;
4888
+ workEmail: string | null;
4889
+ workEmailVerifiedAt: string | null;
4890
+ company: {
4891
+ id: string;
4892
+ name: string;
4893
+ slug: string | null;
4894
+ website: string | null;
4895
+ logoUrl: string | null;
4896
+ };
4897
+ }>;
4898
+ confirm(slug: string, body: ConfirmWorkEmailBody, options?: FetchOptions): Promise<{
4899
+ id: string;
4900
+ object: "company_membership";
4901
+ status: "approved" | "pending_work_email" | "awaiting_admin" | "rejected";
4902
+ role: string;
4903
+ workEmail: string | null;
4904
+ workEmailVerifiedAt: string | null;
4905
+ company: {
4906
+ id: string;
4907
+ name: string;
4908
+ slug: string | null;
4909
+ website: string | null;
4910
+ logoUrl: string | null;
4911
+ };
4912
+ }>;
4913
+ };
4914
+ jobs: {
4915
+ list(slug: string, query?: EmployerJobsListQuery, options?: FetchOptions): Promise<ListEnvelope<{
4916
+ id: string;
4917
+ object: "employer_job";
4918
+ title: string;
4919
+ slug: string | null;
4920
+ status: "draft" | "published" | "expired" | "archived";
4921
+ companyId: string | null;
4922
+ employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
4923
+ remoteOption: "on_site" | "hybrid" | "remote" | null;
4924
+ seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
4925
+ salaryMin: number | null;
4926
+ salaryMax: number | null;
4927
+ salaryCurrency: string | null;
4928
+ salaryTimeframe: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour" | null;
4929
+ isFeatured: boolean;
4930
+ publishedAt: string | null;
4931
+ expiresAt: string | null;
4932
+ createdAt: string;
4933
+ updatedAt: string;
4934
+ links: components["schemas"]["EmployerJobLinks"];
4935
+ }>>;
4936
+ retrieve(slug: string, id: string, options?: FetchOptions): Promise<{
4937
+ id: string;
4938
+ object: "employer_job";
4939
+ title: string;
4940
+ slug: string | null;
4941
+ status: "draft" | "published" | "expired" | "archived";
4942
+ companyId: string | null;
4943
+ employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
4944
+ remoteOption: "on_site" | "hybrid" | "remote" | null;
4945
+ seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
4946
+ salaryMin: number | null;
4947
+ salaryMax: number | null;
4948
+ salaryCurrency: string | null;
4949
+ salaryTimeframe: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour" | null;
4950
+ isFeatured: boolean;
4951
+ publishedAt: string | null;
4952
+ expiresAt: string | null;
4953
+ createdAt: string;
4954
+ updatedAt: string;
4955
+ links: components["schemas"]["EmployerJobLinks"];
4956
+ } & {
4957
+ description: string | null;
4958
+ applicationUrl: string | null;
4959
+ remotePermits: {
4960
+ type: string;
4961
+ value: string;
4962
+ }[];
4963
+ remoteWorldwide: boolean | null;
4964
+ remoteTimezones: {
4965
+ type: string;
4966
+ value: string;
4967
+ plusMinus?: number;
4968
+ }[];
4969
+ remoteAllowedTzOffsets: number[];
4970
+ remoteWorkPermitCountryCodes: string[];
4971
+ remoteWorkPermitSubdivisionCodes: string[];
4972
+ remoteSponsorship: "yes" | "no" | "unknown";
4973
+ educationRequirements: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
4974
+ experienceMonths: number | null;
4975
+ experienceInPlaceOfEducation: boolean | null;
4976
+ inOfficePeriod: "per_week" | "per_month" | "per_year" | null;
4977
+ inOfficeFrequency: number | null;
4978
+ company: components["schemas"]["JobCompany"];
4979
+ officeLocations: components["schemas"]["JobOfficeLocation"][];
4980
+ }>;
4981
+ create(slug: string, body: CreateEmployerJobBody, options?: FetchOptions): Promise<{
4982
+ id: string;
4983
+ object: "employer_job";
4984
+ title: string;
4985
+ slug: string | null;
4986
+ status: "draft" | "published" | "expired" | "archived";
4987
+ companyId: string | null;
4988
+ employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
4989
+ remoteOption: "on_site" | "hybrid" | "remote" | null;
4990
+ seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
4991
+ salaryMin: number | null;
4992
+ salaryMax: number | null;
4993
+ salaryCurrency: string | null;
4994
+ salaryTimeframe: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour" | null;
4995
+ isFeatured: boolean;
4996
+ publishedAt: string | null;
4997
+ expiresAt: string | null;
4998
+ createdAt: string;
4999
+ updatedAt: string;
5000
+ links: components["schemas"]["EmployerJobLinks"];
5001
+ } & {
5002
+ description: string | null;
5003
+ applicationUrl: string | null;
5004
+ remotePermits: {
5005
+ type: string;
5006
+ value: string;
5007
+ }[];
5008
+ remoteWorldwide: boolean | null;
5009
+ remoteTimezones: {
5010
+ type: string;
5011
+ value: string;
5012
+ plusMinus?: number;
5013
+ }[];
5014
+ remoteAllowedTzOffsets: number[];
5015
+ remoteWorkPermitCountryCodes: string[];
5016
+ remoteWorkPermitSubdivisionCodes: string[];
5017
+ remoteSponsorship: "yes" | "no" | "unknown";
5018
+ educationRequirements: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
5019
+ experienceMonths: number | null;
5020
+ experienceInPlaceOfEducation: boolean | null;
5021
+ inOfficePeriod: "per_week" | "per_month" | "per_year" | null;
5022
+ inOfficeFrequency: number | null;
5023
+ company: components["schemas"]["JobCompany"];
5024
+ officeLocations: components["schemas"]["JobOfficeLocation"][];
5025
+ }>;
5026
+ update(slug: string, id: string, body: UpdateEmployerJobBody, options?: FetchOptions): Promise<{
5027
+ id: string;
5028
+ object: "employer_job";
5029
+ title: string;
5030
+ slug: string | null;
5031
+ status: "draft" | "published" | "expired" | "archived";
5032
+ companyId: string | null;
5033
+ employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
5034
+ remoteOption: "on_site" | "hybrid" | "remote" | null;
5035
+ seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
5036
+ salaryMin: number | null;
5037
+ salaryMax: number | null;
5038
+ salaryCurrency: string | null;
5039
+ salaryTimeframe: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour" | null;
5040
+ isFeatured: boolean;
5041
+ publishedAt: string | null;
5042
+ expiresAt: string | null;
5043
+ createdAt: string;
5044
+ updatedAt: string;
5045
+ links: components["schemas"]["EmployerJobLinks"];
5046
+ } & {
5047
+ description: string | null;
5048
+ applicationUrl: string | null;
5049
+ remotePermits: {
5050
+ type: string;
5051
+ value: string;
5052
+ }[];
5053
+ remoteWorldwide: boolean | null;
5054
+ remoteTimezones: {
5055
+ type: string;
5056
+ value: string;
5057
+ plusMinus?: number;
5058
+ }[];
5059
+ remoteAllowedTzOffsets: number[];
5060
+ remoteWorkPermitCountryCodes: string[];
5061
+ remoteWorkPermitSubdivisionCodes: string[];
5062
+ remoteSponsorship: "yes" | "no" | "unknown";
5063
+ educationRequirements: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
5064
+ experienceMonths: number | null;
5065
+ experienceInPlaceOfEducation: boolean | null;
5066
+ inOfficePeriod: "per_week" | "per_month" | "per_year" | null;
5067
+ inOfficeFrequency: number | null;
5068
+ company: components["schemas"]["JobCompany"];
5069
+ officeLocations: components["schemas"]["JobOfficeLocation"][];
5070
+ }>;
5071
+ delete(slug: string, id: string, options?: FetchOptions): Promise<void>;
5072
+ publish(slug: string, id: string, options?: FetchOptions): Promise<{
5073
+ id: string;
5074
+ object: "employer_job";
5075
+ title: string;
5076
+ slug: string | null;
5077
+ status: "draft" | "published" | "expired" | "archived";
5078
+ companyId: string | null;
5079
+ employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
5080
+ remoteOption: "on_site" | "hybrid" | "remote" | null;
5081
+ seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
5082
+ salaryMin: number | null;
5083
+ salaryMax: number | null;
5084
+ salaryCurrency: string | null;
5085
+ salaryTimeframe: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour" | null;
5086
+ isFeatured: boolean;
5087
+ publishedAt: string | null;
5088
+ expiresAt: string | null;
5089
+ createdAt: string;
5090
+ updatedAt: string;
5091
+ links: components["schemas"]["EmployerJobLinks"];
5092
+ } & {
5093
+ description: string | null;
5094
+ applicationUrl: string | null;
5095
+ remotePermits: {
5096
+ type: string;
5097
+ value: string;
5098
+ }[];
5099
+ remoteWorldwide: boolean | null;
5100
+ remoteTimezones: {
5101
+ type: string;
5102
+ value: string;
5103
+ plusMinus?: number;
5104
+ }[];
5105
+ remoteAllowedTzOffsets: number[];
5106
+ remoteWorkPermitCountryCodes: string[];
5107
+ remoteWorkPermitSubdivisionCodes: string[];
5108
+ remoteSponsorship: "yes" | "no" | "unknown";
5109
+ educationRequirements: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
5110
+ experienceMonths: number | null;
5111
+ experienceInPlaceOfEducation: boolean | null;
5112
+ inOfficePeriod: "per_week" | "per_month" | "per_year" | null;
5113
+ inOfficeFrequency: number | null;
5114
+ company: components["schemas"]["JobCompany"];
5115
+ officeLocations: components["schemas"]["JobOfficeLocation"][];
5116
+ }>;
5117
+ unpublish(slug: string, id: string, options?: FetchOptions): Promise<{
5118
+ id: string;
5119
+ object: "employer_job";
5120
+ title: string;
5121
+ slug: string | null;
5122
+ status: "draft" | "published" | "expired" | "archived";
5123
+ companyId: string | null;
5124
+ employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
5125
+ remoteOption: "on_site" | "hybrid" | "remote" | null;
5126
+ seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
5127
+ salaryMin: number | null;
5128
+ salaryMax: number | null;
5129
+ salaryCurrency: string | null;
5130
+ salaryTimeframe: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour" | null;
5131
+ isFeatured: boolean;
5132
+ publishedAt: string | null;
5133
+ expiresAt: string | null;
5134
+ createdAt: string;
5135
+ updatedAt: string;
5136
+ links: components["schemas"]["EmployerJobLinks"];
5137
+ } & {
5138
+ description: string | null;
5139
+ applicationUrl: string | null;
5140
+ remotePermits: {
5141
+ type: string;
5142
+ value: string;
5143
+ }[];
5144
+ remoteWorldwide: boolean | null;
5145
+ remoteTimezones: {
5146
+ type: string;
5147
+ value: string;
5148
+ plusMinus?: number;
5149
+ }[];
5150
+ remoteAllowedTzOffsets: number[];
5151
+ remoteWorkPermitCountryCodes: string[];
5152
+ remoteWorkPermitSubdivisionCodes: string[];
5153
+ remoteSponsorship: "yes" | "no" | "unknown";
5154
+ educationRequirements: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
5155
+ experienceMonths: number | null;
5156
+ experienceInPlaceOfEducation: boolean | null;
5157
+ inOfficePeriod: "per_week" | "per_month" | "per_year" | null;
5158
+ inOfficeFrequency: number | null;
5159
+ company: components["schemas"]["JobCompany"];
5160
+ officeLocations: components["schemas"]["JobOfficeLocation"][];
5161
+ }>;
5162
+ checkout(slug: string, id: string, body: EmployerCheckoutBody, options?: FetchOptions): Promise<{
5163
+ object: "employer_checkout";
5164
+ status: "checkout" | "published" | "invoice_sent";
5165
+ checkoutUrl: string | null;
5166
+ jobId: string;
5167
+ jobSlug: string | null;
5168
+ }>;
5169
+ };
5170
+ billingOptions: {
5171
+ list(slug: string, options?: FetchOptions): Promise<ListEnvelope<{
5172
+ id: string;
5173
+ object: "employer_billing_option";
5174
+ type: "subscription" | "order";
5175
+ planId: string;
5176
+ planName: string;
5177
+ planKind: "subscription" | "one_time" | "bundle";
5178
+ jobsRemaining: number;
5179
+ jobsTotal: number;
5180
+ featuredRemaining: number;
5181
+ featuredTotal: number;
5182
+ renewsAt: string | null;
5183
+ }>>;
5184
+ };
5185
+ applicants: {
5186
+ list(slug: string, query: EmployerPipelineQuery, options?: FetchOptions): Promise<{
5187
+ object: "employer_pipeline";
5188
+ job: {
5189
+ id: string;
5190
+ title: string;
5191
+ status: string;
5192
+ expiresAt: string | null;
5193
+ };
5194
+ stages: components["schemas"]["EmployerPipelineStage"][];
5195
+ applicants: components["schemas"]["EmployerApplicant"][];
5196
+ }>;
5197
+ move(slug: string, applicationId: string, body: MoveApplicantStageBody, options?: FetchOptions): Promise<void>;
5198
+ bulkMove(slug: string, body: BulkMoveApplicantsBody, options?: FetchOptions): Promise<void>;
5199
+ bulkReject(slug: string, body: BulkRejectApplicantsBody, options?: FetchOptions): Promise<void>;
5200
+ addNote(slug: string, applicationId: string, body: AddApplicantNoteBody, options?: FetchOptions): Promise<void>;
5201
+ };
5202
+ pipelineStages: {
5203
+ create(slug: string, body: CreatePipelineStageBody, options?: FetchOptions): Promise<void>;
5204
+ update(slug: string, stageId: string, body: UpdatePipelineStageBody, options?: FetchOptions): Promise<void>;
5205
+ remove(slug: string, stageId: string, options?: FetchOptions): Promise<void>;
5206
+ reorder(slug: string, body: ReorderPipelineStagesBody, options?: FetchOptions): Promise<void>;
5207
+ };
5208
+ };
4290
5209
  savedJobs: {
4291
5210
  list(query?: SavedJobsListQuery, options?: FetchOptions): Promise<ListEnvelope<{
4292
5211
  id: string;
@@ -5003,4 +5922,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
5003
5922
  };
5004
5923
  type BoardSdk = ReturnType<typeof createBoardClient>;
5005
5924
 
5006
- export { ACCESS_TOKEN_KEY, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type CompaniesListQuery, type CompaniesSearchBody, type CompanyCategorySalary, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanySalary, type CompanySimilarQuery, type ConsumeMagicLinkBody, type CreateBoardClientOptions, type CreateEducationBody, type CreateExperienceBody, type CreateJobPostingInput, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobPostingBillingCheck, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, type JobPostingSubscriptionEntitlements, type JobSort, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type LocationSalaryDetail, type LocationSkillsIndex, type LocationTitlesIndex, type Logger, type LoginBody, type LogoutBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type OfficeLocation, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicCompanyDetail, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type RequestMagicLinkBody, type ResetPasswordBody, SDK_VERSION, type SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type SkillLocationSalary, type SkillLocationsIndex, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyResolution, type TitleLocationSalary, type TitleLocationsIndex, type TitleSalaryDetail, type UnsubscribeBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
5925
+ export { ACCESS_TOKEN_KEY, type AddApplicantNoteBody, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, type CompaniesListQuery, type CompaniesSearchBody, type CompanyCategorySalary, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanyMembership, type CompanySalary, type CompanySimilarQuery, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmploymentType, type FetchOptions, type ForgotPasswordBody, type HandleAvailability, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobPostingBillingCheck, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, type JobPostingSubscriptionEntitlements, type JobSort, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type LocationSalaryDetail, type LocationSkillsIndex, type LocationTitlesIndex, type Logger, type LoginBody, type LogoutBody, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type OfficeLocation, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicCompanyDetail, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type ReorderPipelineStagesBody, type RequestMagicLinkBody, type ResetPasswordBody, SDK_VERSION, type SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type SendWorkEmailBody, type Seniority, type SkillLocationSalary, type SkillLocationsIndex, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TaxonomyGeo, type TaxonomyResolution, type TitleLocationSalary, type TitleLocationsIndex, type TitleSalaryDetail, type UnsubscribeBody, type UpdateCandidateProfileBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };