@cavuno/board 1.19.1 → 1.20.0
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.mts +559 -206
- package/dist/index.d.ts +559 -206
- package/dist/index.js +191 -1
- package/dist/index.mjs +191 -1
- package/package.json +1 -1
- package/skills/manifest.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ interface components {
|
|
|
15
15
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
16
16
|
* @enum {string}
|
|
17
17
|
*/
|
|
18
|
-
object:
|
|
18
|
+
object: "api_key";
|
|
19
19
|
/** @description Public key ID component, embedded in the key prefix as `cavuno_live_<keyId>_`. */
|
|
20
20
|
keyId: string;
|
|
21
21
|
/** @description Human-readable name for the key, shown in the dashboard. */
|
|
@@ -40,14 +40,14 @@ interface components {
|
|
|
40
40
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
41
41
|
* @enum {string}
|
|
42
42
|
*/
|
|
43
|
-
object:
|
|
43
|
+
object: "audit_log";
|
|
44
44
|
/** @description Identifier of the account the entry belongs to. */
|
|
45
45
|
accountId: string;
|
|
46
46
|
/**
|
|
47
47
|
* @description Type of actor that performed the action.
|
|
48
48
|
* @enum {string}
|
|
49
49
|
*/
|
|
50
|
-
actorType:
|
|
50
|
+
actorType: "api_key" | "oauth_token" | "user_session" | "system";
|
|
51
51
|
/** @description Identifier of the actor that performed the action. */
|
|
52
52
|
actorId: string;
|
|
53
53
|
/** @description Human-readable label for the actor, suitable for display. */
|
|
@@ -78,20 +78,20 @@ interface components {
|
|
|
78
78
|
operations: ({
|
|
79
79
|
id: string;
|
|
80
80
|
/** @enum {string} */
|
|
81
|
-
method:
|
|
81
|
+
method: "POST";
|
|
82
82
|
body?: unknown;
|
|
83
83
|
action?: string;
|
|
84
84
|
resourceId?: string;
|
|
85
85
|
} | {
|
|
86
86
|
id: string;
|
|
87
87
|
/** @enum {string} */
|
|
88
|
-
method:
|
|
88
|
+
method: "PATCH";
|
|
89
89
|
body?: unknown;
|
|
90
90
|
resourceId: string;
|
|
91
91
|
} | {
|
|
92
92
|
id: string;
|
|
93
93
|
/** @enum {string} */
|
|
94
|
-
method:
|
|
94
|
+
method: "DELETE";
|
|
95
95
|
resourceId: string;
|
|
96
96
|
})[];
|
|
97
97
|
};
|
|
@@ -102,7 +102,7 @@ interface components {
|
|
|
102
102
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
103
103
|
* @enum {string}
|
|
104
104
|
*/
|
|
105
|
-
object:
|
|
105
|
+
object: "blog_author";
|
|
106
106
|
/** @description Display name of the author. */
|
|
107
107
|
name: string;
|
|
108
108
|
/** @description URL-friendly slug for the author. */
|
|
@@ -132,14 +132,14 @@ interface components {
|
|
|
132
132
|
/** @description Time at which the author was last updated, or `null` if it has never been updated. ISO 8601 datetime. */
|
|
133
133
|
updatedAt: string | null;
|
|
134
134
|
};
|
|
135
|
-
BlogPost: components[
|
|
135
|
+
BlogPost: components["schemas"]["BlogPostSummary"] & {
|
|
136
136
|
html: string | null;
|
|
137
137
|
};
|
|
138
138
|
BlogPostSummary: {
|
|
139
139
|
/** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the blog-post endpoints (e.g. `GET /v1/blog/posts/{id}`). */
|
|
140
140
|
id: string;
|
|
141
141
|
/** @enum {string} */
|
|
142
|
-
object:
|
|
142
|
+
object: "blog_post";
|
|
143
143
|
title: string;
|
|
144
144
|
slug: string;
|
|
145
145
|
status: string;
|
|
@@ -166,20 +166,20 @@ interface components {
|
|
|
166
166
|
operations: ({
|
|
167
167
|
id: string;
|
|
168
168
|
/** @enum {string} */
|
|
169
|
-
method:
|
|
169
|
+
method: "POST";
|
|
170
170
|
body?: unknown;
|
|
171
171
|
action?: string;
|
|
172
172
|
resourceId?: string;
|
|
173
173
|
} | {
|
|
174
174
|
id: string;
|
|
175
175
|
/** @enum {string} */
|
|
176
|
-
method:
|
|
176
|
+
method: "PATCH";
|
|
177
177
|
body?: unknown;
|
|
178
178
|
resourceId: string;
|
|
179
179
|
} | {
|
|
180
180
|
id: string;
|
|
181
181
|
/** @enum {string} */
|
|
182
|
-
method:
|
|
182
|
+
method: "DELETE";
|
|
183
183
|
resourceId: string;
|
|
184
184
|
})[];
|
|
185
185
|
};
|
|
@@ -190,7 +190,7 @@ interface components {
|
|
|
190
190
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
191
191
|
* @enum {string}
|
|
192
192
|
*/
|
|
193
|
-
object:
|
|
193
|
+
object: "blog_tag";
|
|
194
194
|
/** @description Display name of the tag. */
|
|
195
195
|
name: string;
|
|
196
196
|
/** @description URL-friendly slug for the tag. */
|
|
@@ -210,7 +210,7 @@ interface components {
|
|
|
210
210
|
};
|
|
211
211
|
BoardAccessGrant: {
|
|
212
212
|
/** @enum {string} */
|
|
213
|
-
object:
|
|
213
|
+
object: "board_access_grant";
|
|
214
214
|
/** @description The board-access grant. Send it as the `X-Board-Access` header on subsequent content reads to pass the password wall. */
|
|
215
215
|
token: string;
|
|
216
216
|
};
|
|
@@ -231,9 +231,9 @@ interface components {
|
|
|
231
231
|
};
|
|
232
232
|
BoardAuthOAuthAuthorizationUrl: {
|
|
233
233
|
/** @enum {string} */
|
|
234
|
-
object:
|
|
234
|
+
object: "oauth_authorization_url";
|
|
235
235
|
/** @enum {string} */
|
|
236
|
-
provider:
|
|
236
|
+
provider: "google" | "linkedin";
|
|
237
237
|
/** Format: uri */
|
|
238
238
|
authorizeUrl: string;
|
|
239
239
|
};
|
|
@@ -248,12 +248,12 @@ interface components {
|
|
|
248
248
|
* @description Which role profile to create on the board.
|
|
249
249
|
* @enum {string}
|
|
250
250
|
*/
|
|
251
|
-
role:
|
|
251
|
+
role: "candidate" | "employer";
|
|
252
252
|
/**
|
|
253
253
|
* @description Registration method. Only `emailpass` is supported.
|
|
254
254
|
* @enum {string}
|
|
255
255
|
*/
|
|
256
|
-
method:
|
|
256
|
+
method: "emailpass";
|
|
257
257
|
/** Format: email */
|
|
258
258
|
email: string;
|
|
259
259
|
/** @description Minimum 8 characters. */
|
|
@@ -273,21 +273,21 @@ interface components {
|
|
|
273
273
|
};
|
|
274
274
|
BoardAuthSession: {
|
|
275
275
|
/** @enum {string} */
|
|
276
|
-
object:
|
|
276
|
+
object: "board_auth_session";
|
|
277
277
|
/** @description Short-lived JWT (1 hour). Send as `Authorization: Bearer`. */
|
|
278
278
|
accessToken: string;
|
|
279
279
|
/** @description Opaque single-use refresh token (30 days). Each refresh returns a replacement; a reused token is rejected. */
|
|
280
280
|
refreshToken: string;
|
|
281
281
|
/** @description Access-token expiry, epoch milliseconds. */
|
|
282
282
|
expiresAt: number;
|
|
283
|
-
boardUser: components[
|
|
283
|
+
boardUser: components["schemas"]["BoardUser"];
|
|
284
284
|
};
|
|
285
285
|
BoardAuthVerifyEmailBody: {
|
|
286
286
|
token: string;
|
|
287
287
|
};
|
|
288
288
|
BoardSeo: {
|
|
289
289
|
/** @enum {string} */
|
|
290
|
-
object:
|
|
290
|
+
object: "board_seo";
|
|
291
291
|
/** @description Verbatim `ads.txt` content, or `null` when not configured. */
|
|
292
292
|
adsTxt: string | null;
|
|
293
293
|
/** @description IndexNow key-file content, or `null` when not configured. */
|
|
@@ -318,36 +318,103 @@ interface components {
|
|
|
318
318
|
/** @description Board user ID. */
|
|
319
319
|
id: string;
|
|
320
320
|
/** @enum {string} */
|
|
321
|
-
object:
|
|
321
|
+
object: "board_user";
|
|
322
322
|
/** @enum {string} */
|
|
323
|
-
role:
|
|
323
|
+
role: "candidate" | "employer";
|
|
324
324
|
email: string;
|
|
325
325
|
displayName: string | null;
|
|
326
326
|
emailVerified: boolean;
|
|
327
327
|
};
|
|
328
|
+
CandidateAvatar: {
|
|
329
|
+
/** @enum {string} */
|
|
330
|
+
object: "candidate_avatar";
|
|
331
|
+
avatarUrl: string | null;
|
|
332
|
+
};
|
|
333
|
+
CandidateEducation: {
|
|
334
|
+
id: string;
|
|
335
|
+
/** @enum {string} */
|
|
336
|
+
object: "candidate_education";
|
|
337
|
+
institutionName: string;
|
|
338
|
+
institutionUrl: string | null;
|
|
339
|
+
degree: string | null;
|
|
340
|
+
fieldOfStudy: string | null;
|
|
341
|
+
grade: string | null;
|
|
342
|
+
activitiesAndSocieties: string | null;
|
|
343
|
+
startDate: string | null;
|
|
344
|
+
endDate: string | null;
|
|
345
|
+
description: string | null;
|
|
346
|
+
sortOrder: number;
|
|
347
|
+
};
|
|
348
|
+
CandidateExperience: {
|
|
349
|
+
id: string;
|
|
350
|
+
/** @enum {string} */
|
|
351
|
+
object: "candidate_experience";
|
|
352
|
+
title: string;
|
|
353
|
+
companyName: string;
|
|
354
|
+
companyUrl: string | null;
|
|
355
|
+
location: string | null;
|
|
356
|
+
employmentType: string | null;
|
|
357
|
+
locationType: string | null;
|
|
358
|
+
foundVia: string | null;
|
|
359
|
+
startDate: string;
|
|
360
|
+
endDate: string | null;
|
|
361
|
+
description: string | null;
|
|
362
|
+
sortOrder: number;
|
|
363
|
+
experienceSkills: string[];
|
|
364
|
+
};
|
|
365
|
+
CandidateLanguage: {
|
|
366
|
+
/** @enum {string} */
|
|
367
|
+
object: "candidate_language";
|
|
368
|
+
name: string;
|
|
369
|
+
proficiency: string;
|
|
370
|
+
};
|
|
371
|
+
CandidateProfile: {
|
|
372
|
+
id: string;
|
|
373
|
+
/** @enum {string} */
|
|
374
|
+
object: "candidate_profile";
|
|
375
|
+
displayName: string | null;
|
|
376
|
+
bio: string | null;
|
|
377
|
+
avatarUrl: string | null;
|
|
378
|
+
handle: string | null;
|
|
379
|
+
headline: string | null;
|
|
380
|
+
location: string | null;
|
|
381
|
+
/** @enum {string} */
|
|
382
|
+
profileVisibility: "hidden" | "logged_in_only" | "public";
|
|
383
|
+
/** @enum {string} */
|
|
384
|
+
jobSearchStatus: "actively_looking" | "open_to_offers" | "not_looking";
|
|
385
|
+
/** @enum {string} */
|
|
386
|
+
jobSearchStatusVisibleTo: "everyone" | "employers_only";
|
|
387
|
+
openToRelocate: boolean;
|
|
388
|
+
};
|
|
389
|
+
CandidateSkill: {
|
|
390
|
+
/** @enum {string} */
|
|
391
|
+
object: "candidate_skill";
|
|
392
|
+
name: string;
|
|
393
|
+
jobSkillId: string | null;
|
|
394
|
+
};
|
|
328
395
|
CompaniesBatchRequest: {
|
|
329
396
|
/** @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. */
|
|
330
397
|
operations: ({
|
|
331
398
|
id: string;
|
|
332
399
|
/** @enum {string} */
|
|
333
|
-
method:
|
|
400
|
+
method: "POST";
|
|
334
401
|
body?: unknown;
|
|
335
402
|
action?: string;
|
|
336
403
|
resourceId?: string;
|
|
337
404
|
} | {
|
|
338
405
|
id: string;
|
|
339
406
|
/** @enum {string} */
|
|
340
|
-
method:
|
|
407
|
+
method: "PATCH";
|
|
341
408
|
body?: unknown;
|
|
342
409
|
resourceId: string;
|
|
343
410
|
} | {
|
|
344
411
|
id: string;
|
|
345
412
|
/** @enum {string} */
|
|
346
|
-
method:
|
|
413
|
+
method: "DELETE";
|
|
347
414
|
resourceId: string;
|
|
348
415
|
})[];
|
|
349
416
|
};
|
|
350
|
-
Company: components[
|
|
417
|
+
Company: components["schemas"]["CompanySummary"] & {
|
|
351
418
|
/** @description Long-form description of the company, or `null` if not set. */
|
|
352
419
|
description: string | null;
|
|
353
420
|
/** @description Whether automated backfill of jobs from this company is supported, or `null` if not yet evaluated. */
|
|
@@ -359,7 +426,7 @@ interface components {
|
|
|
359
426
|
};
|
|
360
427
|
CompanyCategorySalary: {
|
|
361
428
|
/** @enum {string} */
|
|
362
|
-
object:
|
|
429
|
+
object: "company_category_salary";
|
|
363
430
|
categorySourceSlug: string;
|
|
364
431
|
categoryCanonicalSlug: string;
|
|
365
432
|
companyName: string;
|
|
@@ -403,7 +470,7 @@ interface components {
|
|
|
403
470
|
};
|
|
404
471
|
CompanyMarket: {
|
|
405
472
|
/** @enum {string} */
|
|
406
|
-
object:
|
|
473
|
+
object: "company_market";
|
|
407
474
|
slug: string;
|
|
408
475
|
name: string;
|
|
409
476
|
/** @description Number of companies on the board in this market. */
|
|
@@ -422,7 +489,7 @@ interface components {
|
|
|
422
489
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
423
490
|
* @enum {string}
|
|
424
491
|
*/
|
|
425
|
-
object:
|
|
492
|
+
object: "public_company";
|
|
426
493
|
/** @description Display name of the company. */
|
|
427
494
|
name: string;
|
|
428
495
|
/** @description URL-friendly slug for the company. */
|
|
@@ -437,15 +504,15 @@ interface components {
|
|
|
437
504
|
jobCount: number;
|
|
438
505
|
/** @description Number of currently-published, non-expired jobs at this company. */
|
|
439
506
|
publishedJobCount: number;
|
|
440
|
-
links: components[
|
|
507
|
+
links: components["schemas"]["PublicCompanyLinks"];
|
|
441
508
|
};
|
|
442
|
-
CompanyPublicDetail: components[
|
|
509
|
+
CompanyPublicDetail: components["schemas"]["CompanyPublic"] & {
|
|
443
510
|
/** @description Markets (sectors) this company operates in, each with its source slug. Empty when the company has no markets. */
|
|
444
|
-
markets: components[
|
|
511
|
+
markets: components["schemas"]["CompanyMarketRef"][];
|
|
445
512
|
};
|
|
446
513
|
CompanySalary: {
|
|
447
514
|
/** @enum {string} */
|
|
448
|
-
object:
|
|
515
|
+
object: "company_salary";
|
|
449
516
|
companyName: string;
|
|
450
517
|
companySlug: string;
|
|
451
518
|
companyLogoPath: string | null;
|
|
@@ -510,7 +577,7 @@ interface components {
|
|
|
510
577
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
511
578
|
* @enum {string}
|
|
512
579
|
*/
|
|
513
|
-
object:
|
|
580
|
+
object: "company";
|
|
514
581
|
/** @description Display name of the company. */
|
|
515
582
|
name: string;
|
|
516
583
|
/** @description URL-friendly slug for the company. */
|
|
@@ -532,7 +599,7 @@ interface components {
|
|
|
532
599
|
/** @description Time at which the company was last updated, or `null` if it has never been updated. ISO 8601 datetime. */
|
|
533
600
|
updatedAt: string | null;
|
|
534
601
|
/** @description Public + admin URLs for this company. `public` may be `null` if the company lacks a slug. */
|
|
535
|
-
links: components[
|
|
602
|
+
links: components["schemas"]["ResourceLinks"] & {
|
|
536
603
|
/**
|
|
537
604
|
* Format: uri
|
|
538
605
|
* @description Canonical public URL for this company on the board, or `null` when no slug is set.
|
|
@@ -554,7 +621,7 @@ interface components {
|
|
|
554
621
|
* @description Author visibility status. One of `active` or `inactive`.
|
|
555
622
|
* @enum {string}
|
|
556
623
|
*/
|
|
557
|
-
status?:
|
|
624
|
+
status?: "active" | "inactive";
|
|
558
625
|
/** @description Storage ID of an uploaded avatar image (from `POST /v1/media/upload`). Pass `null` to clear an existing avatar. */
|
|
559
626
|
avatarStorageId?: string | null;
|
|
560
627
|
/** @description The author's personal website URL. Normalized to a canonical URL when stored. */
|
|
@@ -592,7 +659,7 @@ interface components {
|
|
|
592
659
|
publishedAt?: string;
|
|
593
660
|
title: string;
|
|
594
661
|
/** @enum {string} */
|
|
595
|
-
status?:
|
|
662
|
+
status?: "draft" | "scheduled" | "published";
|
|
596
663
|
};
|
|
597
664
|
CreateCompanyBody: {
|
|
598
665
|
/** @description Public company website URL. Normalized to a canonical apex domain when stored. */
|
|
@@ -612,6 +679,31 @@ interface components {
|
|
|
612
679
|
/** @description URL-friendly slug for the company. Auto-generated from `name` when omitted. */
|
|
613
680
|
slug?: string;
|
|
614
681
|
};
|
|
682
|
+
CreateEducationBody: {
|
|
683
|
+
institutionName: string;
|
|
684
|
+
institutionUrl?: string;
|
|
685
|
+
degree?: string;
|
|
686
|
+
fieldOfStudy?: string;
|
|
687
|
+
grade?: string;
|
|
688
|
+
activitiesAndSocieties?: string;
|
|
689
|
+
startDate?: string;
|
|
690
|
+
endDate?: string;
|
|
691
|
+
description?: string;
|
|
692
|
+
sortOrder?: number;
|
|
693
|
+
};
|
|
694
|
+
CreateExperienceBody: {
|
|
695
|
+
title: string;
|
|
696
|
+
companyName: string;
|
|
697
|
+
startDate: string;
|
|
698
|
+
companyUrl?: string;
|
|
699
|
+
location?: string;
|
|
700
|
+
employmentType?: string;
|
|
701
|
+
locationType?: string;
|
|
702
|
+
foundVia?: string;
|
|
703
|
+
endDate?: string;
|
|
704
|
+
description?: string;
|
|
705
|
+
sortOrder?: number;
|
|
706
|
+
};
|
|
615
707
|
CreateJobBody: {
|
|
616
708
|
/** @description The ID of an existing company. Provide either `companyId` or `company`, not both. */
|
|
617
709
|
companyId?: string;
|
|
@@ -623,22 +715,22 @@ interface components {
|
|
|
623
715
|
* @description Employment type of the role.
|
|
624
716
|
* @enum {string}
|
|
625
717
|
*/
|
|
626
|
-
employmentType?:
|
|
718
|
+
employmentType?: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other";
|
|
627
719
|
/**
|
|
628
720
|
* @description Whether the role is on-site, hybrid, or fully remote.
|
|
629
721
|
* @enum {string}
|
|
630
722
|
*/
|
|
631
|
-
remoteOption?:
|
|
723
|
+
remoteOption?: "on_site" | "hybrid" | "remote";
|
|
632
724
|
/** @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. */
|
|
633
725
|
remotePermits?: {
|
|
634
726
|
/** @enum {string} */
|
|
635
|
-
type:
|
|
727
|
+
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
636
728
|
value: string;
|
|
637
729
|
}[];
|
|
638
730
|
/** @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. */
|
|
639
731
|
remoteTimezones?: {
|
|
640
732
|
/** @enum {string} */
|
|
641
|
-
type:
|
|
733
|
+
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
642
734
|
value: string;
|
|
643
735
|
plusMinus?: number;
|
|
644
736
|
}[];
|
|
@@ -646,12 +738,12 @@ interface components {
|
|
|
646
738
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
647
739
|
* @enum {string}
|
|
648
740
|
*/
|
|
649
|
-
remoteSponsorship?:
|
|
741
|
+
remoteSponsorship?: "yes" | "no" | "unknown";
|
|
650
742
|
/**
|
|
651
743
|
* @description Seniority level of the role.
|
|
652
744
|
* @enum {string}
|
|
653
745
|
*/
|
|
654
|
-
seniority?:
|
|
746
|
+
seniority?: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive";
|
|
655
747
|
/** @description Where candidates apply. Accepts an HTTPS URL, a `mailto:` URI, or a bare email address (which is normalized to `mailto:` form). */
|
|
656
748
|
applicationUrl: string;
|
|
657
749
|
/** @description Minimum salary, in `salaryCurrency` units. */
|
|
@@ -664,7 +756,7 @@ interface components {
|
|
|
664
756
|
* @description Period the `salaryMin` and `salaryMax` figures are quoted against.
|
|
665
757
|
* @enum {string}
|
|
666
758
|
*/
|
|
667
|
-
salaryTimeframe?:
|
|
759
|
+
salaryTimeframe?: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour";
|
|
668
760
|
/** @description Whether the job appears in featured slots on the public board. */
|
|
669
761
|
isFeatured?: boolean;
|
|
670
762
|
/** @description Job expiry as a Unix epoch in milliseconds. On create, omitted or `null` defaults to 30 days from creation. On PATCH, pass `null` to clear an existing expiry. Past timestamps remove the job from the public board. */
|
|
@@ -672,7 +764,7 @@ interface components {
|
|
|
672
764
|
/** @description Time at which the job was first published, as a Unix epoch in milliseconds. When omitted on create with `status: "published"`, the server stamps the current time. Useful for bulk-importing historical jobs while preserving original publication dates. PATCH may overwrite an existing value but cannot clear it. */
|
|
673
765
|
publishedAt?: number;
|
|
674
766
|
/** @description Required education credentials. Each value is one of `high_school`, `associate_degree`, `bachelor_degree`, `professional_certificate`, `postgraduate_degree`, or `no_requirements`. */
|
|
675
|
-
educationRequirements?: (
|
|
767
|
+
educationRequirements?: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
|
|
676
768
|
/** @description Minimum required experience, expressed in months. */
|
|
677
769
|
experienceMonths?: number;
|
|
678
770
|
/** @description If `true`, equivalent experience may substitute for the listed education requirements. */
|
|
@@ -681,11 +773,11 @@ interface components {
|
|
|
681
773
|
* @description Period denominator for `inOfficeFrequency`.
|
|
682
774
|
* @enum {string}
|
|
683
775
|
*/
|
|
684
|
-
inOfficePeriod?:
|
|
776
|
+
inOfficePeriod?: "per_week" | "per_month" | "per_year";
|
|
685
777
|
/** @description How often the candidate must be in-office over `inOfficePeriod`. */
|
|
686
778
|
inOfficeFrequency?: number;
|
|
687
779
|
/** @description Physical office locations associated with the job. Each entry is forward-geocoded server-side; a country mismatch returns `400 jobs_unresolvable_location`. */
|
|
688
|
-
officeLocations?: components[
|
|
780
|
+
officeLocations?: components["schemas"]["JobOfficeLocationInput"][];
|
|
689
781
|
/** @description An external identifier for the job from your own system, such as an ATS requisition ID. Use this value to look up the job later via `GET /v1/jobs?externalId=...` for deduplication. Scoped per-account: two different accounts may reuse the same `externalId` without collision. Up to 255 characters. */
|
|
690
782
|
externalId?: string;
|
|
691
783
|
/** @description Board-defined custom-field values, keyed by the field `key` (definitions, including type and option keys, are published at `GET /v1/settings/job-form`). Writes are **additive**: on `PATCH` a key you send is set/overwritten and a key you omit is preserved (unsent keys are never cleared); on `POST` this initializes the bag. Send a key with an intentional-empty value — `null`, `""`, or `[]` — to **clear** it (`""`/`null` clear any type; `[]` clears a `multi_select`); `false` and `0` are kept as real values. Values must match the field type and `single_select`/`multi_select` must use defined option **keys** (not labels); a wrong-typed value is rejected (`custom_field_wrong_type`), never silently cleared. Unknown keys are ignored. The stored bag never contains `null`/empty values. */
|
|
@@ -694,12 +786,12 @@ interface components {
|
|
|
694
786
|
};
|
|
695
787
|
/** @description The job title. */
|
|
696
788
|
title: string;
|
|
697
|
-
company?: components[
|
|
789
|
+
company?: components["schemas"]["InlineCompanyInput"];
|
|
698
790
|
/**
|
|
699
791
|
* @description Initial status of the job. Defaults to `draft`. Only `draft` and `published` are writable here. The system-set values `expired` and `archived` are not — use the dedicated transitions (`POST /v1/jobs/:id/publish`, `/pause`, `/expire`) for status changes after create.
|
|
700
792
|
* @enum {string}
|
|
701
793
|
*/
|
|
702
|
-
status?:
|
|
794
|
+
status?: "draft" | "published";
|
|
703
795
|
};
|
|
704
796
|
CreateJobPostingBody: {
|
|
705
797
|
submission: {
|
|
@@ -713,7 +805,7 @@ interface components {
|
|
|
713
805
|
remoteOption: string;
|
|
714
806
|
officeLocations: {
|
|
715
807
|
/** @enum {string} */
|
|
716
|
-
provider?:
|
|
808
|
+
provider?: "mapbox";
|
|
717
809
|
providerPlaceId?: string;
|
|
718
810
|
displayName: string;
|
|
719
811
|
countryCode?: string;
|
|
@@ -756,7 +848,7 @@ interface components {
|
|
|
756
848
|
offset?: number;
|
|
757
849
|
}[];
|
|
758
850
|
/** @enum {string} */
|
|
759
|
-
remoteSponsorship?:
|
|
851
|
+
remoteSponsorship?: "yes" | "no" | "unknown";
|
|
760
852
|
customFieldValues?: {
|
|
761
853
|
[key: string]: string | string[] | boolean | number;
|
|
762
854
|
};
|
|
@@ -794,7 +886,7 @@ interface components {
|
|
|
794
886
|
* @description Tag visibility. One of `public` or `internal`.
|
|
795
887
|
* @enum {string}
|
|
796
888
|
*/
|
|
797
|
-
visibility?:
|
|
889
|
+
visibility?: "public" | "internal";
|
|
798
890
|
/** @description SEO meta title for the tag page. */
|
|
799
891
|
metaTitle?: string;
|
|
800
892
|
/** @description SEO meta description for the tag page. */
|
|
@@ -811,9 +903,9 @@ interface components {
|
|
|
811
903
|
* @description Field type, which dictates the accepted value: `short_text`/`long_text` → string; `single_select` → one option key (string); `multi_select` → array of option keys; `boolean` → boolean; `number` → number.
|
|
812
904
|
* @enum {string}
|
|
813
905
|
*/
|
|
814
|
-
type:
|
|
906
|
+
type: "short_text" | "long_text" | "single_select" | "multi_select" | "boolean" | "number";
|
|
815
907
|
/** @description Present only for `single_select`/`multi_select`. A written value must be one (or, for multi, several) of these option `key`s — never a label. */
|
|
816
|
-
options?: components[
|
|
908
|
+
options?: components["schemas"]["CustomFieldOption"][];
|
|
817
909
|
/** @description When true, the value cannot be cleared or left empty on a write (rejected with `custom_field_required`). */
|
|
818
910
|
required: boolean;
|
|
819
911
|
/** @description Inclusive minimum for `number` fields, when set. */
|
|
@@ -839,7 +931,7 @@ interface components {
|
|
|
839
931
|
* @description OAuth token endpoint authentication method. Use `none` for public PKCE clients that cannot keep a client secret.
|
|
840
932
|
* @enum {string}
|
|
841
933
|
*/
|
|
842
|
-
token_endpoint_auth_method?:
|
|
934
|
+
token_endpoint_auth_method?: "client_secret_basic" | "none";
|
|
843
935
|
};
|
|
844
936
|
DynamicClientRegistrationResponse: {
|
|
845
937
|
/** @description Public OAuth client identifier. */
|
|
@@ -875,6 +967,12 @@ interface components {
|
|
|
875
967
|
/** @description If `true` (default), creates a new company when no match is found. Set to `false` to receive a `404 companies_not_found` response instead. */
|
|
876
968
|
createIfMissing?: boolean;
|
|
877
969
|
};
|
|
970
|
+
HandleAvailability: {
|
|
971
|
+
/** @enum {string} */
|
|
972
|
+
object: "handle_availability";
|
|
973
|
+
handle: string;
|
|
974
|
+
available: boolean;
|
|
975
|
+
};
|
|
878
976
|
/** @description An inline company payload, resolved via `find-or-create` before the job is created. Provide either `company` or `companyId`, not both. */
|
|
879
977
|
InlineCompanyInput: {
|
|
880
978
|
/** @description The company's display name. */
|
|
@@ -888,9 +986,9 @@ interface components {
|
|
|
888
986
|
/** @description If `true` (default), creates a new company when no match is found. Set to `false` to receive a `404 companies_not_found` response instead. */
|
|
889
987
|
createIfMissing?: boolean;
|
|
890
988
|
};
|
|
891
|
-
Job: components[
|
|
989
|
+
Job: components["schemas"]["JobSummary"] & {
|
|
892
990
|
/** @description Public + admin URLs for this job. `public` may be `null` if the job lacks a slug or company-slug. */
|
|
893
|
-
links?: components[
|
|
991
|
+
links?: components["schemas"]["ResourceLinks"] & {
|
|
894
992
|
/**
|
|
895
993
|
* Format: uri
|
|
896
994
|
* @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).
|
|
@@ -924,9 +1022,9 @@ interface components {
|
|
|
924
1022
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
925
1023
|
* @enum {string}
|
|
926
1024
|
*/
|
|
927
|
-
remoteSponsorship:
|
|
1025
|
+
remoteSponsorship: "yes" | "no" | "unknown";
|
|
928
1026
|
/** @description Required education credentials. Each value is one of `high_school`, `associate_degree`, `bachelor_degree`, `professional_certificate`, `postgraduate_degree`, or `no_requirements`. */
|
|
929
|
-
educationRequirements: (
|
|
1027
|
+
educationRequirements: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
|
|
930
1028
|
/** @description Minimum required experience in months, or `null` if not specified. */
|
|
931
1029
|
experienceMonths: number | null;
|
|
932
1030
|
/** @description If `true`, equivalent experience may substitute for the listed education requirements. `null` if not specified. */
|
|
@@ -935,12 +1033,12 @@ interface components {
|
|
|
935
1033
|
* @description Period denominator for `inOfficeFrequency`, or `null` if not specified.
|
|
936
1034
|
* @enum {string|null}
|
|
937
1035
|
*/
|
|
938
|
-
inOfficePeriod:
|
|
1036
|
+
inOfficePeriod: "per_week" | "per_month" | "per_year" | null;
|
|
939
1037
|
/** @description How often the candidate must be in-office over `inOfficePeriod`, or `null` if not specified. */
|
|
940
1038
|
inOfficeFrequency: number | null;
|
|
941
|
-
company: components[
|
|
1039
|
+
company: components["schemas"]["JobCompany"];
|
|
942
1040
|
/** @description Physical office locations associated with the job. */
|
|
943
|
-
officeLocations: components[
|
|
1041
|
+
officeLocations: components["schemas"]["JobOfficeLocation"][];
|
|
944
1042
|
};
|
|
945
1043
|
/** @description Embedded company resource for the job, or `null` if no company is attached. */
|
|
946
1044
|
JobCompany: {
|
|
@@ -982,7 +1080,7 @@ interface components {
|
|
|
982
1080
|
allowedCountries?: string[];
|
|
983
1081
|
};
|
|
984
1082
|
/** @description Board-defined custom field definitions, in display order. Read these to learn which `customFieldValues` keys, types, and option keys a job accepts on POST/PATCH /v1/jobs. */
|
|
985
|
-
customFields?: components[
|
|
1083
|
+
customFields?: components["schemas"]["CustomFieldDefinition"][];
|
|
986
1084
|
};
|
|
987
1085
|
JobOfficeLocation: {
|
|
988
1086
|
/** @description ISO 3166-1 alpha-2 country code, or `null` if the location was not resolved. */
|
|
@@ -1017,12 +1115,12 @@ interface components {
|
|
|
1017
1115
|
};
|
|
1018
1116
|
JobPostingBillingCheck: {
|
|
1019
1117
|
/** @enum {string} */
|
|
1020
|
-
object:
|
|
1118
|
+
object: "job_posting_billing_check";
|
|
1021
1119
|
hasActiveBilling: boolean;
|
|
1022
1120
|
};
|
|
1023
1121
|
JobPostingBillingOptions: {
|
|
1024
1122
|
/** @enum {string} */
|
|
1025
|
-
object:
|
|
1123
|
+
object: "job_posting_billing_options";
|
|
1026
1124
|
options: {
|
|
1027
1125
|
id: string;
|
|
1028
1126
|
type: string;
|
|
@@ -1047,7 +1145,7 @@ interface components {
|
|
|
1047
1145
|
};
|
|
1048
1146
|
JobPostingBillingVerification: {
|
|
1049
1147
|
/** @enum {string} */
|
|
1050
|
-
object:
|
|
1148
|
+
object: "job_posting_billing_verification";
|
|
1051
1149
|
success: boolean;
|
|
1052
1150
|
};
|
|
1053
1151
|
JobPostingCheckBillingBody: {
|
|
@@ -1056,25 +1154,25 @@ interface components {
|
|
|
1056
1154
|
};
|
|
1057
1155
|
JobPostingLogo: {
|
|
1058
1156
|
/** @enum {string} */
|
|
1059
|
-
object:
|
|
1157
|
+
object: "job_posting_logo";
|
|
1060
1158
|
publicUrl: string;
|
|
1061
1159
|
};
|
|
1062
1160
|
JobPostingPlan: {
|
|
1063
1161
|
/** @enum {string} */
|
|
1064
|
-
object:
|
|
1162
|
+
object: "job_posting_plan";
|
|
1065
1163
|
id: string;
|
|
1066
1164
|
name: string;
|
|
1067
1165
|
description: string | null;
|
|
1068
1166
|
kind: string;
|
|
1069
1167
|
/** @enum {string|null} */
|
|
1070
|
-
billingInterval:
|
|
1168
|
+
billingInterval: "month" | "year" | null;
|
|
1071
1169
|
/** @enum {string|null} */
|
|
1072
|
-
purpose:
|
|
1170
|
+
purpose: "job_posting" | "talent_access" | null;
|
|
1073
1171
|
isRecommended: boolean;
|
|
1074
1172
|
displayOrder: number | null;
|
|
1075
1173
|
invoiceOnly: boolean;
|
|
1076
1174
|
/** @enum {string|null} */
|
|
1077
|
-
publishTiming:
|
|
1175
|
+
publishTiming: "on_issue" | "on_payment" | null;
|
|
1078
1176
|
netTermsDays: number | null;
|
|
1079
1177
|
prices: {
|
|
1080
1178
|
currency: string;
|
|
@@ -1088,29 +1186,29 @@ interface components {
|
|
|
1088
1186
|
};
|
|
1089
1187
|
JobPostingResult: {
|
|
1090
1188
|
/** @enum {string} */
|
|
1091
|
-
object:
|
|
1189
|
+
object: "job_posting_result";
|
|
1092
1190
|
/** @enum {string} */
|
|
1093
|
-
status:
|
|
1191
|
+
status: "checkout";
|
|
1094
1192
|
checkoutUrl: string;
|
|
1095
1193
|
jobId: string;
|
|
1096
1194
|
} | {
|
|
1097
1195
|
/** @enum {string} */
|
|
1098
|
-
object:
|
|
1196
|
+
object: "job_posting_result";
|
|
1099
1197
|
/** @enum {string} */
|
|
1100
|
-
status:
|
|
1198
|
+
status: "published";
|
|
1101
1199
|
jobId: string;
|
|
1102
1200
|
jobSlug: string;
|
|
1103
1201
|
} | {
|
|
1104
1202
|
/** @enum {string} */
|
|
1105
|
-
object:
|
|
1203
|
+
object: "job_posting_result";
|
|
1106
1204
|
/** @enum {string} */
|
|
1107
|
-
status:
|
|
1205
|
+
status: "pending_approval";
|
|
1108
1206
|
jobId: string;
|
|
1109
1207
|
} | {
|
|
1110
1208
|
/** @enum {string} */
|
|
1111
|
-
object:
|
|
1209
|
+
object: "job_posting_result";
|
|
1112
1210
|
/** @enum {string} */
|
|
1113
|
-
status:
|
|
1211
|
+
status: "invoice_sent";
|
|
1114
1212
|
jobId: string;
|
|
1115
1213
|
};
|
|
1116
1214
|
JobPostingSendVerificationBody: {
|
|
@@ -1119,7 +1217,7 @@ interface components {
|
|
|
1119
1217
|
};
|
|
1120
1218
|
JobPostingSubscriptionEntitlements: {
|
|
1121
1219
|
/** @enum {string} */
|
|
1122
|
-
object:
|
|
1220
|
+
object: "job_posting_subscription_entitlements";
|
|
1123
1221
|
hasSubscription: boolean;
|
|
1124
1222
|
subscriptionId: string | null;
|
|
1125
1223
|
canFeature: boolean | null;
|
|
@@ -1141,7 +1239,7 @@ interface components {
|
|
|
1141
1239
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
1142
1240
|
* @enum {string}
|
|
1143
1241
|
*/
|
|
1144
|
-
object:
|
|
1242
|
+
object: "job";
|
|
1145
1243
|
/** @description The job title. */
|
|
1146
1244
|
title: string;
|
|
1147
1245
|
/** @description URL-friendly slug used in public board URLs, or `null` if no slug is set. */
|
|
@@ -1150,24 +1248,24 @@ interface components {
|
|
|
1150
1248
|
* @description Current status of the job. One of `draft`, `published`, `expired`, or `archived`.
|
|
1151
1249
|
* @enum {string}
|
|
1152
1250
|
*/
|
|
1153
|
-
status:
|
|
1251
|
+
status: "draft" | "published" | "expired" | "archived";
|
|
1154
1252
|
/** @description Identifier of the company the job belongs to, or `null` if no company is attached. */
|
|
1155
1253
|
companyId: string | null;
|
|
1156
1254
|
/**
|
|
1157
1255
|
* @description Employment type of the role, or `null` if not specified.
|
|
1158
1256
|
* @enum {string|null}
|
|
1159
1257
|
*/
|
|
1160
|
-
employmentType:
|
|
1258
|
+
employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
|
|
1161
1259
|
/**
|
|
1162
1260
|
* @description Whether the role is on-site, hybrid, or fully remote, or `null` if not specified.
|
|
1163
1261
|
* @enum {string|null}
|
|
1164
1262
|
*/
|
|
1165
|
-
remoteOption:
|
|
1263
|
+
remoteOption: "on_site" | "hybrid" | "remote" | null;
|
|
1166
1264
|
/**
|
|
1167
1265
|
* @description Seniority level of the role, or `null` if not specified.
|
|
1168
1266
|
* @enum {string|null}
|
|
1169
1267
|
*/
|
|
1170
|
-
seniority:
|
|
1268
|
+
seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
|
|
1171
1269
|
/** @description Minimum salary in `salaryCurrency` units, or `null` if not specified. */
|
|
1172
1270
|
salaryMin: number | null;
|
|
1173
1271
|
/** @description Maximum salary in `salaryCurrency` units, or `null` if not specified. */
|
|
@@ -1178,7 +1276,7 @@ interface components {
|
|
|
1178
1276
|
* @description Period the salary range is quoted against, or `null` if no salary is specified.
|
|
1179
1277
|
* @enum {string|null}
|
|
1180
1278
|
*/
|
|
1181
|
-
salaryTimeframe:
|
|
1279
|
+
salaryTimeframe: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour" | null;
|
|
1182
1280
|
/** @description Whether the job appears in featured slots on the public board. */
|
|
1183
1281
|
isFeatured: boolean;
|
|
1184
1282
|
/** @description Time at which the job was first published, or `null` if not yet published. ISO 8601 datetime. */
|
|
@@ -1195,11 +1293,11 @@ interface components {
|
|
|
1195
1293
|
customFieldValues: {
|
|
1196
1294
|
[key: string]: string | string[] | boolean | number;
|
|
1197
1295
|
};
|
|
1198
|
-
links: components[
|
|
1296
|
+
links: components["schemas"]["AdminOnlyResourceLinks"];
|
|
1199
1297
|
};
|
|
1200
1298
|
LegalPage: {
|
|
1201
1299
|
/** @enum {string} */
|
|
1202
|
-
object:
|
|
1300
|
+
object: "legal_page";
|
|
1203
1301
|
/** @description The resolved legal page type. */
|
|
1204
1302
|
type: string;
|
|
1205
1303
|
/** @description Page heading (H1), with `{{board_name}}` resolved. */
|
|
@@ -1207,7 +1305,7 @@ interface components {
|
|
|
1207
1305
|
/** @description Owner-authored prose as portable HTML (transitional field, ADR-0039 — the starter authors the layout). Empty string when the page has no text body. */
|
|
1208
1306
|
content: string;
|
|
1209
1307
|
/** @enum {string} */
|
|
1210
|
-
contentFormat:
|
|
1308
|
+
contentFormat: "html";
|
|
1211
1309
|
/** @description Structured impressum legal-entity facts; `null` for non-impressum pages. */
|
|
1212
1310
|
legalEntity: {
|
|
1213
1311
|
legalName: string | null;
|
|
@@ -1216,7 +1314,7 @@ interface components {
|
|
|
1216
1314
|
};
|
|
1217
1315
|
LocationSalaryDetail: {
|
|
1218
1316
|
/** @enum {string} */
|
|
1219
|
-
object:
|
|
1317
|
+
object: "location_salary_detail";
|
|
1220
1318
|
/** @description Immutable English source place slug — the salary-stats key. */
|
|
1221
1319
|
sourceSlug: string;
|
|
1222
1320
|
/** @description Board-language canonical URL slug — the starter 308 target. */
|
|
@@ -1297,7 +1395,7 @@ interface components {
|
|
|
1297
1395
|
};
|
|
1298
1396
|
LocationSkillsIndex: {
|
|
1299
1397
|
/** @enum {string} */
|
|
1300
|
-
object:
|
|
1398
|
+
object: "location_skills_index";
|
|
1301
1399
|
sourceSlug: string;
|
|
1302
1400
|
canonicalSlug: string;
|
|
1303
1401
|
placeName: string;
|
|
@@ -1311,7 +1409,7 @@ interface components {
|
|
|
1311
1409
|
};
|
|
1312
1410
|
LocationTitlesIndex: {
|
|
1313
1411
|
/** @enum {string} */
|
|
1314
|
-
object:
|
|
1412
|
+
object: "location_titles_index";
|
|
1315
1413
|
sourceSlug: string;
|
|
1316
1414
|
canonicalSlug: string;
|
|
1317
1415
|
placeName: string;
|
|
@@ -1323,7 +1421,7 @@ interface components {
|
|
|
1323
1421
|
jobCount: number;
|
|
1324
1422
|
}[];
|
|
1325
1423
|
};
|
|
1326
|
-
MediaGet: components[
|
|
1424
|
+
MediaGet: components["schemas"]["MediaUpload"] & {
|
|
1327
1425
|
/** @description Time at which the file was uploaded. ISO 8601 datetime. */
|
|
1328
1426
|
uploadedAt: string;
|
|
1329
1427
|
/** @description Resources currently referencing this file. Currently always `[]` — the resolver is not yet implemented. */
|
|
@@ -1341,7 +1439,7 @@ interface components {
|
|
|
1341
1439
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
1342
1440
|
* @enum {string}
|
|
1343
1441
|
*/
|
|
1344
|
-
object:
|
|
1442
|
+
object: "media_upload";
|
|
1345
1443
|
/** @description URL where the file can be downloaded. Permanent for files served from the assets domain; a signed URL for legacy files. Always set on the upload response; may be `null` on retrieval if the underlying blob has been deleted. */
|
|
1346
1444
|
url: string | null;
|
|
1347
1445
|
/** @description Time at which the signed `url` expires (ISO 8601 datetime), or `null` when the `url` is permanent and never expires. */
|
|
@@ -1354,7 +1452,15 @@ interface components {
|
|
|
1354
1452
|
* @description Resource type the file was uploaded for.
|
|
1355
1453
|
* @enum {string}
|
|
1356
1454
|
*/
|
|
1357
|
-
purpose:
|
|
1455
|
+
purpose: "board_logo" | "board_hero" | "account_avatar" | "company_logo" | "blog_image";
|
|
1456
|
+
};
|
|
1457
|
+
NotificationPreference: {
|
|
1458
|
+
/** @enum {string} */
|
|
1459
|
+
object: "notification_preference";
|
|
1460
|
+
/** @enum {string} */
|
|
1461
|
+
channel: "messageEmails" | "applicationEmails";
|
|
1462
|
+
subscribed: boolean;
|
|
1463
|
+
updatedAt: number | null;
|
|
1358
1464
|
};
|
|
1359
1465
|
/** @description Error envelope, populated once the operation reaches `failed`. `null` otherwise. */
|
|
1360
1466
|
OperationErrorEnvelope: {
|
|
@@ -1385,20 +1491,20 @@ interface components {
|
|
|
1385
1491
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
1386
1492
|
* @enum {string}
|
|
1387
1493
|
*/
|
|
1388
|
-
object:
|
|
1494
|
+
object: "operation";
|
|
1389
1495
|
/** @description Operation kind, identifying which workflow the operation runs. */
|
|
1390
1496
|
kind: string;
|
|
1391
1497
|
/**
|
|
1392
1498
|
* @description Current state of the operation.
|
|
1393
1499
|
* @enum {string}
|
|
1394
1500
|
*/
|
|
1395
|
-
state:
|
|
1501
|
+
state: "pending" | "running" | "succeeded" | "failed" | "cancelled";
|
|
1396
1502
|
/** @description Identifier of the account the operation belongs to. */
|
|
1397
1503
|
accountId: string;
|
|
1398
|
-
progress: components[
|
|
1504
|
+
progress: components["schemas"]["OperationProgress"];
|
|
1399
1505
|
/** @description Operation result, populated once the operation reaches `succeeded`. Shape varies by `kind`. */
|
|
1400
1506
|
result?: unknown;
|
|
1401
|
-
error: components[
|
|
1507
|
+
error: components["schemas"]["OperationErrorEnvelope"];
|
|
1402
1508
|
/** @description Time at which the operation was created. ISO 8601 datetime. */
|
|
1403
1509
|
createdAt: string;
|
|
1404
1510
|
/** @description Time at which the operation was last updated. ISO 8601 datetime. */
|
|
@@ -1450,23 +1556,23 @@ interface components {
|
|
|
1450
1556
|
/** @description Default expiry, in days, applied to newly published jobs when no `expiresAt` is supplied. */
|
|
1451
1557
|
defaultJobDurationDays?: number;
|
|
1452
1558
|
/** @description Public contact email shown on the board. Pass `null` to clear. */
|
|
1453
|
-
contactEmail?: string |
|
|
1559
|
+
contactEmail?: string | "" | unknown | unknown;
|
|
1454
1560
|
/** @description Legal name of the entity operating the board. Pass `null` to clear. */
|
|
1455
|
-
companyLegalName?: string |
|
|
1561
|
+
companyLegalName?: string | "" | unknown | unknown;
|
|
1456
1562
|
/** @description Postal address of the entity operating the board. Pass `null` to clear. */
|
|
1457
|
-
companyAddress?: string |
|
|
1563
|
+
companyAddress?: string | "" | unknown | unknown;
|
|
1458
1564
|
/** @description Public company website URL. Pass `null` to clear. */
|
|
1459
|
-
companyWebsiteUrl?: string |
|
|
1565
|
+
companyWebsiteUrl?: string | "" | unknown | unknown;
|
|
1460
1566
|
/** @description Company X (Twitter) handle or profile URL. Pass `null` to clear. */
|
|
1461
|
-
companyXHandle?: string |
|
|
1567
|
+
companyXHandle?: string | "" | unknown | unknown;
|
|
1462
1568
|
/** @description Company Facebook page URL. Pass `null` to clear. */
|
|
1463
|
-
companyFacebookUrl?: string |
|
|
1569
|
+
companyFacebookUrl?: string | "" | unknown | unknown;
|
|
1464
1570
|
/** @description Company LinkedIn page URL. Pass `null` to clear. */
|
|
1465
|
-
companyLinkedinUrl?: string |
|
|
1571
|
+
companyLinkedinUrl?: string | "" | unknown | unknown;
|
|
1466
1572
|
/** @description Label shown for the talent directory in the public navigation. 1–50 characters. */
|
|
1467
1573
|
talentNavLabel?: string;
|
|
1468
1574
|
/** @description Custom copy displayed on the password gate. Up to 500 characters. Pass `null` to clear. */
|
|
1469
|
-
passwordProtectionMessage?: string |
|
|
1575
|
+
passwordProtectionMessage?: string | "" | unknown | unknown;
|
|
1470
1576
|
/** @description Free-form configuration object merged into the existing config. Reserved keys (e.g. `passwordProtectionEnabled`, `adsenseClientId`, `jobAccessPaywallEnabled`) cannot be set here — use the dedicated endpoints instead. */
|
|
1471
1577
|
config?: {
|
|
1472
1578
|
[key: string]: unknown;
|
|
@@ -1474,21 +1580,21 @@ interface components {
|
|
|
1474
1580
|
};
|
|
1475
1581
|
Plan: {
|
|
1476
1582
|
/** @enum {string} */
|
|
1477
|
-
object:
|
|
1583
|
+
object: "plan";
|
|
1478
1584
|
id: string;
|
|
1479
1585
|
name: string;
|
|
1480
1586
|
description: string | null;
|
|
1481
1587
|
/** @enum {string} */
|
|
1482
|
-
purpose:
|
|
1588
|
+
purpose: "job_posting" | "talent_access";
|
|
1483
1589
|
/** @enum {string} */
|
|
1484
|
-
kind:
|
|
1590
|
+
kind: "free" | "subscription" | "one_time" | "bundle";
|
|
1485
1591
|
/** @enum {string|null} */
|
|
1486
|
-
billingInterval:
|
|
1592
|
+
billingInterval: "month" | "year" | null;
|
|
1487
1593
|
isRecommended: boolean;
|
|
1488
1594
|
displayOrder: number;
|
|
1489
1595
|
invoiceOnly: boolean;
|
|
1490
1596
|
/** @enum {string|null} */
|
|
1491
|
-
publishTiming:
|
|
1597
|
+
publishTiming: "on_issue" | "on_payment" | null;
|
|
1492
1598
|
netTermsDays: number | null;
|
|
1493
1599
|
price: {
|
|
1494
1600
|
currency: string;
|
|
@@ -1501,7 +1607,7 @@ interface components {
|
|
|
1501
1607
|
maxActiveJobs: number;
|
|
1502
1608
|
featuredSlots: number;
|
|
1503
1609
|
/** @enum {string} */
|
|
1504
|
-
featureSelectionMode:
|
|
1610
|
+
featureSelectionMode: "auto" | "manual";
|
|
1505
1611
|
};
|
|
1506
1612
|
/** @description Talent-access allowances (per billing period). Present only when `purpose` is `talent_access`. `"unlimited"` is a sentinel value. */
|
|
1507
1613
|
talent?: {
|
|
@@ -1511,13 +1617,13 @@ interface components {
|
|
|
1511
1617
|
};
|
|
1512
1618
|
PublicBlogAdjacentPosts: {
|
|
1513
1619
|
/** @enum {string} */
|
|
1514
|
-
object:
|
|
1515
|
-
previous: components[
|
|
1516
|
-
next: components[
|
|
1620
|
+
object: "blog_adjacent_posts";
|
|
1621
|
+
previous: components["schemas"]["PublicBlogPostSummary"] | null;
|
|
1622
|
+
next: components["schemas"]["PublicBlogPostSummary"] | null;
|
|
1517
1623
|
};
|
|
1518
|
-
PublicBlogAuthor: components[
|
|
1624
|
+
PublicBlogAuthor: components["schemas"]["PublicBlogAuthorEmbed"] & {
|
|
1519
1625
|
/** @enum {string} */
|
|
1520
|
-
object:
|
|
1626
|
+
object: "public_blog_author";
|
|
1521
1627
|
};
|
|
1522
1628
|
PublicBlogAuthorEmbed: {
|
|
1523
1629
|
id: string;
|
|
@@ -1530,7 +1636,7 @@ interface components {
|
|
|
1530
1636
|
linkedinUrl: string | null;
|
|
1531
1637
|
githubUrl: string | null;
|
|
1532
1638
|
};
|
|
1533
|
-
PublicBlogPost: components[
|
|
1639
|
+
PublicBlogPost: components["schemas"]["PublicBlogPostSummary"] & {
|
|
1534
1640
|
html: string | null;
|
|
1535
1641
|
ogImageUrl: string | null;
|
|
1536
1642
|
featureImageCaption: string | null;
|
|
@@ -1542,7 +1648,7 @@ interface components {
|
|
|
1542
1648
|
PublicBlogPostSummary: {
|
|
1543
1649
|
id: string;
|
|
1544
1650
|
/** @enum {string} */
|
|
1545
|
-
object:
|
|
1651
|
+
object: "public_blog_post";
|
|
1546
1652
|
title: string;
|
|
1547
1653
|
slug: string;
|
|
1548
1654
|
featured: boolean;
|
|
@@ -1553,8 +1659,8 @@ interface components {
|
|
|
1553
1659
|
publishedAt: string | null;
|
|
1554
1660
|
canonicalUrl: string | null;
|
|
1555
1661
|
createdAt: string;
|
|
1556
|
-
authors: components[
|
|
1557
|
-
tags: components[
|
|
1662
|
+
authors: components["schemas"]["PublicBlogAuthorEmbed"][];
|
|
1663
|
+
tags: components["schemas"]["PublicBlogTagEmbed"][];
|
|
1558
1664
|
};
|
|
1559
1665
|
PublicBlogSearchBody: {
|
|
1560
1666
|
/** @description Free-text search query. Up to 200 characters. */
|
|
@@ -1564,9 +1670,9 @@ interface components {
|
|
|
1564
1670
|
/** @description A limit on the number of objects to be returned. Limit can range between 1 and 50. */
|
|
1565
1671
|
limit?: number;
|
|
1566
1672
|
};
|
|
1567
|
-
PublicBlogTag: components[
|
|
1673
|
+
PublicBlogTag: components["schemas"]["PublicBlogTagEmbed"] & {
|
|
1568
1674
|
/** @enum {string} */
|
|
1569
|
-
object:
|
|
1675
|
+
object: "public_blog_tag";
|
|
1570
1676
|
};
|
|
1571
1677
|
PublicBlogTagEmbed: {
|
|
1572
1678
|
id: string;
|
|
@@ -1576,7 +1682,7 @@ interface components {
|
|
|
1576
1682
|
};
|
|
1577
1683
|
PublicBoardContext: {
|
|
1578
1684
|
/** @enum {string} */
|
|
1579
|
-
object:
|
|
1685
|
+
object: "public_board";
|
|
1580
1686
|
/** @description Immutable board identifier (`boards_…`). */
|
|
1581
1687
|
id: string;
|
|
1582
1688
|
/** @description Mutable canonical board slug. */
|
|
@@ -1650,7 +1756,7 @@ interface components {
|
|
|
1650
1756
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
1651
1757
|
* @enum {string}
|
|
1652
1758
|
*/
|
|
1653
|
-
object:
|
|
1759
|
+
object: "public_job";
|
|
1654
1760
|
/** @description The job title. */
|
|
1655
1761
|
title: string;
|
|
1656
1762
|
/** @description URL-friendly slug used in public board URLs, or `null` if no slug is set. */
|
|
@@ -1659,24 +1765,24 @@ interface components {
|
|
|
1659
1765
|
* @description Current status of the job. One of `draft`, `published`, `expired`, or `archived`.
|
|
1660
1766
|
* @enum {string}
|
|
1661
1767
|
*/
|
|
1662
|
-
status:
|
|
1768
|
+
status: "draft" | "published" | "expired" | "archived";
|
|
1663
1769
|
/** @description Identifier of the company the job belongs to, or `null` if no company is attached. */
|
|
1664
1770
|
companyId: string | null;
|
|
1665
1771
|
/**
|
|
1666
1772
|
* @description Employment type of the role, or `null` if not specified.
|
|
1667
1773
|
* @enum {string|null}
|
|
1668
1774
|
*/
|
|
1669
|
-
employmentType:
|
|
1775
|
+
employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
|
|
1670
1776
|
/**
|
|
1671
1777
|
* @description Whether the role is on-site, hybrid, or fully remote, or `null` if not specified.
|
|
1672
1778
|
* @enum {string|null}
|
|
1673
1779
|
*/
|
|
1674
|
-
remoteOption:
|
|
1780
|
+
remoteOption: "on_site" | "hybrid" | "remote" | null;
|
|
1675
1781
|
/**
|
|
1676
1782
|
* @description Seniority level of the role, or `null` if not specified.
|
|
1677
1783
|
* @enum {string|null}
|
|
1678
1784
|
*/
|
|
1679
|
-
seniority:
|
|
1785
|
+
seniority: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive" | null;
|
|
1680
1786
|
/** @description Minimum salary in `salaryCurrency` units, or `null` if not specified. */
|
|
1681
1787
|
salaryMin: number | null;
|
|
1682
1788
|
/** @description Maximum salary in `salaryCurrency` units, or `null` if not specified. */
|
|
@@ -1687,7 +1793,7 @@ interface components {
|
|
|
1687
1793
|
* @description Period the salary range is quoted against, or `null` if no salary is specified.
|
|
1688
1794
|
* @enum {string|null}
|
|
1689
1795
|
*/
|
|
1690
|
-
salaryTimeframe:
|
|
1796
|
+
salaryTimeframe: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour" | null;
|
|
1691
1797
|
/** @description Whether the job appears in featured slots on the public board. */
|
|
1692
1798
|
isFeatured: boolean;
|
|
1693
1799
|
/** @description Time at which the job was first published, or `null` if not yet published. ISO 8601 datetime. */
|
|
@@ -1698,7 +1804,7 @@ interface components {
|
|
|
1698
1804
|
createdAt: string;
|
|
1699
1805
|
/** @description Time at which the job was last updated. ISO 8601 datetime. */
|
|
1700
1806
|
updatedAt: string;
|
|
1701
|
-
links: components[
|
|
1807
|
+
links: components["schemas"]["PublicJobLinks"];
|
|
1702
1808
|
/** @description Long-form description of the role, or `null` if not specified. */
|
|
1703
1809
|
description: string | null;
|
|
1704
1810
|
/** @description Where candidates apply, or `null` if not specified. An HTTPS URL or `mailto:` URI. */
|
|
@@ -1726,9 +1832,9 @@ interface components {
|
|
|
1726
1832
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
1727
1833
|
* @enum {string}
|
|
1728
1834
|
*/
|
|
1729
|
-
remoteSponsorship:
|
|
1835
|
+
remoteSponsorship: "yes" | "no" | "unknown";
|
|
1730
1836
|
/** @description Required education credentials. Each value is one of `high_school`, `associate_degree`, `bachelor_degree`, `professional_certificate`, `postgraduate_degree`, or `no_requirements`. */
|
|
1731
|
-
educationRequirements: (
|
|
1837
|
+
educationRequirements: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
|
|
1732
1838
|
/** @description Minimum required experience in months, or `null` if not specified. */
|
|
1733
1839
|
experienceMonths: number | null;
|
|
1734
1840
|
/** @description If `true`, equivalent experience may substitute for the listed education requirements. `null` if not specified. */
|
|
@@ -1737,12 +1843,12 @@ interface components {
|
|
|
1737
1843
|
* @description Period denominator for `inOfficeFrequency`, or `null` if not specified.
|
|
1738
1844
|
* @enum {string|null}
|
|
1739
1845
|
*/
|
|
1740
|
-
inOfficePeriod:
|
|
1846
|
+
inOfficePeriod: "per_week" | "per_month" | "per_year" | null;
|
|
1741
1847
|
/** @description How often the candidate must be in-office over `inOfficePeriod`, or `null` if not specified. */
|
|
1742
1848
|
inOfficeFrequency: number | null;
|
|
1743
|
-
company: components[
|
|
1849
|
+
company: components["schemas"]["JobCompany"];
|
|
1744
1850
|
/** @description Physical office locations associated with the job. */
|
|
1745
|
-
officeLocations: components[
|
|
1851
|
+
officeLocations: components["schemas"]["JobOfficeLocation"][];
|
|
1746
1852
|
/** @description Resolved job categories (slug + board display name) — same shape as the card; names joined server-side. */
|
|
1747
1853
|
categories: {
|
|
1748
1854
|
slug: string;
|
|
@@ -1761,21 +1867,21 @@ interface components {
|
|
|
1761
1867
|
};
|
|
1762
1868
|
PublicJobAlertConfirmation: {
|
|
1763
1869
|
/** @enum {string} */
|
|
1764
|
-
object:
|
|
1870
|
+
object: "job_alert_confirmation";
|
|
1765
1871
|
/**
|
|
1766
1872
|
* @description Outcome of the confirmation. Always returned with HTTP 200 so the consumer renders by status (the token may be valid, stale, or unknown).
|
|
1767
1873
|
* @enum {string}
|
|
1768
1874
|
*/
|
|
1769
|
-
status:
|
|
1875
|
+
status: "confirmed" | "already_confirmed" | "expired" | "not_found";
|
|
1770
1876
|
};
|
|
1771
1877
|
PublicJobAlertManageResult: {
|
|
1772
1878
|
/** @enum {string} */
|
|
1773
|
-
object:
|
|
1879
|
+
object: "job_alert_manage_result";
|
|
1774
1880
|
success: boolean;
|
|
1775
1881
|
};
|
|
1776
1882
|
PublicJobAlertManageState: {
|
|
1777
1883
|
/** @enum {string} */
|
|
1778
|
-
object:
|
|
1884
|
+
object: "job_alert_manage_state";
|
|
1779
1885
|
email: string;
|
|
1780
1886
|
confirmed: boolean;
|
|
1781
1887
|
unsubscribed: boolean;
|
|
@@ -1798,18 +1904,18 @@ interface components {
|
|
|
1798
1904
|
};
|
|
1799
1905
|
PublicJobAlertResend: {
|
|
1800
1906
|
/** @enum {string} */
|
|
1801
|
-
object:
|
|
1907
|
+
object: "job_alert_confirmation_resend";
|
|
1802
1908
|
/** @enum {string} */
|
|
1803
|
-
status:
|
|
1909
|
+
status: "sent" | "not_found" | "already_confirmed" | "throttled" | "send_failed";
|
|
1804
1910
|
};
|
|
1805
1911
|
PublicJobAlertSubscription: {
|
|
1806
1912
|
/** @enum {string} */
|
|
1807
|
-
object:
|
|
1913
|
+
object: "job_alert_subscription";
|
|
1808
1914
|
/**
|
|
1809
1915
|
* @description `created` on a new subscription; `duplicate` if it existed.
|
|
1810
1916
|
* @enum {string}
|
|
1811
1917
|
*/
|
|
1812
|
-
status:
|
|
1918
|
+
status: "created" | "duplicate";
|
|
1813
1919
|
/** @description True when a double-opt-in confirmation email was sent. */
|
|
1814
1920
|
requiresConfirmation: boolean;
|
|
1815
1921
|
/** @description True if the subscriber was already email-confirmed. */
|
|
@@ -1818,7 +1924,7 @@ interface components {
|
|
|
1818
1924
|
PublicJobCard: {
|
|
1819
1925
|
id: string;
|
|
1820
1926
|
/** @enum {string} */
|
|
1821
|
-
object:
|
|
1927
|
+
object: "job_card";
|
|
1822
1928
|
slug: string;
|
|
1823
1929
|
title: string;
|
|
1824
1930
|
/**
|
|
@@ -1827,9 +1933,9 @@ interface components {
|
|
|
1827
1933
|
*/
|
|
1828
1934
|
publishedAt: string | null;
|
|
1829
1935
|
/** @enum {string|null} */
|
|
1830
|
-
employmentType:
|
|
1936
|
+
employmentType: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other" | null;
|
|
1831
1937
|
/** @enum {string|null} */
|
|
1832
|
-
remoteOption:
|
|
1938
|
+
remoteOption: "on_site" | "hybrid" | "remote" | null;
|
|
1833
1939
|
/** @description Display region label for remote jobs (e.g. "United States", "Worldwide"); `null` for non-remote jobs. */
|
|
1834
1940
|
remoteLocationLabel: string | null;
|
|
1835
1941
|
salaryMin: number | null;
|
|
@@ -1872,7 +1978,7 @@ interface components {
|
|
|
1872
1978
|
};
|
|
1873
1979
|
PublicPlace: {
|
|
1874
1980
|
/** @enum {string} */
|
|
1875
|
-
object:
|
|
1981
|
+
object: "place";
|
|
1876
1982
|
/** @description Stable place identity (locations-tree edge endpoint). */
|
|
1877
1983
|
id: string;
|
|
1878
1984
|
/** @description Parent place's `id`; `null` for a root place. */
|
|
@@ -1893,17 +1999,17 @@ interface components {
|
|
|
1893
1999
|
* @description Result ordering. `relevance` (default) ranks by search relevance with featured jobs first; `newest` orders by publish date and `salary_high` by salary (no-salary jobs last). Any explicit sort unpins featured jobs.
|
|
1894
2000
|
* @enum {string}
|
|
1895
2001
|
*/
|
|
1896
|
-
sort?:
|
|
2002
|
+
sort?: "relevance" | "newest" | "salary_high";
|
|
1897
2003
|
/** @description Optional faceted filters to narrow search results. Multi-value filters match jobs in any of the supplied values; range filters accept `gte` and `lte` bounds. */
|
|
1898
2004
|
filters?: {
|
|
1899
2005
|
/** @description Only return jobs at any of the given company IDs. Up to 10 values. */
|
|
1900
2006
|
companyId?: string[];
|
|
1901
2007
|
/** @description Only return jobs with any of the given remote-work options. Up to 10 values. */
|
|
1902
|
-
remoteOption?: (
|
|
2008
|
+
remoteOption?: ("on_site" | "hybrid" | "remote")[];
|
|
1903
2009
|
/** @description Only return jobs with any of the given employment types. Up to 10 values. */
|
|
1904
|
-
employmentType?: (
|
|
2010
|
+
employmentType?: ("full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other")[];
|
|
1905
2011
|
/** @description Only return jobs at any of the given seniority levels. Up to 10 values. */
|
|
1906
|
-
seniority?: (
|
|
2012
|
+
seniority?: ("entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive")[];
|
|
1907
2013
|
/** @description Range filter on the job's `publishedAt` timestamp. */
|
|
1908
2014
|
publishedAt?: {
|
|
1909
2015
|
/**
|
|
@@ -1937,9 +2043,9 @@ interface components {
|
|
|
1937
2043
|
};
|
|
1938
2044
|
PublicTaxonomyResolution: {
|
|
1939
2045
|
/** @enum {string} */
|
|
1940
|
-
object:
|
|
2046
|
+
object: "taxonomy_resolution";
|
|
1941
2047
|
/** @enum {string} */
|
|
1942
|
-
type:
|
|
2048
|
+
type: "category" | "skill" | "place" | "market";
|
|
1943
2049
|
/** @description Immutable English source slug — the semantic-search key. */
|
|
1944
2050
|
sourceSlug: string;
|
|
1945
2051
|
/** @description Board-language URL slug (the `<link rel=canonical>` target). */
|
|
@@ -1948,7 +2054,7 @@ interface components {
|
|
|
1948
2054
|
displayName: string;
|
|
1949
2055
|
/** @description The canonical slug to emit a 308 redirect to when the inbound slug differs; `null` otherwise. */
|
|
1950
2056
|
redirectTo: string | null;
|
|
1951
|
-
geo: components[
|
|
2057
|
+
geo: components["schemas"]["TaxonomyGeo"];
|
|
1952
2058
|
};
|
|
1953
2059
|
PublicVerifyBoardPasswordBody: {
|
|
1954
2060
|
/** @description The board password. */
|
|
@@ -1963,7 +2069,7 @@ interface components {
|
|
|
1963
2069
|
};
|
|
1964
2070
|
RedirectResolution: {
|
|
1965
2071
|
/** @enum {string} */
|
|
1966
|
-
object:
|
|
2072
|
+
object: "redirect_resolution";
|
|
1967
2073
|
path: string;
|
|
1968
2074
|
/** @description The redirect target (board-relative), or `null` when no redirect matches. The consumer 308s to `target`, or 404s when `null`. */
|
|
1969
2075
|
target: string | null;
|
|
@@ -2003,7 +2109,7 @@ interface components {
|
|
|
2003
2109
|
* @description Hint indicating whether `token` is an `access_token` or `refresh_token`. Optional.
|
|
2004
2110
|
* @enum {string}
|
|
2005
2111
|
*/
|
|
2006
|
-
token_type_hint?:
|
|
2112
|
+
token_type_hint?: "access_token" | "refresh_token";
|
|
2007
2113
|
/** @description OAuth client identifier. May be supplied here or via HTTP Basic authentication. */
|
|
2008
2114
|
client_id?: string;
|
|
2009
2115
|
/** @description OAuth client secret. May be supplied here or via HTTP Basic authentication. */
|
|
@@ -2011,7 +2117,7 @@ interface components {
|
|
|
2011
2117
|
};
|
|
2012
2118
|
SalaryCompanyIndexItem: {
|
|
2013
2119
|
/** @enum {string} */
|
|
2014
|
-
object:
|
|
2120
|
+
object: "salary_company";
|
|
2015
2121
|
companySlug: string;
|
|
2016
2122
|
companyName: string;
|
|
2017
2123
|
logoPath: string | null;
|
|
@@ -2022,7 +2128,7 @@ interface components {
|
|
|
2022
2128
|
};
|
|
2023
2129
|
SalaryLocationIndexItem: {
|
|
2024
2130
|
/** @enum {string} */
|
|
2025
|
-
object:
|
|
2131
|
+
object: "salary_location";
|
|
2026
2132
|
placeSlug: string;
|
|
2027
2133
|
placeName: string;
|
|
2028
2134
|
/** @description Slug of the parent place; `null` for a top-level node. */
|
|
@@ -2033,7 +2139,7 @@ interface components {
|
|
|
2033
2139
|
};
|
|
2034
2140
|
SalarySkillIndexItem: {
|
|
2035
2141
|
/** @enum {string} */
|
|
2036
|
-
object:
|
|
2142
|
+
object: "salary_skill";
|
|
2037
2143
|
slug: string;
|
|
2038
2144
|
name: string;
|
|
2039
2145
|
avgSalaryMin: number;
|
|
@@ -2045,7 +2151,7 @@ interface components {
|
|
|
2045
2151
|
};
|
|
2046
2152
|
SalaryTitleIndexItem: {
|
|
2047
2153
|
/** @enum {string} */
|
|
2048
|
-
object:
|
|
2154
|
+
object: "salary_title";
|
|
2049
2155
|
slug: string;
|
|
2050
2156
|
name: string;
|
|
2051
2157
|
avgSalaryMin: number;
|
|
@@ -2057,7 +2163,7 @@ interface components {
|
|
|
2057
2163
|
};
|
|
2058
2164
|
SalesLedPlan: {
|
|
2059
2165
|
/** @enum {string} */
|
|
2060
|
-
object:
|
|
2166
|
+
object: "sales_led_plan";
|
|
2061
2167
|
id: string;
|
|
2062
2168
|
name: string;
|
|
2063
2169
|
description: string;
|
|
@@ -2076,17 +2182,17 @@ interface components {
|
|
|
2076
2182
|
/** @description Saved-job row ID. */
|
|
2077
2183
|
id: string;
|
|
2078
2184
|
/** @enum {string} */
|
|
2079
|
-
object:
|
|
2185
|
+
object: "saved_job";
|
|
2080
2186
|
/** @description The saved job — also the DELETE path key. */
|
|
2081
2187
|
jobId: string;
|
|
2082
2188
|
/** Format: date-time */
|
|
2083
2189
|
savedAt: string;
|
|
2084
|
-
job: components[
|
|
2190
|
+
job: components["schemas"]["PublicJob"];
|
|
2085
2191
|
};
|
|
2086
2192
|
SearchBlogPostsBody: {
|
|
2087
2193
|
query?: string;
|
|
2088
2194
|
/** @enum {string} */
|
|
2089
|
-
status?:
|
|
2195
|
+
status?: "draft" | "scheduled" | "published";
|
|
2090
2196
|
cursor?: string | null;
|
|
2091
2197
|
limit?: number;
|
|
2092
2198
|
};
|
|
@@ -2107,15 +2213,15 @@ interface components {
|
|
|
2107
2213
|
/** @description Optional faceted filters to narrow search results. Multi-value filters match jobs in any of the supplied values; range filters accept `gte` and `lte` bounds. */
|
|
2108
2214
|
filters?: {
|
|
2109
2215
|
/** @description Only return jobs in any of the given statuses. Up to 10 values. */
|
|
2110
|
-
status?: (
|
|
2216
|
+
status?: ("draft" | "published" | "expired" | "archived")[];
|
|
2111
2217
|
/** @description Only return jobs at any of the given company IDs. Up to 10 values. */
|
|
2112
2218
|
companyId?: string[];
|
|
2113
2219
|
/** @description Only return jobs with any of the given remote-work options. Up to 10 values. */
|
|
2114
|
-
remoteOption?: (
|
|
2220
|
+
remoteOption?: ("on_site" | "hybrid" | "remote")[];
|
|
2115
2221
|
/** @description Only return jobs with any of the given employment types. Up to 10 values. */
|
|
2116
|
-
employmentType?: (
|
|
2222
|
+
employmentType?: ("full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other")[];
|
|
2117
2223
|
/** @description Only return jobs at any of the given seniority levels. Up to 10 values. */
|
|
2118
|
-
seniority?: (
|
|
2224
|
+
seniority?: ("entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive")[];
|
|
2119
2225
|
/** @description Range filter on the job's `publishedAt` timestamp. */
|
|
2120
2226
|
publishedAt?: {
|
|
2121
2227
|
/**
|
|
@@ -2142,25 +2248,25 @@ interface components {
|
|
|
2142
2248
|
/** @description Whether AdSense placements are rendered on the public board. */
|
|
2143
2249
|
adsenseEnabled?: boolean;
|
|
2144
2250
|
/** @description AdSense publisher ID in `ca-pub-XXXXXXXXXXXXXXXX` format. Pass an empty string or `null` to clear. */
|
|
2145
|
-
adsenseClientId?: string |
|
|
2251
|
+
adsenseClientId?: string | "" | unknown | unknown;
|
|
2146
2252
|
/** @description Map of placement key to slot configuration. Placement keys are lowercase alphanumeric with `-`, `_`, `.`, or `:`. */
|
|
2147
2253
|
adsenseSlots?: {
|
|
2148
|
-
[key: string]: components[
|
|
2254
|
+
[key: string]: components["schemas"]["SettingsAdsenseSlot"];
|
|
2149
2255
|
};
|
|
2150
2256
|
/** @description Contents to serve from `/ads.txt`. Up to 2,000 characters. Pass an empty string or `null` to clear. */
|
|
2151
|
-
adsTxt?: string |
|
|
2257
|
+
adsTxt?: string | "" | unknown | unknown;
|
|
2152
2258
|
};
|
|
2153
2259
|
SettingsAdsenseSlot: {
|
|
2154
2260
|
/** @description Whether this placement is rendered. */
|
|
2155
2261
|
enabled: boolean;
|
|
2156
2262
|
/** @description Ten-digit AdSense slot ID. Pass an empty string or `null` to clear. */
|
|
2157
|
-
slotId: string |
|
|
2263
|
+
slotId: string | "" | unknown | unknown;
|
|
2158
2264
|
/** @description AdSense layout type for the placement. */
|
|
2159
|
-
layout?: (
|
|
2265
|
+
layout?: ("auto" | "in-article" | "in-feed" | "fluid") | "" | unknown | unknown;
|
|
2160
2266
|
/** @description AdSense ad format. */
|
|
2161
|
-
format?: (
|
|
2267
|
+
format?: ("auto" | "horizontal" | "vertical" | "rectangle" | "responsive") | "" | unknown | unknown;
|
|
2162
2268
|
/** @description Visual style override for the placement. */
|
|
2163
|
-
style?: (
|
|
2269
|
+
style?: ("default" | "light" | "dark" | "contrast") | "" | unknown | unknown;
|
|
2164
2270
|
/** @description How often the placement is shown (e.g. once every N items). */
|
|
2165
2271
|
frequency?: number | unknown | unknown;
|
|
2166
2272
|
};
|
|
@@ -2194,7 +2300,7 @@ interface components {
|
|
|
2194
2300
|
};
|
|
2195
2301
|
SkillLocationSalary: {
|
|
2196
2302
|
/** @enum {string} */
|
|
2197
|
-
object:
|
|
2303
|
+
object: "skill_location_salary";
|
|
2198
2304
|
skillSourceSlug: string;
|
|
2199
2305
|
skillCanonicalSlug: string;
|
|
2200
2306
|
locationSourceSlug: string;
|
|
@@ -2261,16 +2367,16 @@ interface components {
|
|
|
2261
2367
|
};
|
|
2262
2368
|
SkillLocationsIndex: {
|
|
2263
2369
|
/** @enum {string} */
|
|
2264
|
-
object:
|
|
2370
|
+
object: "skill_locations_index";
|
|
2265
2371
|
sourceSlug: string;
|
|
2266
2372
|
canonicalSlug: string;
|
|
2267
2373
|
skillName: string;
|
|
2268
2374
|
currency: string;
|
|
2269
|
-
locations: components[
|
|
2375
|
+
locations: components["schemas"]["SalaryLocationIndexItem"][];
|
|
2270
2376
|
};
|
|
2271
2377
|
SkillSalaryDetail: {
|
|
2272
2378
|
/** @enum {string} */
|
|
2273
|
-
object:
|
|
2379
|
+
object: "skill_salary_detail";
|
|
2274
2380
|
/** @description Immutable English source slug — the salary-stats key. */
|
|
2275
2381
|
sourceSlug: string;
|
|
2276
2382
|
/** @description Board-language canonical URL slug — the starter 308 target. */
|
|
@@ -2333,7 +2439,7 @@ interface components {
|
|
|
2333
2439
|
};
|
|
2334
2440
|
TalentDirectoryEntry: {
|
|
2335
2441
|
/** @enum {string} */
|
|
2336
|
-
object:
|
|
2442
|
+
object: "talent_directory_entry";
|
|
2337
2443
|
handle: string | null;
|
|
2338
2444
|
displayName: string | null;
|
|
2339
2445
|
headline: string | null;
|
|
@@ -2356,7 +2462,7 @@ interface components {
|
|
|
2356
2462
|
};
|
|
2357
2463
|
TalentProfile: {
|
|
2358
2464
|
/** @enum {string} */
|
|
2359
|
-
object:
|
|
2465
|
+
object: "talent_profile";
|
|
2360
2466
|
handle: string | null;
|
|
2361
2467
|
displayName: string | null;
|
|
2362
2468
|
headline: string | null;
|
|
@@ -2415,7 +2521,7 @@ interface components {
|
|
|
2415
2521
|
} | null;
|
|
2416
2522
|
TitleLocationSalary: {
|
|
2417
2523
|
/** @enum {string} */
|
|
2418
|
-
object:
|
|
2524
|
+
object: "title_location_salary";
|
|
2419
2525
|
categorySourceSlug: string;
|
|
2420
2526
|
categoryCanonicalSlug: string;
|
|
2421
2527
|
locationSourceSlug: string;
|
|
@@ -2482,16 +2588,16 @@ interface components {
|
|
|
2482
2588
|
};
|
|
2483
2589
|
TitleLocationsIndex: {
|
|
2484
2590
|
/** @enum {string} */
|
|
2485
|
-
object:
|
|
2591
|
+
object: "title_locations_index";
|
|
2486
2592
|
sourceSlug: string;
|
|
2487
2593
|
canonicalSlug: string;
|
|
2488
2594
|
categoryName: string;
|
|
2489
2595
|
currency: string;
|
|
2490
|
-
locations: components[
|
|
2596
|
+
locations: components["schemas"]["SalaryLocationIndexItem"][];
|
|
2491
2597
|
};
|
|
2492
2598
|
TitleSalaryDetail: {
|
|
2493
2599
|
/** @enum {string} */
|
|
2494
|
-
object:
|
|
2600
|
+
object: "title_salary_detail";
|
|
2495
2601
|
/** @description Immutable English source slug — the salary-stats key. */
|
|
2496
2602
|
sourceSlug: string;
|
|
2497
2603
|
/** @description Board-language canonical URL slug — the starter 308 target. */
|
|
@@ -2563,7 +2669,7 @@ interface components {
|
|
|
2563
2669
|
* @description OAuth grant type. Either `authorization_code` to exchange an authorization code for a new token pair, or `refresh_token` to exchange a refresh token for a new token pair.
|
|
2564
2670
|
* @enum {string}
|
|
2565
2671
|
*/
|
|
2566
|
-
grant_type:
|
|
2672
|
+
grant_type: "authorization_code" | "refresh_token";
|
|
2567
2673
|
/** @description Authorization code returned from the authorization endpoint. Required when `grant_type` is `authorization_code`. */
|
|
2568
2674
|
code?: string;
|
|
2569
2675
|
/** @description Redirect URI used in the original authorization request. Must match exactly. Required when `grant_type` is `authorization_code`. */
|
|
@@ -2586,7 +2692,7 @@ interface components {
|
|
|
2586
2692
|
* @description Always `Bearer`.
|
|
2587
2693
|
* @enum {string}
|
|
2588
2694
|
*/
|
|
2589
|
-
token_type:
|
|
2695
|
+
token_type: "Bearer";
|
|
2590
2696
|
/** @description Lifetime of the access token, in seconds. */
|
|
2591
2697
|
expires_in: number;
|
|
2592
2698
|
/** @description Newly issued refresh token. Single-use; reusing it revokes the entire token chain. */
|
|
@@ -2594,6 +2700,12 @@ interface components {
|
|
|
2594
2700
|
/** @description Space-separated list of scopes granted on the issued token. */
|
|
2595
2701
|
scope: string;
|
|
2596
2702
|
};
|
|
2703
|
+
UnsubscribeBody: {
|
|
2704
|
+
boardUserId: string;
|
|
2705
|
+
/** @enum {string} */
|
|
2706
|
+
channel: "messageEmails" | "applicationEmails";
|
|
2707
|
+
token: string;
|
|
2708
|
+
};
|
|
2597
2709
|
UpdateAuthorBody: {
|
|
2598
2710
|
/** @description URL-friendly slug for the author. Auto-generated from `name` when omitted. */
|
|
2599
2711
|
slug?: string;
|
|
@@ -2608,7 +2720,7 @@ interface components {
|
|
|
2608
2720
|
* @description Author visibility status. One of `active` or `inactive`.
|
|
2609
2721
|
* @enum {string}
|
|
2610
2722
|
*/
|
|
2611
|
-
status?:
|
|
2723
|
+
status?: "active" | "inactive";
|
|
2612
2724
|
/** @description Storage ID of an uploaded avatar image (from `POST /v1/media/upload`). Pass `null` to clear an existing avatar. */
|
|
2613
2725
|
avatarStorageId?: string | null;
|
|
2614
2726
|
/** @description The author's personal website URL. Normalized to a canonical URL when stored. */
|
|
@@ -2646,7 +2758,21 @@ interface components {
|
|
|
2646
2758
|
publishedAt?: string;
|
|
2647
2759
|
title?: string;
|
|
2648
2760
|
/** @enum {string} */
|
|
2649
|
-
status?:
|
|
2761
|
+
status?: "draft" | "scheduled" | "published";
|
|
2762
|
+
};
|
|
2763
|
+
UpdateCandidateProfileBody: {
|
|
2764
|
+
displayName?: string;
|
|
2765
|
+
bio?: string;
|
|
2766
|
+
handle?: string;
|
|
2767
|
+
headline?: string;
|
|
2768
|
+
location?: string;
|
|
2769
|
+
/** @enum {string} */
|
|
2770
|
+
profileVisibility?: "hidden" | "logged_in_only" | "public";
|
|
2771
|
+
/** @enum {string} */
|
|
2772
|
+
jobSearchStatus?: "actively_looking" | "open_to_offers" | "not_looking";
|
|
2773
|
+
/** @enum {string} */
|
|
2774
|
+
jobSearchStatusVisibleTo?: "everyone" | "employers_only";
|
|
2775
|
+
openToRelocate?: boolean;
|
|
2650
2776
|
};
|
|
2651
2777
|
UpdateCompanyBody: {
|
|
2652
2778
|
/** @description Public company website URL. Normalized to a canonical apex domain when stored. */
|
|
@@ -2666,6 +2792,31 @@ interface components {
|
|
|
2666
2792
|
/** @description URL-friendly slug for the company. */
|
|
2667
2793
|
slug?: string;
|
|
2668
2794
|
};
|
|
2795
|
+
UpdateEducationBody: {
|
|
2796
|
+
institutionName?: string;
|
|
2797
|
+
institutionUrl?: string;
|
|
2798
|
+
degree?: string;
|
|
2799
|
+
fieldOfStudy?: string;
|
|
2800
|
+
grade?: string;
|
|
2801
|
+
activitiesAndSocieties?: string;
|
|
2802
|
+
startDate?: string;
|
|
2803
|
+
endDate?: string;
|
|
2804
|
+
description?: string;
|
|
2805
|
+
sortOrder?: number;
|
|
2806
|
+
};
|
|
2807
|
+
UpdateExperienceBody: {
|
|
2808
|
+
title?: string;
|
|
2809
|
+
companyName?: string;
|
|
2810
|
+
startDate?: string;
|
|
2811
|
+
companyUrl?: string;
|
|
2812
|
+
location?: string;
|
|
2813
|
+
employmentType?: string;
|
|
2814
|
+
locationType?: string;
|
|
2815
|
+
foundVia?: string;
|
|
2816
|
+
endDate?: string;
|
|
2817
|
+
description?: string;
|
|
2818
|
+
sortOrder?: number;
|
|
2819
|
+
};
|
|
2669
2820
|
UpdateJobBody: {
|
|
2670
2821
|
/** @description Identifier of the company the job belongs to. */
|
|
2671
2822
|
companyId?: string;
|
|
@@ -2677,22 +2828,22 @@ interface components {
|
|
|
2677
2828
|
* @description Employment type of the role.
|
|
2678
2829
|
* @enum {string}
|
|
2679
2830
|
*/
|
|
2680
|
-
employmentType?:
|
|
2831
|
+
employmentType?: "full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other";
|
|
2681
2832
|
/**
|
|
2682
2833
|
* @description Whether the role is on-site, hybrid, or fully remote.
|
|
2683
2834
|
* @enum {string}
|
|
2684
2835
|
*/
|
|
2685
|
-
remoteOption?:
|
|
2836
|
+
remoteOption?: "on_site" | "hybrid" | "remote";
|
|
2686
2837
|
/** @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. */
|
|
2687
2838
|
remotePermits?: {
|
|
2688
2839
|
/** @enum {string} */
|
|
2689
|
-
type:
|
|
2840
|
+
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
2690
2841
|
value: string;
|
|
2691
2842
|
}[];
|
|
2692
2843
|
/** @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. */
|
|
2693
2844
|
remoteTimezones?: {
|
|
2694
2845
|
/** @enum {string} */
|
|
2695
|
-
type:
|
|
2846
|
+
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
2696
2847
|
value: string;
|
|
2697
2848
|
plusMinus?: number;
|
|
2698
2849
|
}[];
|
|
@@ -2700,12 +2851,12 @@ interface components {
|
|
|
2700
2851
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
2701
2852
|
* @enum {string}
|
|
2702
2853
|
*/
|
|
2703
|
-
remoteSponsorship?:
|
|
2854
|
+
remoteSponsorship?: "yes" | "no" | "unknown";
|
|
2704
2855
|
/**
|
|
2705
2856
|
* @description Seniority level of the role.
|
|
2706
2857
|
* @enum {string}
|
|
2707
2858
|
*/
|
|
2708
|
-
seniority?:
|
|
2859
|
+
seniority?: "entry_level" | "associate" | "mid_level" | "senior" | "lead" | "principal" | "director" | "executive";
|
|
2709
2860
|
/** @description Where candidates apply. Accepts an HTTPS URL, a `mailto:` URI, or a bare email address (which is normalized to `mailto:` form). */
|
|
2710
2861
|
applicationUrl?: string;
|
|
2711
2862
|
/** @description Minimum salary, in `salaryCurrency` units. */
|
|
@@ -2718,7 +2869,7 @@ interface components {
|
|
|
2718
2869
|
* @description Period the `salaryMin` and `salaryMax` figures are quoted against.
|
|
2719
2870
|
* @enum {string}
|
|
2720
2871
|
*/
|
|
2721
|
-
salaryTimeframe?:
|
|
2872
|
+
salaryTimeframe?: "per_year" | "per_month" | "per_week" | "per_day" | "per_hour";
|
|
2722
2873
|
/** @description Whether the job appears in featured slots on the public board. */
|
|
2723
2874
|
isFeatured?: boolean;
|
|
2724
2875
|
/** @description Job expiry as a Unix epoch in milliseconds. On create, omitted or `null` defaults to 30 days from creation. On PATCH, pass `null` to clear an existing expiry. Past timestamps remove the job from the public board. */
|
|
@@ -2726,7 +2877,7 @@ interface components {
|
|
|
2726
2877
|
/** @description Time at which the job was first published, as a Unix epoch in milliseconds. When omitted on create with `status: "published"`, the server stamps the current time. Useful for bulk-importing historical jobs while preserving original publication dates. PATCH may overwrite an existing value but cannot clear it. */
|
|
2727
2878
|
publishedAt?: number;
|
|
2728
2879
|
/** @description Required education credentials. Each value is one of `high_school`, `associate_degree`, `bachelor_degree`, `professional_certificate`, `postgraduate_degree`, or `no_requirements`. */
|
|
2729
|
-
educationRequirements?: (
|
|
2880
|
+
educationRequirements?: ("high_school" | "associate_degree" | "bachelor_degree" | "professional_certificate" | "postgraduate_degree" | "no_requirements")[];
|
|
2730
2881
|
/** @description Minimum required experience, expressed in months. */
|
|
2731
2882
|
experienceMonths?: number;
|
|
2732
2883
|
/** @description If `true`, equivalent experience may substitute for the listed education requirements. */
|
|
@@ -2735,11 +2886,11 @@ interface components {
|
|
|
2735
2886
|
* @description Period denominator for `inOfficeFrequency`.
|
|
2736
2887
|
* @enum {string}
|
|
2737
2888
|
*/
|
|
2738
|
-
inOfficePeriod?:
|
|
2889
|
+
inOfficePeriod?: "per_week" | "per_month" | "per_year";
|
|
2739
2890
|
/** @description How often the candidate must be in-office over `inOfficePeriod`. */
|
|
2740
2891
|
inOfficeFrequency?: number;
|
|
2741
2892
|
/** @description Physical office locations associated with the job. Each entry is forward-geocoded server-side; a country mismatch returns `400 jobs_unresolvable_location`. */
|
|
2742
|
-
officeLocations?: components[
|
|
2893
|
+
officeLocations?: components["schemas"]["JobOfficeLocationInput"][];
|
|
2743
2894
|
/** @description An external identifier for the job from your own system, such as an ATS requisition ID. Use this value to look up the job later via `GET /v1/jobs?externalId=...` for deduplication. Scoped per-account: two different accounts may reuse the same `externalId` without collision. Up to 255 characters. */
|
|
2744
2895
|
externalId?: string;
|
|
2745
2896
|
/** @description Board-defined custom-field values, keyed by the field `key` (definitions, including type and option keys, are published at `GET /v1/settings/job-form`). Writes are **additive**: on `PATCH` a key you send is set/overwritten and a key you omit is preserved (unsent keys are never cleared); on `POST` this initializes the bag. Send a key with an intentional-empty value — `null`, `""`, or `[]` — to **clear** it (`""`/`null` clear any type; `[]` clears a `multi_select`); `false` and `0` are kept as real values. Values must match the field type and `single_select`/`multi_select` must use defined option **keys** (not labels); a wrong-typed value is rejected (`custom_field_wrong_type`), never silently cleared. Unknown keys are ignored. The stored bag never contains `null`/empty values. */
|
|
@@ -2749,6 +2900,20 @@ interface components {
|
|
|
2749
2900
|
/** @description The job title. */
|
|
2750
2901
|
title?: string;
|
|
2751
2902
|
};
|
|
2903
|
+
UpdateLanguagesBody: {
|
|
2904
|
+
languages: {
|
|
2905
|
+
name: string;
|
|
2906
|
+
proficiency: string;
|
|
2907
|
+
}[];
|
|
2908
|
+
};
|
|
2909
|
+
UpdateNotificationPreferenceBody: {
|
|
2910
|
+
/** @enum {string} */
|
|
2911
|
+
channel: "messageEmails" | "applicationEmails";
|
|
2912
|
+
subscribed: boolean;
|
|
2913
|
+
};
|
|
2914
|
+
UpdateSkillsBody: {
|
|
2915
|
+
skills: string[];
|
|
2916
|
+
};
|
|
2752
2917
|
UpdateTagBody: {
|
|
2753
2918
|
/** @description URL-friendly slug for the tag. Auto-generated from `name` when omitted. */
|
|
2754
2919
|
slug?: string;
|
|
@@ -2758,7 +2923,7 @@ interface components {
|
|
|
2758
2923
|
* @description Tag visibility. One of `public` or `internal`.
|
|
2759
2924
|
* @enum {string}
|
|
2760
2925
|
*/
|
|
2761
|
-
visibility?:
|
|
2926
|
+
visibility?: "public" | "internal";
|
|
2762
2927
|
/** @description SEO meta title for the tag page. */
|
|
2763
2928
|
metaTitle?: string;
|
|
2764
2929
|
/** @description SEO meta description for the tag page. */
|
|
@@ -2773,7 +2938,7 @@ interface components {
|
|
|
2773
2938
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
2774
2939
|
* @enum {string}
|
|
2775
2940
|
*/
|
|
2776
|
-
object:
|
|
2941
|
+
object: "usage";
|
|
2777
2942
|
/** @description Number of jobs currently in `published` status. */
|
|
2778
2943
|
activeJobs: number;
|
|
2779
2944
|
/** @description Plan-enforced cap on the number of published jobs. */
|
|
@@ -3006,7 +3171,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
|
|
|
3006
3171
|
* constant because the package is platform-neutral and cannot read
|
|
3007
3172
|
* package.json at runtime.
|
|
3008
3173
|
*/
|
|
3009
|
-
declare const SDK_VERSION = "1.
|
|
3174
|
+
declare const SDK_VERSION = "1.20.0";
|
|
3010
3175
|
|
|
3011
3176
|
type BoardUser = Schemas['BoardUser'];
|
|
3012
3177
|
type BoardAuthSession = Schemas['BoardAuthSession'];
|
|
@@ -3199,6 +3364,27 @@ type SavedJobsListQuery = {
|
|
|
3199
3364
|
limit?: number;
|
|
3200
3365
|
};
|
|
3201
3366
|
type SaveJobBody = Schemas['SaveJobBody'];
|
|
3367
|
+
/** The authenticated user's lean candidate profile singleton. */
|
|
3368
|
+
type CandidateProfile = Schemas['CandidateProfile'];
|
|
3369
|
+
/** Optional-field merge-patch body for `board.me.profile.update`. */
|
|
3370
|
+
type UpdateCandidateProfileBody = Schemas['UpdateCandidateProfileBody'];
|
|
3371
|
+
/** The result of `board.me.profile.handleAvailable(handle)`. */
|
|
3372
|
+
type HandleAvailability = Schemas['HandleAvailability'];
|
|
3373
|
+
type CandidateExperience = Schemas['CandidateExperience'];
|
|
3374
|
+
type CreateExperienceBody = Schemas['CreateExperienceBody'];
|
|
3375
|
+
type UpdateExperienceBody = Schemas['UpdateExperienceBody'];
|
|
3376
|
+
type CandidateEducation = Schemas['CandidateEducation'];
|
|
3377
|
+
type CreateEducationBody = Schemas['CreateEducationBody'];
|
|
3378
|
+
type UpdateEducationBody = Schemas['UpdateEducationBody'];
|
|
3379
|
+
type CandidateSkill = Schemas['CandidateSkill'];
|
|
3380
|
+
type UpdateSkillsBody = Schemas['UpdateSkillsBody'];
|
|
3381
|
+
type CandidateLanguage = Schemas['CandidateLanguage'];
|
|
3382
|
+
type UpdateLanguagesBody = Schemas['UpdateLanguagesBody'];
|
|
3383
|
+
/** The result of `board.me.profile.uploadAvatar(file)`. */
|
|
3384
|
+
type CandidateAvatar = Schemas['CandidateAvatar'];
|
|
3385
|
+
type NotificationPreference = Schemas['NotificationPreference'];
|
|
3386
|
+
type UpdateNotificationPreferenceBody = Schemas['UpdateNotificationPreferenceBody'];
|
|
3387
|
+
type UnsubscribeBody = Schemas['UnsubscribeBody'];
|
|
3202
3388
|
|
|
3203
3389
|
type JobAlertFrequency = 'daily' | 'weekly';
|
|
3204
3390
|
type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
|
|
@@ -3934,6 +4120,173 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
3934
4120
|
displayName: string | null;
|
|
3935
4121
|
emailVerified: boolean;
|
|
3936
4122
|
}>;
|
|
4123
|
+
delete(options?: FetchOptions): Promise<void>;
|
|
4124
|
+
profile: {
|
|
4125
|
+
retrieve(query?: Record<string, never>, options?: FetchOptions): Promise<{
|
|
4126
|
+
id: string;
|
|
4127
|
+
object: "candidate_profile";
|
|
4128
|
+
displayName: string | null;
|
|
4129
|
+
bio: string | null;
|
|
4130
|
+
avatarUrl: string | null;
|
|
4131
|
+
handle: string | null;
|
|
4132
|
+
headline: string | null;
|
|
4133
|
+
location: string | null;
|
|
4134
|
+
profileVisibility: "hidden" | "logged_in_only" | "public";
|
|
4135
|
+
jobSearchStatus: "actively_looking" | "open_to_offers" | "not_looking";
|
|
4136
|
+
jobSearchStatusVisibleTo: "everyone" | "employers_only";
|
|
4137
|
+
openToRelocate: boolean;
|
|
4138
|
+
}>;
|
|
4139
|
+
update(body: UpdateCandidateProfileBody, query?: Record<string, never>, options?: FetchOptions): Promise<{
|
|
4140
|
+
id: string;
|
|
4141
|
+
object: "candidate_profile";
|
|
4142
|
+
displayName: string | null;
|
|
4143
|
+
bio: string | null;
|
|
4144
|
+
avatarUrl: string | null;
|
|
4145
|
+
handle: string | null;
|
|
4146
|
+
headline: string | null;
|
|
4147
|
+
location: string | null;
|
|
4148
|
+
profileVisibility: "hidden" | "logged_in_only" | "public";
|
|
4149
|
+
jobSearchStatus: "actively_looking" | "open_to_offers" | "not_looking";
|
|
4150
|
+
jobSearchStatusVisibleTo: "everyone" | "employers_only";
|
|
4151
|
+
openToRelocate: boolean;
|
|
4152
|
+
}>;
|
|
4153
|
+
handleAvailable(handle: string, options?: FetchOptions): Promise<{
|
|
4154
|
+
object: "handle_availability";
|
|
4155
|
+
handle: string;
|
|
4156
|
+
available: boolean;
|
|
4157
|
+
}>;
|
|
4158
|
+
listExperience(options?: FetchOptions): Promise<ListEnvelope<{
|
|
4159
|
+
id: string;
|
|
4160
|
+
object: "candidate_experience";
|
|
4161
|
+
title: string;
|
|
4162
|
+
companyName: string;
|
|
4163
|
+
companyUrl: string | null;
|
|
4164
|
+
location: string | null;
|
|
4165
|
+
employmentType: string | null;
|
|
4166
|
+
locationType: string | null;
|
|
4167
|
+
foundVia: string | null;
|
|
4168
|
+
startDate: string;
|
|
4169
|
+
endDate: string | null;
|
|
4170
|
+
description: string | null;
|
|
4171
|
+
sortOrder: number;
|
|
4172
|
+
experienceSkills: string[];
|
|
4173
|
+
}>>;
|
|
4174
|
+
createExperience(body: CreateExperienceBody, options?: FetchOptions): Promise<{
|
|
4175
|
+
id: string;
|
|
4176
|
+
object: "candidate_experience";
|
|
4177
|
+
title: string;
|
|
4178
|
+
companyName: string;
|
|
4179
|
+
companyUrl: string | null;
|
|
4180
|
+
location: string | null;
|
|
4181
|
+
employmentType: string | null;
|
|
4182
|
+
locationType: string | null;
|
|
4183
|
+
foundVia: string | null;
|
|
4184
|
+
startDate: string;
|
|
4185
|
+
endDate: string | null;
|
|
4186
|
+
description: string | null;
|
|
4187
|
+
sortOrder: number;
|
|
4188
|
+
experienceSkills: string[];
|
|
4189
|
+
}>;
|
|
4190
|
+
updateExperience(id: string, body: UpdateExperienceBody, options?: FetchOptions): Promise<{
|
|
4191
|
+
id: string;
|
|
4192
|
+
object: "candidate_experience";
|
|
4193
|
+
title: string;
|
|
4194
|
+
companyName: string;
|
|
4195
|
+
companyUrl: string | null;
|
|
4196
|
+
location: string | null;
|
|
4197
|
+
employmentType: string | null;
|
|
4198
|
+
locationType: string | null;
|
|
4199
|
+
foundVia: string | null;
|
|
4200
|
+
startDate: string;
|
|
4201
|
+
endDate: string | null;
|
|
4202
|
+
description: string | null;
|
|
4203
|
+
sortOrder: number;
|
|
4204
|
+
experienceSkills: string[];
|
|
4205
|
+
}>;
|
|
4206
|
+
deleteExperience(id: string, options?: FetchOptions): Promise<void>;
|
|
4207
|
+
listEducation(options?: FetchOptions): Promise<ListEnvelope<{
|
|
4208
|
+
id: string;
|
|
4209
|
+
object: "candidate_education";
|
|
4210
|
+
institutionName: string;
|
|
4211
|
+
institutionUrl: string | null;
|
|
4212
|
+
degree: string | null;
|
|
4213
|
+
fieldOfStudy: string | null;
|
|
4214
|
+
grade: string | null;
|
|
4215
|
+
activitiesAndSocieties: string | null;
|
|
4216
|
+
startDate: string | null;
|
|
4217
|
+
endDate: string | null;
|
|
4218
|
+
description: string | null;
|
|
4219
|
+
sortOrder: number;
|
|
4220
|
+
}>>;
|
|
4221
|
+
createEducation(body: CreateEducationBody, options?: FetchOptions): Promise<{
|
|
4222
|
+
id: string;
|
|
4223
|
+
object: "candidate_education";
|
|
4224
|
+
institutionName: string;
|
|
4225
|
+
institutionUrl: string | null;
|
|
4226
|
+
degree: string | null;
|
|
4227
|
+
fieldOfStudy: string | null;
|
|
4228
|
+
grade: string | null;
|
|
4229
|
+
activitiesAndSocieties: string | null;
|
|
4230
|
+
startDate: string | null;
|
|
4231
|
+
endDate: string | null;
|
|
4232
|
+
description: string | null;
|
|
4233
|
+
sortOrder: number;
|
|
4234
|
+
}>;
|
|
4235
|
+
updateEducation(id: string, body: UpdateEducationBody, options?: FetchOptions): Promise<{
|
|
4236
|
+
id: string;
|
|
4237
|
+
object: "candidate_education";
|
|
4238
|
+
institutionName: string;
|
|
4239
|
+
institutionUrl: string | null;
|
|
4240
|
+
degree: string | null;
|
|
4241
|
+
fieldOfStudy: string | null;
|
|
4242
|
+
grade: string | null;
|
|
4243
|
+
activitiesAndSocieties: string | null;
|
|
4244
|
+
startDate: string | null;
|
|
4245
|
+
endDate: string | null;
|
|
4246
|
+
description: string | null;
|
|
4247
|
+
sortOrder: number;
|
|
4248
|
+
}>;
|
|
4249
|
+
deleteEducation(id: string, options?: FetchOptions): Promise<void>;
|
|
4250
|
+
listSkills(options?: FetchOptions): Promise<ListEnvelope<{
|
|
4251
|
+
object: "candidate_skill";
|
|
4252
|
+
name: string;
|
|
4253
|
+
jobSkillId: string | null;
|
|
4254
|
+
}>>;
|
|
4255
|
+
updateSkills(body: UpdateSkillsBody, options?: FetchOptions): Promise<ListEnvelope<{
|
|
4256
|
+
object: "candidate_skill";
|
|
4257
|
+
name: string;
|
|
4258
|
+
jobSkillId: string | null;
|
|
4259
|
+
}>>;
|
|
4260
|
+
listLanguages(options?: FetchOptions): Promise<ListEnvelope<{
|
|
4261
|
+
object: "candidate_language";
|
|
4262
|
+
name: string;
|
|
4263
|
+
proficiency: string;
|
|
4264
|
+
}>>;
|
|
4265
|
+
updateLanguages(body: UpdateLanguagesBody, options?: FetchOptions): Promise<ListEnvelope<{
|
|
4266
|
+
object: "candidate_language";
|
|
4267
|
+
name: string;
|
|
4268
|
+
proficiency: string;
|
|
4269
|
+
}>>;
|
|
4270
|
+
uploadAvatar(file: Blob, options?: FetchOptions): Promise<{
|
|
4271
|
+
object: "candidate_avatar";
|
|
4272
|
+
avatarUrl: string | null;
|
|
4273
|
+
}>;
|
|
4274
|
+
};
|
|
4275
|
+
notificationPreferences: {
|
|
4276
|
+
retrieve(options?: FetchOptions): Promise<ListEnvelope<{
|
|
4277
|
+
object: "notification_preference";
|
|
4278
|
+
channel: "messageEmails" | "applicationEmails";
|
|
4279
|
+
subscribed: boolean;
|
|
4280
|
+
updatedAt: number | null;
|
|
4281
|
+
}>>;
|
|
4282
|
+
update(body: UpdateNotificationPreferenceBody, options?: FetchOptions): Promise<ListEnvelope<{
|
|
4283
|
+
object: "notification_preference";
|
|
4284
|
+
channel: "messageEmails" | "applicationEmails";
|
|
4285
|
+
subscribed: boolean;
|
|
4286
|
+
updatedAt: number | null;
|
|
4287
|
+
}>>;
|
|
4288
|
+
unsubscribeWithToken(body: UnsubscribeBody, options?: FetchOptions): Promise<void>;
|
|
4289
|
+
};
|
|
3937
4290
|
savedJobs: {
|
|
3938
4291
|
list(query?: SavedJobsListQuery, options?: FetchOptions): Promise<ListEnvelope<{
|
|
3939
4292
|
id: string;
|
|
@@ -4650,4 +5003,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
4650
5003
|
};
|
|
4651
5004
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
4652
5005
|
|
|
4653
|
-
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 CompaniesListQuery, type CompaniesSearchBody, type CompanyCategorySalary, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanySalary, type CompanySimilarQuery, type ConsumeMagicLinkBody, type CreateBoardClientOptions, type CreateJobPostingInput, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, 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 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 VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
|
|
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 };
|