@cavuno/board 1.42.0 → 1.44.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/{_spec-LdkTxfx0.d.mts → _spec-CoL3oYpG.d.mts} +108 -57
- package/dist/{_spec-LdkTxfx0.d.ts → _spec-CoL3oYpG.d.ts} +108 -57
- package/dist/{board-Cs93Lf23.d.mts → board-BwFW1aU2.d.mts} +1 -1
- package/dist/{board-FxC9Wdhi.d.ts → board-DZCw7A6P.d.ts} +1 -1
- package/dist/filters.d.mts +2 -2
- package/dist/filters.d.ts +2 -2
- package/dist/format.d.mts +3 -3
- package/dist/format.d.ts +3 -3
- package/dist/index.d.mts +45 -10
- package/dist/index.d.ts +45 -10
- package/dist/index.js +39 -1
- package/dist/index.mjs +39 -1
- package/dist/{jobs-TIAPH3Ol.d.ts → jobs-BVazo4mA.d.ts} +1 -1
- package/dist/{jobs-BtazrWfv.d.mts → jobs-CSMshXGV.d.mts} +1 -1
- package/dist/{salaries-BEAqkaFt.d.ts → salaries-DMQsjLrV.d.ts} +2 -2
- package/dist/{salaries-CB9Ve4kS.d.mts → salaries-IJlchnWk.d.mts} +2 -2
- package/dist/{search-YhoVpXFY.d.mts → search-B6FJifRE.d.mts} +1 -1
- package/dist/{search-DWmHHXn8.d.ts → search-B7gr_wOd.d.ts} +1 -1
- package/dist/seo.d.mts +4 -4
- package/dist/seo.d.ts +4 -4
- package/dist/server.d.mts +5 -5
- package/dist/server.d.ts +5 -5
- package/dist/sitemap.d.mts +5 -5
- package/dist/sitemap.d.ts +5 -5
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/manifest.json +1 -1
|
@@ -128,7 +128,7 @@ interface components {
|
|
|
128
128
|
remaining: number;
|
|
129
129
|
};
|
|
130
130
|
Alert: {
|
|
131
|
-
/** @description Job-alert preference ID
|
|
131
|
+
/** @description Job-alert preference ID. Also the path key. */
|
|
132
132
|
id: string;
|
|
133
133
|
/** @enum {string} */
|
|
134
134
|
object: "alert";
|
|
@@ -189,7 +189,7 @@ interface components {
|
|
|
189
189
|
expiresAt: number | null;
|
|
190
190
|
};
|
|
191
191
|
Application: {
|
|
192
|
-
/** @description Application ID
|
|
192
|
+
/** @description Application ID. Also the `:applicationId` path key. */
|
|
193
193
|
id: string;
|
|
194
194
|
/** @enum {string} */
|
|
195
195
|
object: "application";
|
|
@@ -736,7 +736,7 @@ interface components {
|
|
|
736
736
|
handle: string | null;
|
|
737
737
|
/** @description Avatar URL, or `null`. */
|
|
738
738
|
avatarUrl: string | null;
|
|
739
|
-
/** @description Whether the candidate
|
|
739
|
+
/** @description Whether a resume is on file. On list rows this reflects the stored pointer; on the single-candidate detail it reflects the resolved blob (always agrees with `resume !== null`), so the two can briefly disagree if a stored file was garbage-collected. */
|
|
740
740
|
hasResume: boolean;
|
|
741
741
|
/** @description ISO-8601 timestamp of when the candidate registered. */
|
|
742
742
|
createdAt: string;
|
|
@@ -765,6 +765,7 @@ interface components {
|
|
|
765
765
|
savedJobCount: number;
|
|
766
766
|
/** @description Number of job alerts the candidate has. */
|
|
767
767
|
alertCount: number;
|
|
768
|
+
resume: components["schemas"]["CandidateResumeFile"];
|
|
768
769
|
};
|
|
769
770
|
CandidateEducation: {
|
|
770
771
|
id: string;
|
|
@@ -822,6 +823,15 @@ interface components {
|
|
|
822
823
|
jobSearchStatusVisibleTo: "everyone" | "employers_only";
|
|
823
824
|
openToRelocate: boolean;
|
|
824
825
|
};
|
|
826
|
+
/** @description Signed Convex storage URL + metadata for the uploaded resume, or `null` when no resume is on file (or the storage blob is missing). Treat the URL as sensitive PII. */
|
|
827
|
+
CandidateResumeFile: {
|
|
828
|
+
/** @description Convex storage download URL for the candidate resume. Unguessable; treat as sensitive PII. It serves the candidate’s actual resume file. Short-lived: do not cache or store it; re-fetch the candidate to get a fresh URL. */
|
|
829
|
+
url: string;
|
|
830
|
+
/** @description MIME type of the stored resume file. */
|
|
831
|
+
contentType: string;
|
|
832
|
+
/** @description Size of the resume file in bytes. */
|
|
833
|
+
sizeBytes: number;
|
|
834
|
+
} | null;
|
|
825
835
|
CandidateSkill: {
|
|
826
836
|
/** @enum {string} */
|
|
827
837
|
object: "candidate_skill";
|
|
@@ -1386,7 +1396,7 @@ interface components {
|
|
|
1386
1396
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
1387
1397
|
value: string;
|
|
1388
1398
|
}[];
|
|
1389
|
-
/** @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
|
|
1399
|
+
/** @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. */
|
|
1390
1400
|
remoteTimezones?: {
|
|
1391
1401
|
/** @enum {string} */
|
|
1392
1402
|
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
@@ -1443,7 +1453,7 @@ interface components {
|
|
|
1443
1453
|
officeLocations?: components["schemas"]["JobOfficeLocationInput"][];
|
|
1444
1454
|
/** @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. */
|
|
1445
1455
|
externalId?: string;
|
|
1446
|
-
/** @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
|
|
1456
|
+
/** @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. */
|
|
1447
1457
|
customFieldValues?: {
|
|
1448
1458
|
[key: string]: string | string[] | boolean | number | unknown | unknown;
|
|
1449
1459
|
};
|
|
@@ -1451,7 +1461,7 @@ interface components {
|
|
|
1451
1461
|
title: string;
|
|
1452
1462
|
company?: components["schemas"]["InlineCompanyInput"];
|
|
1453
1463
|
/**
|
|
1454
|
-
* @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
|
|
1464
|
+
* @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.
|
|
1455
1465
|
* @enum {string}
|
|
1456
1466
|
*/
|
|
1457
1467
|
status?: "draft" | "published";
|
|
@@ -1889,7 +1899,7 @@ interface components {
|
|
|
1889
1899
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
1890
1900
|
value: string;
|
|
1891
1901
|
}[];
|
|
1892
|
-
/** @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
|
|
1902
|
+
/** @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. */
|
|
1893
1903
|
remoteTimezones?: {
|
|
1894
1904
|
/** @enum {string} */
|
|
1895
1905
|
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
@@ -1951,7 +1961,7 @@ interface components {
|
|
|
1951
1961
|
type: string;
|
|
1952
1962
|
value: string;
|
|
1953
1963
|
}[];
|
|
1954
|
-
/** @description Read-only
|
|
1964
|
+
/** @description Read-only: derived from `remotePermits`. */
|
|
1955
1965
|
remoteWorldwide: boolean | null;
|
|
1956
1966
|
/** @description Hierarchical timezone selection. The flat `remoteAllowedTzOffsets` below is the read-only derived projection. */
|
|
1957
1967
|
remoteTimezones: {
|
|
@@ -1959,11 +1969,11 @@ interface components {
|
|
|
1959
1969
|
value: string;
|
|
1960
1970
|
plusMinus?: number;
|
|
1961
1971
|
}[];
|
|
1962
|
-
/** @description Read-only
|
|
1972
|
+
/** @description Read-only: derived from `remoteTimezones`. UTC hour offsets. */
|
|
1963
1973
|
remoteAllowedTzOffsets: number[];
|
|
1964
|
-
/** @description Read-only
|
|
1974
|
+
/** @description Read-only: derived from `remotePermits`. ISO 3166-1 alpha-2. */
|
|
1965
1975
|
remoteWorkPermitCountryCodes: string[];
|
|
1966
|
-
/** @description Read-only
|
|
1976
|
+
/** @description Read-only: derived from `remotePermits`. ISO 3166-2. */
|
|
1967
1977
|
remoteWorkPermitSubdivisionCodes: string[];
|
|
1968
1978
|
/**
|
|
1969
1979
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
@@ -2121,6 +2131,20 @@ interface components {
|
|
|
2121
2131
|
hidden: boolean;
|
|
2122
2132
|
position: number;
|
|
2123
2133
|
};
|
|
2134
|
+
EmployerProfileStats: {
|
|
2135
|
+
/** @enum {string} */
|
|
2136
|
+
object: "employer_profile_stats";
|
|
2137
|
+
/** @description Company profile-page views over the all-time window (tabs and bots excluded). */
|
|
2138
|
+
profileViews: number;
|
|
2139
|
+
};
|
|
2140
|
+
EmployerProfileViewsPoint: {
|
|
2141
|
+
/** @enum {string} */
|
|
2142
|
+
object: "employer_profile_views_point";
|
|
2143
|
+
/** @description The UTC day this bucket covers (`YYYY-MM-DD`). */
|
|
2144
|
+
date: string;
|
|
2145
|
+
/** @description Company profile-page views on this day. */
|
|
2146
|
+
views: number;
|
|
2147
|
+
};
|
|
2124
2148
|
EmployerSubscription: {
|
|
2125
2149
|
id: string;
|
|
2126
2150
|
/** @enum {string} */
|
|
@@ -2161,7 +2185,7 @@ interface components {
|
|
|
2161
2185
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
2162
2186
|
value: string;
|
|
2163
2187
|
}[];
|
|
2164
|
-
/** @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
|
|
2188
|
+
/** @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. */
|
|
2165
2189
|
remoteTimezones?: {
|
|
2166
2190
|
/** @enum {string} */
|
|
2167
2191
|
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
@@ -2213,6 +2237,19 @@ interface components {
|
|
|
2213
2237
|
/** @description The job title. */
|
|
2214
2238
|
title?: string;
|
|
2215
2239
|
};
|
|
2240
|
+
/** @description The error envelope returned by every non-2xx response. */
|
|
2241
|
+
Error: {
|
|
2242
|
+
error: {
|
|
2243
|
+
/** @description Machine-readable error code, such as `validation_bad_request` or `jobs_not_found`. */
|
|
2244
|
+
code: string;
|
|
2245
|
+
/** @description Human-readable explanation. */
|
|
2246
|
+
message: string;
|
|
2247
|
+
/** @description Unique id for this request. Include it when contacting support. */
|
|
2248
|
+
requestId: string;
|
|
2249
|
+
/** @description Structured context for some errors, such as per-field validation issues. */
|
|
2250
|
+
details?: unknown;
|
|
2251
|
+
};
|
|
2252
|
+
};
|
|
2216
2253
|
FeatureDefinition: {
|
|
2217
2254
|
id: string;
|
|
2218
2255
|
/** @enum {string} */
|
|
@@ -2506,24 +2543,24 @@ interface components {
|
|
|
2506
2543
|
description: string | null;
|
|
2507
2544
|
/** @description Where candidates apply, or `null` if not specified. An HTTPS URL or `mailto:` URI. */
|
|
2508
2545
|
applicationUrl: string | null;
|
|
2509
|
-
/** @description Hierarchical permit selection authored by the caller. Lossless round-trip with the input
|
|
2546
|
+
/** @description Hierarchical permit selection authored by the caller. Lossless round-trip with the input: `[{type:"world_region",value:"EMEA"}]` goes in and comes out the same. The three `remoteWorkPermit*` and `remoteWorldwide` fields below are read-only derived projections of this list. */
|
|
2510
2547
|
remotePermits: {
|
|
2511
2548
|
type: string;
|
|
2512
2549
|
value: string;
|
|
2513
2550
|
}[];
|
|
2514
|
-
/** @description Read-only
|
|
2551
|
+
/** @description Read-only: derived from `remotePermits`. `true` only when the authored selection is a single `{type:"worldwide"}` entry. */
|
|
2515
2552
|
remoteWorldwide: boolean | null;
|
|
2516
|
-
/** @description Hierarchical timezone selection. Lossless round-trip with the authored input. When omitted on POST, the server auto-derives this from `remotePermits` (or `[{all,all}]` if neither was provided). PATCH never auto-re-derives
|
|
2553
|
+
/** @description Hierarchical timezone selection. Lossless round-trip with the authored input. 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. The flat `remoteAllowedTzOffsets` field below is the read-only derived projection used by search. */
|
|
2517
2554
|
remoteTimezones: {
|
|
2518
2555
|
type: string;
|
|
2519
2556
|
value: string;
|
|
2520
2557
|
plusMinus?: number;
|
|
2521
2558
|
}[];
|
|
2522
|
-
/** @description Read-only
|
|
2559
|
+
/** @description Read-only: derived from `remoteTimezones` (per-country/per-region offset fan-out). UTC hour offsets used by the job-search index. */
|
|
2523
2560
|
remoteAllowedTzOffsets: number[];
|
|
2524
|
-
/** @description Read-only
|
|
2561
|
+
/** @description Read-only: derived from `remotePermits` (hierarchical groups fan out to alpha2 sets; subdivisions auto-add the parent country). ISO 3166-1 alpha-2 codes. */
|
|
2525
2562
|
remoteWorkPermitCountryCodes: string[];
|
|
2526
|
-
/** @description Read-only
|
|
2563
|
+
/** @description Read-only: derived from `remotePermits` (subdivision entries only). ISO 3166-2 codes. */
|
|
2527
2564
|
remoteWorkPermitSubdivisionCodes: string[];
|
|
2528
2565
|
/**
|
|
2529
2566
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
@@ -2589,6 +2626,10 @@ interface components {
|
|
|
2589
2626
|
/** @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. */
|
|
2590
2627
|
customFields?: components["schemas"]["CustomFieldDefinition"][];
|
|
2591
2628
|
};
|
|
2629
|
+
JobFormCustomFieldsBody: {
|
|
2630
|
+
/** @description Full replacement list of custom field definitions, in display order. Empty array removes all. Changing `type` on an existing `key` is rejected (422); delete + recreate instead. Renaming a key is delete+add and orphans per-job values under the old key. */
|
|
2631
|
+
customFields: components["schemas"]["CustomFieldDefinition"][];
|
|
2632
|
+
};
|
|
2592
2633
|
JobOfficeLocation: {
|
|
2593
2634
|
/** @description ISO 3166-1 alpha-2 country code, or `null` if the location was not resolved. */
|
|
2594
2635
|
countryCode: string | null;
|
|
@@ -2774,7 +2815,7 @@ interface components {
|
|
|
2774
2815
|
categories: string[];
|
|
2775
2816
|
/** @description External identifier supplied by the caller on create, used for deduplication via `GET /v1/jobs?externalId=...`. `null` when no external identifier was set. */
|
|
2776
2817
|
externalId: string | null;
|
|
2777
|
-
/** @description Board-defined custom-field values for this job, keyed by the field `key` (the definitions are published at `GET /v1/settings/job-form`). Each value is returned as stored: a string (`short_text` / `long_text` / a `single_select` option key), a string array (`multi_select` option keys), a boolean, or a number. Always an object
|
|
2818
|
+
/** @description Board-defined custom-field values for this job, keyed by the field `key` (the definitions are published at `GET /v1/settings/job-form`). Each value is returned as stored: a string (`short_text` / `long_text` / a `single_select` option key), a string array (`multi_select` option keys), a boolean, or a number. Always an object: `{}` when the job has no custom-field values, never `null` or a missing field. Only real values are stored, so this never contains `null` or empty values. */
|
|
2778
2819
|
customFieldValues: {
|
|
2779
2820
|
[key: string]: string | string[] | boolean | number;
|
|
2780
2821
|
};
|
|
@@ -2787,7 +2828,7 @@ interface components {
|
|
|
2787
2828
|
type: string;
|
|
2788
2829
|
/** @description Page heading (H1), with `{{board_name}}` resolved. */
|
|
2789
2830
|
title: string;
|
|
2790
|
-
/** @description Owner-authored prose as portable HTML (transitional field, ADR-0039
|
|
2831
|
+
/** @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. */
|
|
2791
2832
|
content: string;
|
|
2792
2833
|
/** @enum {string} */
|
|
2793
2834
|
contentFormat: "html";
|
|
@@ -2800,9 +2841,9 @@ interface components {
|
|
|
2800
2841
|
LocationSalaryDetail: {
|
|
2801
2842
|
/** @enum {string} */
|
|
2802
2843
|
object: "location_salary_detail";
|
|
2803
|
-
/** @description Immutable English source place slug
|
|
2844
|
+
/** @description Immutable English source place slug: the salary-stats key. */
|
|
2804
2845
|
sourceSlug: string;
|
|
2805
|
-
/** @description Board-language canonical URL slug
|
|
2846
|
+
/** @description Board-language canonical URL slug: the starter 308 target. */
|
|
2806
2847
|
canonicalSlug: string;
|
|
2807
2848
|
placeName: string;
|
|
2808
2849
|
placeId: string;
|
|
@@ -2919,7 +2960,7 @@ interface components {
|
|
|
2919
2960
|
MediaGet: components["schemas"]["MediaUpload"] & {
|
|
2920
2961
|
/** @description Time at which the file was uploaded. ISO 8601 datetime. */
|
|
2921
2962
|
uploadedAt: string;
|
|
2922
|
-
/** @description Resources currently referencing this file. Currently always `[]
|
|
2963
|
+
/** @description Resources currently referencing this file. Currently always `[]`. The resolver is not yet implemented. */
|
|
2923
2964
|
referencedBy: {
|
|
2924
2965
|
/** @description Type of the resource referencing this file. */
|
|
2925
2966
|
resourceType: string;
|
|
@@ -3142,7 +3183,7 @@ interface components {
|
|
|
3142
3183
|
requireApprovalAggregatedJobs?: boolean;
|
|
3143
3184
|
/** @description Whether visitors must sign in to view jobs. */
|
|
3144
3185
|
registrationWallEnabled?: boolean;
|
|
3145
|
-
/** @description Whether the board's built-in ATS receives applications. When `false` (external-applications-only board), posting surfaces require an external `applicationUrl` and `POST /boards/:identifier/jobs/:jobSlug/apply` rejects with `applications_native_disabled`. Turning this off UNPUBLISHES every published native-apply job (those with no external `applicationUrl`) back to draft via an asynchronous batched drain
|
|
3186
|
+
/** @description Whether the board's built-in ATS receives applications. When `false` (external-applications-only board), posting surfaces require an external `applicationUrl` and `POST /boards/:identifier/jobs/:jobSlug/apply` rejects with `applications_native_disabled`. Turning this off UNPUBLISHES every published native-apply job (those with no external `applicationUrl`) back to draft via an asynchronous batched drain. Expect published job counts to shrink over the following seconds. Nothing is deleted, and re-enabling does NOT republish the drafted jobs. Absent means `true`. */
|
|
3146
3187
|
nativeApplicationsEnabled?: boolean;
|
|
3147
3188
|
/** @description Whether applicant↔employer messaging is enabled. When `false`, the `me/conversations` route family rejects with `messaging_disabled` and new-message emails are suppressed. Absent means `true`. */
|
|
3148
3189
|
applicantMessagingEnabled?: boolean;
|
|
@@ -3187,7 +3228,7 @@ interface components {
|
|
|
3187
3228
|
talentNavLabel?: string;
|
|
3188
3229
|
/** @description Custom copy displayed on the password gate. Up to 500 characters. Pass `null` to clear. */
|
|
3189
3230
|
passwordProtectionMessage?: string | "" | unknown | unknown;
|
|
3190
|
-
/** @description Free-form configuration object merged into the existing config. Reserved keys (e.g. `passwordProtectionEnabled`, `adsenseClientId`, `jobAccessPaywallEnabled`) cannot be set here
|
|
3231
|
+
/** @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. */
|
|
3191
3232
|
config?: {
|
|
3192
3233
|
[key: string]: unknown;
|
|
3193
3234
|
};
|
|
@@ -3390,6 +3431,11 @@ interface components {
|
|
|
3390
3431
|
cursor?: string | null;
|
|
3391
3432
|
/** @description A limit on the number of objects to be returned. Limit can range between 1 and 50. */
|
|
3392
3433
|
limit?: number;
|
|
3434
|
+
/**
|
|
3435
|
+
* @description The number of posts to skip — the search page offset. Takes precedence over `cursor`; pair with the response `count` to page in parallel. `offset + limit` may not exceed 10,000.
|
|
3436
|
+
* @example 0
|
|
3437
|
+
*/
|
|
3438
|
+
offset?: number;
|
|
3393
3439
|
};
|
|
3394
3440
|
PublicBlogTag: components["schemas"]["PublicBlogTagEmbed"] & {
|
|
3395
3441
|
/** @enum {string} */
|
|
@@ -3416,7 +3462,7 @@ interface components {
|
|
|
3416
3462
|
primaryDomain: string | null;
|
|
3417
3463
|
/** @description Whitelabel toggle (default `true`). Render the "Powered by Cavuno" badge unless `false`. */
|
|
3418
3464
|
showCavunoBranding: boolean;
|
|
3419
|
-
/** @description True ONLY for the platform sandbox fixture tenant
|
|
3465
|
+
/** @description True ONLY for the platform sandbox fixture tenant: the safe target for write probes (doctor tier 3); data is reset nightly. Every real tenant board is `false`. */
|
|
3420
3466
|
sandbox: boolean;
|
|
3421
3467
|
features: {
|
|
3422
3468
|
jobAlerts: boolean;
|
|
@@ -3431,11 +3477,11 @@ interface components {
|
|
|
3431
3477
|
impressum: boolean;
|
|
3432
3478
|
/** @description Whether the board accepts native (on-board ATS) applications. `false` means external-applications-only: the server rejects native submissions to `POST /jobs/:jobSlug/apply` with `applications_native_disabled` (422). Clients should hide native apply UI and treat a job with no external `applicationUrl` as not-applyable. */
|
|
3433
3479
|
nativeApplications: boolean;
|
|
3434
|
-
/** @description Whether applicant↔employer messaging is enabled on the board. `false` means the `me/conversations` route family rejects with `messaging_disabled` (403)
|
|
3480
|
+
/** @description Whether applicant↔employer messaging is enabled on the board. `false` means the `me/conversations` route family rejects with `messaging_disabled` (403). Hide inbox/dock/Message CTAs. */
|
|
3435
3481
|
messaging: boolean;
|
|
3436
3482
|
};
|
|
3437
3483
|
/**
|
|
3438
|
-
* @description The tri-state behind `features.talentDirectory` (which is `visibility === 'public'`). Link /talent whenever this is not `'off'
|
|
3484
|
+
* @description The tri-state behind `features.talentDirectory` (which is `visibility === 'public'`). Link /talent whenever this is not `'off'`. An employers-only directory renders a sign-in upsell for anonymous visitors, matching the hosted chrome.
|
|
3439
3485
|
* @enum {string}
|
|
3440
3486
|
*/
|
|
3441
3487
|
talentDirectoryVisibility: "off" | "public" | "employers_only";
|
|
@@ -3462,9 +3508,9 @@ interface components {
|
|
|
3462
3508
|
};
|
|
3463
3509
|
};
|
|
3464
3510
|
} | null;
|
|
3465
|
-
/** @description Operator-defined custom job-field definitions (CAV-294), in display order. Board-wide; the frontend uses these to render and localize each job's opaque `customFieldValues`. Empty when the board defines none. Display-only
|
|
3511
|
+
/** @description Operator-defined custom job-field definitions (CAV-294), in display order. Board-wide; the frontend uses these to render and localize each job's opaque `customFieldValues`. Empty when the board defines none. Display-only: not filterable or searchable in v1. */
|
|
3466
3512
|
customFields: components["schemas"]["CustomFieldDefinition"][];
|
|
3467
|
-
/** @description Stored operator label overrides by config group (`jobCardLabels`, `navLabels`, `breadcrumbsLabels`, …)
|
|
3513
|
+
/** @description Stored operator label overrides by config group (`jobCardLabels`, `navLabels`, `breadcrumbsLabels`, …): plain-text chrome copy to merge over the `@cavuno/board` `uiCopy(language)` catalog via `uiCopy(language, labels)` (ADR-0059). Empty object when the board stores none. */
|
|
3468
3514
|
labels: {
|
|
3469
3515
|
[key: string]: {
|
|
3470
3516
|
[key: string]: string;
|
|
@@ -3472,7 +3518,7 @@ interface components {
|
|
|
3472
3518
|
};
|
|
3473
3519
|
/** @description Footer/brand data the hosted board footer renders (description, contact, website + social links, navigation order). The brand/social URLs (`websiteUrl`, `facebookUrl`, `linkedinUrl`, `xUrl`) are sanitized to absolute http(s); `customLinks[].url` is served verbatim (see its own note). */
|
|
3474
3520
|
footer: {
|
|
3475
|
-
/** @description Operator-written footer brand description. May carry a `{{board_name}}` placeholder
|
|
3521
|
+
/** @description Operator-written footer brand description. May carry a `{{board_name}}` placeholder. Resolve it before rendering. When null, fall back to the label catalog's `footer.defaultDescription` template. */
|
|
3476
3522
|
description: string | null;
|
|
3477
3523
|
/** @description Public contact email for the footer About column (render as `mailto:`). */
|
|
3478
3524
|
contactEmail: string | null;
|
|
@@ -3481,9 +3527,9 @@ interface components {
|
|
|
3481
3527
|
xUrl: string | null;
|
|
3482
3528
|
facebookUrl: string | null;
|
|
3483
3529
|
linkedinUrl: string | null;
|
|
3484
|
-
/** @description Operator-configured navigation order: system item ids (`home`, `companies`, `pricing`, `blog`) and `custom:<id>` refs into `customLinks`. Empty when the operator never reordered
|
|
3530
|
+
/** @description Operator-configured navigation order: system item ids (`home`, `companies`, `pricing`, `blog`) and `custom:<id>` refs into `customLinks`. Empty when the operator never reordered. Render the system defaults. System items still gate on their feature flags (e.g. `blog` only when `features.blog`). */
|
|
3485
3531
|
navigationOrder: string[];
|
|
3486
|
-
/** @description Operator-defined navigation links referenced from `navigationOrder` as `custom:<id>`; links not referenced there append after the system items (hosted-footer behavior). Each `url` is served verbatim (trimmed only) and may be a relative path (e.g. `/hub`)
|
|
3532
|
+
/** @description Operator-defined navigation links referenced from `navigationOrder` as `custom:<id>`; links not referenced there append after the system items (hosted-footer behavior). Each `url` is served verbatim (trimmed only) and may be a relative path (e.g. `/hub`): unlike the brand/social URLs it is NOT run through http(s) sanitization (matching the hosted footer, which supports relative links), so a consumer MUST sanitize it before binding to an anchor href. */
|
|
3487
3533
|
customLinks: {
|
|
3488
3534
|
id: string;
|
|
3489
3535
|
label: string;
|
|
@@ -3502,6 +3548,11 @@ interface components {
|
|
|
3502
3548
|
cursor?: string | null;
|
|
3503
3549
|
/** @description A limit on the number of objects to be returned. Limit can range between 1 and 100. */
|
|
3504
3550
|
limit?: number;
|
|
3551
|
+
/**
|
|
3552
|
+
* @description The number of companies to skip — the company catalog page offset. Takes precedence over `cursor`; pair with the response `count` to page in parallel. `offset + limit` may not exceed 10,000.
|
|
3553
|
+
* @example 0
|
|
3554
|
+
*/
|
|
3555
|
+
offset?: number;
|
|
3505
3556
|
};
|
|
3506
3557
|
/** @description Public-only links. The admin URL is intentionally omitted on public-board responses. */
|
|
3507
3558
|
PublicCompanyLinks: {
|
|
@@ -3592,7 +3643,7 @@ interface components {
|
|
|
3592
3643
|
type: string;
|
|
3593
3644
|
value: string;
|
|
3594
3645
|
}[];
|
|
3595
|
-
/** @description Read-only
|
|
3646
|
+
/** @description Read-only: derived from `remotePermits`. `true` only when the authored selection is a single `{type:"worldwide"}` entry. */
|
|
3596
3647
|
remoteWorldwide: boolean | null;
|
|
3597
3648
|
/** @description Hierarchical timezone selection. The flat `remoteAllowedTzOffsets` field below is the read-only derived projection. */
|
|
3598
3649
|
remoteTimezones: {
|
|
@@ -3600,11 +3651,11 @@ interface components {
|
|
|
3600
3651
|
value: string;
|
|
3601
3652
|
plusMinus?: number;
|
|
3602
3653
|
}[];
|
|
3603
|
-
/** @description Read-only
|
|
3654
|
+
/** @description Read-only: derived from `remoteTimezones`. UTC hour offsets used by the job-search index. */
|
|
3604
3655
|
remoteAllowedTzOffsets: number[];
|
|
3605
|
-
/** @description Read-only
|
|
3656
|
+
/** @description Read-only: derived from `remotePermits` (hierarchical groups fan out to alpha2 sets; subdivisions auto-add the parent country). ISO 3166-1 alpha-2 codes. */
|
|
3606
3657
|
remoteWorkPermitCountryCodes: string[];
|
|
3607
|
-
/** @description Read-only
|
|
3658
|
+
/** @description Read-only: derived from `remotePermits` (subdivision entries only). ISO 3166-2 codes. */
|
|
3608
3659
|
remoteWorkPermitSubdivisionCodes: string[];
|
|
3609
3660
|
/**
|
|
3610
3661
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
@@ -3627,7 +3678,7 @@ interface components {
|
|
|
3627
3678
|
company: components["schemas"]["JobCompany"];
|
|
3628
3679
|
/** @description Physical office locations associated with the job. */
|
|
3629
3680
|
officeLocations: components["schemas"]["JobOfficeLocation"][];
|
|
3630
|
-
/** @description Resolved job categories (slug + board display name)
|
|
3681
|
+
/** @description Resolved job categories (slug + board display name): same shape as the card; names joined server-side. */
|
|
3631
3682
|
categories: {
|
|
3632
3683
|
slug: string;
|
|
3633
3684
|
name: string;
|
|
@@ -3642,7 +3693,7 @@ interface components {
|
|
|
3642
3693
|
slug: string;
|
|
3643
3694
|
name: string;
|
|
3644
3695
|
}[];
|
|
3645
|
-
/** @description Opaque, display-only custom-field values (CAV-294), keyed by each field's `key`. Values are the option `key`(s) for select fields, or the raw boolean/number/text otherwise
|
|
3696
|
+
/** @description Opaque, display-only custom-field values (CAV-294), keyed by each field's `key`. Values are the option `key`(s) for select fields, or the raw boolean/number/text otherwise. Resolve labels via the board's `customFields` definitions (see `GET /v1/boards/:identifier`). `{}` when the board defines no custom fields. Not filterable or searchable in v1. */
|
|
3646
3697
|
customFieldValues: {
|
|
3647
3698
|
[key: string]: string | string[] | boolean | number;
|
|
3648
3699
|
};
|
|
@@ -3820,7 +3871,7 @@ interface components {
|
|
|
3820
3871
|
*/
|
|
3821
3872
|
limit?: number;
|
|
3822
3873
|
/**
|
|
3823
|
-
* @description The number of jobs to skip
|
|
3874
|
+
* @description The number of jobs to skip: the job catalog page offset. Takes precedence over `cursor`. `offset + limit` may not exceed 10,000.
|
|
3824
3875
|
* @example 0
|
|
3825
3876
|
*/
|
|
3826
3877
|
offset?: number;
|
|
@@ -3973,9 +4024,9 @@ interface components {
|
|
|
3973
4024
|
segment: string;
|
|
3974
4025
|
/** @description The aggregation interval (e.g. `1d`). */
|
|
3975
4026
|
interval: string;
|
|
3976
|
-
/** @description ISO date string
|
|
4027
|
+
/** @description ISO date string: inclusive start of the snapshot range. */
|
|
3977
4028
|
rangeStart: string;
|
|
3978
|
-
/** @description ISO date string
|
|
4029
|
+
/** @description ISO date string: inclusive end of the snapshot range. */
|
|
3979
4030
|
rangeEnd: string;
|
|
3980
4031
|
/** @description Provider-specific metric payload as collected. */
|
|
3981
4032
|
payload?: unknown;
|
|
@@ -3992,15 +4043,15 @@ interface components {
|
|
|
3992
4043
|
provider: string;
|
|
3993
4044
|
/** @description Whether the integration is already fully connected. */
|
|
3994
4045
|
connected: boolean;
|
|
3995
|
-
/** @description OAuth providers only
|
|
4046
|
+
/** @description OAuth providers only. The URL the user must visit to grant access. */
|
|
3996
4047
|
authorizationUrl?: string;
|
|
3997
|
-
/** @description Search Console only
|
|
4048
|
+
/** @description Search Console only: the site-verification DNS token. */
|
|
3998
4049
|
verificationToken?: string;
|
|
3999
4050
|
/** @description The board site URL the integration reports on. */
|
|
4000
4051
|
siteUrl?: string;
|
|
4001
|
-
/** @description Stripe only
|
|
4052
|
+
/** @description Stripe only: the Monetization settings deep link. */
|
|
4002
4053
|
redirectUrl?: string;
|
|
4003
|
-
/** @description Stripe only
|
|
4054
|
+
/** @description Stripe only: why no OAuth URL is returned. */
|
|
4004
4055
|
reason?: string;
|
|
4005
4056
|
};
|
|
4006
4057
|
ReportingIntegration: {
|
|
@@ -4158,7 +4209,7 @@ interface components {
|
|
|
4158
4209
|
/** @description Display price text, e.g. "Contact us". */
|
|
4159
4210
|
priceText: string;
|
|
4160
4211
|
ctaText: string;
|
|
4161
|
-
/** @description The CTA target
|
|
4212
|
+
/** @description The CTA target: a URL, mailto:, or tel: link. */
|
|
4162
4213
|
ctaDestination: string;
|
|
4163
4214
|
featuredBullets: string[];
|
|
4164
4215
|
displayOrder: number;
|
|
@@ -4179,7 +4230,7 @@ interface components {
|
|
|
4179
4230
|
id: string;
|
|
4180
4231
|
/** @enum {string} */
|
|
4181
4232
|
object: "saved_job";
|
|
4182
|
-
/** @description The saved job
|
|
4233
|
+
/** @description The saved job id. Also the DELETE path key. */
|
|
4183
4234
|
jobId: string;
|
|
4184
4235
|
/** Format: date-time */
|
|
4185
4236
|
savedAt: string;
|
|
@@ -4408,9 +4459,9 @@ interface components {
|
|
|
4408
4459
|
SkillSalaryDetail: {
|
|
4409
4460
|
/** @enum {string} */
|
|
4410
4461
|
object: "skill_salary_detail";
|
|
4411
|
-
/** @description Immutable English source slug
|
|
4462
|
+
/** @description Immutable English source slug: the salary-stats key. */
|
|
4412
4463
|
sourceSlug: string;
|
|
4413
|
-
/** @description Board-language canonical URL slug
|
|
4464
|
+
/** @description Board-language canonical URL slug: the starter 308 target. */
|
|
4414
4465
|
canonicalSlug: string;
|
|
4415
4466
|
skillName: string;
|
|
4416
4467
|
overallSalary: {
|
|
@@ -4589,7 +4640,7 @@ interface components {
|
|
|
4589
4640
|
title: string;
|
|
4590
4641
|
companyName: string;
|
|
4591
4642
|
companyUrl: string | null;
|
|
4592
|
-
/** @description Absolute logo URL for the company, resolved from `companyUrl` the same way the hosted profile renders it; `null` when the company has no usable website. Render a monogram/initials fallback when `null` (and on image error
|
|
4643
|
+
/** @description Absolute logo URL for the company, resolved from `companyUrl` the same way the hosted profile renders it; `null` when the company has no usable website. Render a monogram/initials fallback when `null` (and on image error: the URL 404s when the brand has no icon). */
|
|
4593
4644
|
companyLogoUrl: string | null;
|
|
4594
4645
|
location: string | null;
|
|
4595
4646
|
employmentType: string | null;
|
|
@@ -4738,9 +4789,9 @@ interface components {
|
|
|
4738
4789
|
TitleSalaryDetail: {
|
|
4739
4790
|
/** @enum {string} */
|
|
4740
4791
|
object: "title_salary_detail";
|
|
4741
|
-
/** @description Immutable English source slug
|
|
4792
|
+
/** @description Immutable English source slug: the salary-stats key. */
|
|
4742
4793
|
sourceSlug: string;
|
|
4743
|
-
/** @description Board-language canonical URL slug
|
|
4794
|
+
/** @description Board-language canonical URL slug: the starter 308 target. */
|
|
4744
4795
|
canonicalSlug: string;
|
|
4745
4796
|
categoryName: string;
|
|
4746
4797
|
overallSalary: {
|
|
@@ -4822,7 +4873,7 @@ interface components {
|
|
|
4822
4873
|
client_id?: string;
|
|
4823
4874
|
/** @description OAuth client secret. May be supplied here or via HTTP Basic authentication. */
|
|
4824
4875
|
client_secret?: string;
|
|
4825
|
-
/** @description Optional scope narrowing. Currently ignored
|
|
4876
|
+
/** @description Optional scope narrowing. Currently ignored: issued tokens always carry the full scope registered for the client. */
|
|
4826
4877
|
scope?: string;
|
|
4827
4878
|
};
|
|
4828
4879
|
TokenResponse: {
|
|
@@ -5068,7 +5119,7 @@ interface components {
|
|
|
5068
5119
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
5069
5120
|
value: string;
|
|
5070
5121
|
}[];
|
|
5071
|
-
/** @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
|
|
5122
|
+
/** @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. */
|
|
5072
5123
|
remoteTimezones?: {
|
|
5073
5124
|
/** @enum {string} */
|
|
5074
5125
|
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
@@ -5125,7 +5176,7 @@ interface components {
|
|
|
5125
5176
|
officeLocations?: components["schemas"]["JobOfficeLocationInput"][];
|
|
5126
5177
|
/** @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. */
|
|
5127
5178
|
externalId?: string;
|
|
5128
|
-
/** @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
|
|
5179
|
+
/** @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. */
|
|
5129
5180
|
customFieldValues?: {
|
|
5130
5181
|
[key: string]: string | string[] | boolean | number | unknown | unknown;
|
|
5131
5182
|
};
|
|
@@ -5213,7 +5264,7 @@ interface components {
|
|
|
5213
5264
|
name?: string;
|
|
5214
5265
|
};
|
|
5215
5266
|
Usage: {
|
|
5216
|
-
/** @description Unique identifier for the object. Equal to the account ID
|
|
5267
|
+
/** @description Unique identifier for the object. Equal to the account ID: usage is a per-account singleton. */
|
|
5217
5268
|
id: string;
|
|
5218
5269
|
/**
|
|
5219
5270
|
* @description String representing the object's type. Objects of the same type share the same value.
|