@cavuno/board 1.43.0 → 2.0.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-DQ2GR9lq.d.mts → _spec-C7vqY_b3.d.mts} +618 -675
- package/dist/{_spec-DQ2GR9lq.d.ts → _spec-C7vqY_b3.d.ts} +618 -675
- package/dist/bin.mjs +22 -1
- package/dist/{board-DpBlk05S.d.ts → board-B8tJGX4i.d.ts} +1 -1
- package/dist/{board-ComPm8FD.d.mts → board-DmRuCA8m.d.mts} +1 -1
- package/dist/doctor.js +22 -1
- package/dist/doctor.mjs +22 -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-BlnV6hmC.d.ts → jobs-BEYJY97F.d.ts} +1 -1
- package/dist/{jobs-DqujLqGk.d.mts → jobs-DJiISpqX.d.mts} +1 -1
- package/dist/{salaries-CNJVapW5.d.mts → salaries-B_Xb5k2s.d.mts} +2 -2
- package/dist/{salaries-DzM7rbXp.d.ts → salaries-D6q7h1J6.d.ts} +2 -2
- package/dist/{search-B1GtdfAm.d.ts → search-CnOIZEuc.d.ts} +1 -1
- package/dist/{search-CnRMApws.d.mts → search-uC_ijbdu.d.mts} +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
|
@@ -63,15 +63,6 @@ interface components {
|
|
|
63
63
|
AddCategoryAliasesBody: {
|
|
64
64
|
aliases: string[];
|
|
65
65
|
};
|
|
66
|
-
AddForagerCompanyBody: {
|
|
67
|
-
companyUrl: string;
|
|
68
|
-
companyName: string;
|
|
69
|
-
description?: string | null;
|
|
70
|
-
};
|
|
71
|
-
AddForagerExclusionBody: {
|
|
72
|
-
pattern: string;
|
|
73
|
-
type: string;
|
|
74
|
-
};
|
|
75
66
|
AddMarketAliasesBody: {
|
|
76
67
|
aliases: string[];
|
|
77
68
|
};
|
|
@@ -111,24 +102,24 @@ interface components {
|
|
|
111
102
|
price: components["schemas"]["PlanPrice"];
|
|
112
103
|
features: components["schemas"]["PlanFeature"][];
|
|
113
104
|
};
|
|
114
|
-
|
|
105
|
+
AdminSalesLedPlan: {
|
|
106
|
+
/** @description Cavuno salesLedEmployerPlans ID. */
|
|
115
107
|
id: string;
|
|
116
108
|
/** @enum {string} */
|
|
117
|
-
object: "
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
remaining: number;
|
|
109
|
+
object: "sales_led_plan";
|
|
110
|
+
name: string;
|
|
111
|
+
description: string;
|
|
112
|
+
priceText: string;
|
|
113
|
+
ctaText: string;
|
|
114
|
+
ctaDestination: string;
|
|
115
|
+
featuredBullets: string[];
|
|
116
|
+
isPublic: boolean;
|
|
117
|
+
displayOrder: number;
|
|
118
|
+
/** @description ISO-8601 creation timestamp. */
|
|
119
|
+
createdAt: string;
|
|
129
120
|
};
|
|
130
121
|
Alert: {
|
|
131
|
-
/** @description Job-alert preference ID
|
|
122
|
+
/** @description Job-alert preference ID. Also the path key. */
|
|
132
123
|
id: string;
|
|
133
124
|
/** @enum {string} */
|
|
134
125
|
object: "alert";
|
|
@@ -163,33 +154,92 @@ interface components {
|
|
|
163
154
|
salaryMax?: number | null;
|
|
164
155
|
salaryCurrency?: string | null;
|
|
165
156
|
};
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
/** @description
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
/** @
|
|
179
|
-
|
|
180
|
-
/** @
|
|
181
|
-
|
|
182
|
-
/** @description
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
157
|
+
AnalyticsChange: {
|
|
158
|
+
absolute: number;
|
|
159
|
+
/** @description Null when both periods are zero (undefined percent change). */
|
|
160
|
+
percentage: number | null;
|
|
161
|
+
};
|
|
162
|
+
AnalyticsDateRange: {
|
|
163
|
+
/** @description UTC date-only YYYY-MM-DD. */
|
|
164
|
+
start: string;
|
|
165
|
+
/** @description UTC date-only YYYY-MM-DD. */
|
|
166
|
+
end: string;
|
|
167
|
+
};
|
|
168
|
+
AnalyticsMetric: {
|
|
169
|
+
/** @enum {string} */
|
|
170
|
+
key: "sessions" | "page_views" | "average_session_duration" | "job_apply_clicks" | "impressions" | "stripe_revenue" | "adsense_revenue";
|
|
171
|
+
/** @enum {string} */
|
|
172
|
+
unit: "count" | "seconds" | "currency";
|
|
173
|
+
/** @description ISO currency code in lowercase when unit is currency. */
|
|
174
|
+
currency?: string;
|
|
175
|
+
current: {
|
|
176
|
+
total: number;
|
|
177
|
+
change: components["schemas"]["AnalyticsChange"];
|
|
178
|
+
points: components["schemas"]["AnalyticsTrendPoint"][];
|
|
179
|
+
};
|
|
180
|
+
previous: {
|
|
181
|
+
total: number;
|
|
182
|
+
points: components["schemas"]["AnalyticsTrendPoint"][];
|
|
183
|
+
};
|
|
184
|
+
/** @description Latest available day for lagging providers (GSC/AdSense) when the window tail is incomplete. */
|
|
185
|
+
dataAvailableThrough?: string;
|
|
186
|
+
};
|
|
187
|
+
AnalyticsOverview: {
|
|
188
|
+
/** @enum {string} */
|
|
189
|
+
object: "analytics_overview";
|
|
190
|
+
range: components["schemas"]["AnalyticsDateRange"];
|
|
191
|
+
comparisonRange: components["schemas"]["AnalyticsDateRange"];
|
|
192
|
+
/** @description Realtime visitors on the board right now. */
|
|
193
|
+
currentVisitors: number;
|
|
194
|
+
metrics: components["schemas"]["AnalyticsMetric"][];
|
|
195
|
+
};
|
|
196
|
+
AnalyticsTraffic: {
|
|
197
|
+
/** @enum {string} */
|
|
198
|
+
object: "analytics_traffic";
|
|
199
|
+
range: components["schemas"]["AnalyticsTrafficDateRange"];
|
|
200
|
+
pages: components["schemas"]["AnalyticsTrafficPage"][];
|
|
201
|
+
sources: components["schemas"]["AnalyticsTrafficSource"][];
|
|
202
|
+
locations: components["schemas"]["AnalyticsTrafficLocation"][];
|
|
203
|
+
devices: components["schemas"]["AnalyticsTrafficDevice"][];
|
|
204
|
+
};
|
|
205
|
+
AnalyticsTrafficDateRange: {
|
|
206
|
+
/** @description UTC date-only YYYY-MM-DD. */
|
|
207
|
+
start: string;
|
|
208
|
+
/** @description UTC date-only YYYY-MM-DD. */
|
|
209
|
+
end: string;
|
|
210
|
+
};
|
|
211
|
+
AnalyticsTrafficDevice: {
|
|
212
|
+
device: string;
|
|
213
|
+
visits: number;
|
|
214
|
+
visitsChangePercentage: number | null;
|
|
215
|
+
applyClicks: number;
|
|
216
|
+
};
|
|
217
|
+
AnalyticsTrafficLocation: {
|
|
218
|
+
countryCode: string;
|
|
219
|
+
visits: number;
|
|
220
|
+
visitsChangePercentage: number | null;
|
|
221
|
+
applyClicks: number;
|
|
222
|
+
};
|
|
223
|
+
AnalyticsTrafficPage: {
|
|
224
|
+
pathname: string;
|
|
225
|
+
visits: number;
|
|
226
|
+
visitsChangePercentage: number | null;
|
|
227
|
+
};
|
|
228
|
+
AnalyticsTrafficSource: {
|
|
229
|
+
/** @description Normalized referrer source (never a full URL). */
|
|
230
|
+
source: string;
|
|
231
|
+
visits: number;
|
|
232
|
+
visitsChangePercentage: number | null;
|
|
233
|
+
applyClicks: number;
|
|
234
|
+
};
|
|
235
|
+
AnalyticsTrendPoint: {
|
|
236
|
+
/** @description UTC date-only YYYY-MM-DD. */
|
|
237
|
+
date: string;
|
|
238
|
+
/** @description Metric value for the day, or null when a lagging provider has not reported yet. */
|
|
239
|
+
value: number | null;
|
|
190
240
|
};
|
|
191
241
|
Application: {
|
|
192
|
-
/** @description Application ID
|
|
242
|
+
/** @description Application ID. Also the `:applicationId` path key. */
|
|
193
243
|
id: string;
|
|
194
244
|
/** @enum {string} */
|
|
195
245
|
object: "application";
|
|
@@ -226,58 +276,71 @@ interface components {
|
|
|
226
276
|
/** @description Optional intended role for the approved employer, recorded in the audit log. Not yet persisted (companyMembers has no role field). */
|
|
227
277
|
role?: string;
|
|
228
278
|
};
|
|
229
|
-
|
|
230
|
-
|
|
279
|
+
BackfillBulkItemResult: {
|
|
280
|
+
companyId: string;
|
|
281
|
+
/** @enum {string} */
|
|
282
|
+
status: "ok" | "error";
|
|
283
|
+
error?: {
|
|
284
|
+
code: string;
|
|
285
|
+
message: string;
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
BackfillBulkResult: {
|
|
289
|
+
/** @enum {string} */
|
|
290
|
+
object: "backfill_bulk_result";
|
|
291
|
+
data: components["schemas"]["BackfillBulkItemResult"][];
|
|
292
|
+
};
|
|
293
|
+
BackfillCompany: {
|
|
294
|
+
/** @enum {string} */
|
|
295
|
+
object: "backfill_company";
|
|
296
|
+
companyId: string;
|
|
297
|
+
name: string;
|
|
298
|
+
website: string | null;
|
|
299
|
+
/** @enum {string} */
|
|
300
|
+
state: "backfilling" | "available" | "needs_match" | "not_backfilling";
|
|
301
|
+
candidates?: components["schemas"]["BackfillMatchCandidate"][];
|
|
302
|
+
};
|
|
303
|
+
BackfillMatchCandidate: {
|
|
304
|
+
index: number;
|
|
305
|
+
name: string;
|
|
306
|
+
website: string | null;
|
|
307
|
+
};
|
|
308
|
+
BackfillProgress: {
|
|
309
|
+
/** @enum {string} */
|
|
310
|
+
object: "backfill_progress";
|
|
311
|
+
/** @enum {string} */
|
|
312
|
+
status: "pending" | "syncing" | "enqueuing" | "enhancing" | "succeeded" | "failed";
|
|
313
|
+
jobsMatched: number;
|
|
314
|
+
jobsToEnhance: number;
|
|
315
|
+
jobsEnhanced: number;
|
|
316
|
+
jobsFailed: number;
|
|
317
|
+
} | null;
|
|
318
|
+
BackfillRule: {
|
|
319
|
+
/** @description Stable Cavuno-owned resource ID. */
|
|
231
320
|
id: string;
|
|
232
|
-
/**
|
|
233
|
-
* @description String representing the object's type. Objects of the same type share the same value.
|
|
234
|
-
* @enum {string}
|
|
235
|
-
*/
|
|
236
|
-
object: "audit_log";
|
|
237
|
-
/** @description Identifier of the account the entry belongs to. */
|
|
238
|
-
accountId: string;
|
|
239
|
-
/**
|
|
240
|
-
* @description Type of actor that performed the action.
|
|
241
|
-
* @enum {string}
|
|
242
|
-
*/
|
|
243
|
-
actorType: "api_key" | "oauth_token" | "user_session" | "system";
|
|
244
|
-
/** @description Identifier of the actor that performed the action. */
|
|
245
|
-
actorId: string;
|
|
246
|
-
/** @description Human-readable label for the actor, suitable for display. */
|
|
247
|
-
actorLabel: string;
|
|
248
|
-
/** @description Action that was performed (e.g. `jobs.create`, `companies.update`). */
|
|
249
|
-
action: string;
|
|
250
|
-
/** @description Type of resource the action was performed on. */
|
|
251
|
-
resourceType: string;
|
|
252
|
-
/** @description Identifier of the resource the action was performed on, or `null` for resource-less actions. */
|
|
253
|
-
resourceId: string | null;
|
|
254
|
-
/** @description Serialized JSON snapshot of the resource before the action, or `null` for create actions. */
|
|
255
|
-
before: string | null;
|
|
256
|
-
/** @description Serialized JSON snapshot of the resource after the action, or `null` for delete actions. */
|
|
257
|
-
after: string | null;
|
|
258
|
-
/** @description Serialized JSON of free-form metadata about the action (e.g. truncation byte sizes), or `null` if none was attached. */
|
|
259
|
-
metadata: string | null;
|
|
260
|
-
/** @description IP address the request originated from, or `null` if unavailable. */
|
|
261
|
-
ipAddress: string | null;
|
|
262
|
-
/** @description User-agent string from the request, or `null` if unavailable. */
|
|
263
|
-
userAgent: string | null;
|
|
264
|
-
/** @description Identifier of the request that produced the entry. Use this to correlate with platform logs. */
|
|
265
|
-
requestId: string;
|
|
266
|
-
/** @description Time at which the audit entry was written. Unix epoch in milliseconds. */
|
|
267
|
-
timestamp: number;
|
|
268
|
-
};
|
|
269
|
-
BatchForagerCompaniesBody: {
|
|
270
|
-
/** @enum {string} */
|
|
271
|
-
mode: "add";
|
|
272
|
-
companies: {
|
|
273
|
-
url: string;
|
|
274
|
-
name: string;
|
|
275
|
-
}[];
|
|
276
|
-
description?: string | null;
|
|
277
|
-
} | {
|
|
278
321
|
/** @enum {string} */
|
|
279
|
-
|
|
280
|
-
|
|
322
|
+
object: "backfill_rule";
|
|
323
|
+
name: string;
|
|
324
|
+
rules: {
|
|
325
|
+
/** @enum {string} */
|
|
326
|
+
match: "any" | "all";
|
|
327
|
+
conditions: {
|
|
328
|
+
/** @enum {string} */
|
|
329
|
+
field: "title" | "description";
|
|
330
|
+
/** @enum {string} */
|
|
331
|
+
operator: "contains_any" | "contains_all" | "is_not";
|
|
332
|
+
terms: string[];
|
|
333
|
+
}[];
|
|
334
|
+
}[];
|
|
335
|
+
filters: {
|
|
336
|
+
countries?: string[];
|
|
337
|
+
subdivisions?: string[];
|
|
338
|
+
seniorities?: string[];
|
|
339
|
+
employmentTypes?: string[];
|
|
340
|
+
workplaceTypes?: string[];
|
|
341
|
+
};
|
|
342
|
+
createdAt: string | null;
|
|
343
|
+
updatedAt: string | null;
|
|
281
344
|
};
|
|
282
345
|
BatchRequestBody: {
|
|
283
346
|
/** @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. */
|
|
@@ -307,11 +370,9 @@ interface components {
|
|
|
307
370
|
funding: components["schemas"]["BillingHostedCheckoutFunding"];
|
|
308
371
|
/**
|
|
309
372
|
* Format: uri
|
|
310
|
-
* @description
|
|
373
|
+
* @description Short-lived hosted checkout URL.
|
|
311
374
|
*/
|
|
312
375
|
url: string;
|
|
313
|
-
/** @description Stripe Checkout Session id (cs_…). */
|
|
314
|
-
sessionId: string;
|
|
315
376
|
/**
|
|
316
377
|
* @description Self-serve plan key. enterprise is not self-serve and returns plan_not_self_serve.
|
|
317
378
|
* @enum {string}
|
|
@@ -336,105 +397,58 @@ interface components {
|
|
|
336
397
|
/** @enum {string} */
|
|
337
398
|
object: "billing_connect";
|
|
338
399
|
connected: boolean;
|
|
339
|
-
|
|
340
|
-
chargesEnabled: boolean;
|
|
400
|
+
acceptingPayments: boolean;
|
|
341
401
|
payoutsEnabled: boolean;
|
|
342
402
|
detailsSubmitted: boolean;
|
|
343
|
-
|
|
344
|
-
};
|
|
345
|
-
BillingConnectRequirements: {
|
|
346
|
-
currentlyDue: string[];
|
|
347
|
-
eventuallyDue: string[];
|
|
348
|
-
pastDue: string[];
|
|
349
|
-
disabledReason: string | null;
|
|
350
|
-
/** @description Unix timestamp (seconds) from Stripe, or null. */
|
|
351
|
-
currentDeadline: number | null;
|
|
352
|
-
} | null;
|
|
353
|
-
BillingEntitlements: {
|
|
354
|
-
/** @enum {string} */
|
|
355
|
-
object: "billing_entitlements";
|
|
356
|
-
/** @description Platform plan slug, or 'unknown' when absent. */
|
|
357
|
-
planKey: string;
|
|
358
|
-
limits: components["schemas"]["BillingEntitlementsLimits"];
|
|
359
|
-
/**
|
|
360
|
-
* @description Whether the stored flat limits came from the plan defaults or a staff override.
|
|
361
|
-
* @enum {string|null}
|
|
362
|
-
*/
|
|
363
|
-
limitsSource: "plan" | "override" | null;
|
|
364
|
-
};
|
|
365
|
-
BillingEntitlementsLimits: {
|
|
366
|
-
activeJobs: number | null;
|
|
367
|
-
subscribers: number | null;
|
|
368
|
-
teamSeats: number | null;
|
|
369
|
-
canBePublic: boolean;
|
|
370
|
-
canRemoveBranding: boolean;
|
|
371
|
-
apiAccess: boolean;
|
|
403
|
+
actionRequired: boolean;
|
|
372
404
|
};
|
|
373
405
|
BillingHostedCheckoutFunding: {
|
|
374
406
|
/** @enum {string} */
|
|
375
407
|
type: "hosted_checkout";
|
|
376
408
|
};
|
|
377
|
-
BillingSavedPmFunding: {
|
|
378
|
-
/** @enum {string} */
|
|
379
|
-
type: "saved_pm";
|
|
380
|
-
};
|
|
381
409
|
BillingSubscription: {
|
|
382
410
|
/** @enum {string} */
|
|
383
411
|
object: "billing_subscription";
|
|
384
412
|
active: boolean;
|
|
385
413
|
status: string | null;
|
|
386
|
-
|
|
387
|
-
stripeSubscriptionId: string | null;
|
|
388
|
-
stripeCustomerId: string | null;
|
|
414
|
+
planKey: string | null;
|
|
389
415
|
/** @description Subscription period end as a millisecond epoch. */
|
|
390
416
|
currentPeriodEnd: number | null;
|
|
391
417
|
cancelAtPeriodEnd: boolean;
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
/**
|
|
401
|
-
* @description Self-serve plan key. enterprise is not self-serve and returns plan_not_self_serve.
|
|
402
|
-
* @enum {string}
|
|
403
|
-
*/
|
|
404
|
-
planKey: "starter" | "basic" | "grow" | "advanced" | "enterprise";
|
|
405
|
-
/**
|
|
406
|
-
* @description Billing interval. Defaults to monthly when omitted.
|
|
407
|
-
* @enum {string}
|
|
408
|
-
*/
|
|
409
|
-
interval?: "monthly" | "annual";
|
|
418
|
+
capabilities: {
|
|
419
|
+
activeJobsLimit: number | null;
|
|
420
|
+
subscriberLimit: number | null;
|
|
421
|
+
teamSeatLimit: number | null;
|
|
422
|
+
canBePublic: boolean;
|
|
423
|
+
canRemoveBranding: boolean;
|
|
424
|
+
apiAccess: boolean;
|
|
425
|
+
};
|
|
410
426
|
};
|
|
411
|
-
|
|
427
|
+
BillingUpgrade: {
|
|
412
428
|
/** @enum {string} */
|
|
413
429
|
object: "billing_upgrade";
|
|
414
430
|
funding: components["schemas"]["BillingHostedCheckoutFunding"];
|
|
415
431
|
/** @enum {string} */
|
|
416
|
-
status: "
|
|
432
|
+
status: "human_action_required";
|
|
417
433
|
/** Format: uri */
|
|
418
434
|
url: string;
|
|
419
|
-
sessionId: string;
|
|
420
435
|
/**
|
|
421
436
|
* @description Self-serve plan key. enterprise is not self-serve and returns plan_not_self_serve.
|
|
422
437
|
* @enum {string}
|
|
423
438
|
*/
|
|
424
439
|
planKey: "starter" | "basic" | "grow" | "advanced" | "enterprise";
|
|
425
440
|
};
|
|
426
|
-
|
|
427
|
-
/** @enum {string} */
|
|
428
|
-
object: "billing_upgrade";
|
|
429
|
-
funding: components["schemas"]["BillingSavedPmFunding"];
|
|
430
|
-
/** @enum {string} */
|
|
431
|
-
status: "upgraded";
|
|
441
|
+
BillingUpgradeBody: {
|
|
432
442
|
/**
|
|
433
443
|
* @description Self-serve plan key. enterprise is not self-serve and returns plan_not_self_serve.
|
|
434
444
|
* @enum {string}
|
|
435
445
|
*/
|
|
436
446
|
planKey: "starter" | "basic" | "grow" | "advanced" | "enterprise";
|
|
437
|
-
|
|
447
|
+
/**
|
|
448
|
+
* @description Billing interval. Defaults to monthly when omitted.
|
|
449
|
+
* @enum {string}
|
|
450
|
+
*/
|
|
451
|
+
interval?: "monthly" | "annual";
|
|
438
452
|
};
|
|
439
453
|
Block: {
|
|
440
454
|
/** @enum {string} */
|
|
@@ -650,18 +664,6 @@ interface components {
|
|
|
650
664
|
BoardAuthVerifyEmailBody: {
|
|
651
665
|
token: string;
|
|
652
666
|
};
|
|
653
|
-
BoardContentBody: {
|
|
654
|
-
/** @description The board name. */
|
|
655
|
-
boardName: string;
|
|
656
|
-
/** @description Optional board description to steer the copy. */
|
|
657
|
-
boardDescription?: string;
|
|
658
|
-
};
|
|
659
|
-
BoardRulesBody: {
|
|
660
|
-
/** @description The board name. */
|
|
661
|
-
boardName: string;
|
|
662
|
-
/** @description Optional board description to steer the scraping rules. */
|
|
663
|
-
boardDescription?: string;
|
|
664
|
-
};
|
|
665
667
|
BoardSeo: {
|
|
666
668
|
/** @enum {string} */
|
|
667
669
|
object: "board_seo";
|
|
@@ -691,16 +693,6 @@ interface components {
|
|
|
691
693
|
themeColor: string;
|
|
692
694
|
};
|
|
693
695
|
};
|
|
694
|
-
BoardThemeBody: {
|
|
695
|
-
/** @description The board name. */
|
|
696
|
-
boardName: string;
|
|
697
|
-
/** @description Optional board description to steer the palette + fonts. */
|
|
698
|
-
boardDescription?: string;
|
|
699
|
-
};
|
|
700
|
-
BoardToneBody: {
|
|
701
|
-
/** @description The board name the AI tone/voice profile is generated from. */
|
|
702
|
-
boardName: string;
|
|
703
|
-
};
|
|
704
696
|
BoardUser: {
|
|
705
697
|
/** @description Board user ID. */
|
|
706
698
|
id: string;
|
|
@@ -712,6 +704,10 @@ interface components {
|
|
|
712
704
|
displayName: string | null;
|
|
713
705
|
emailVerified: boolean;
|
|
714
706
|
};
|
|
707
|
+
BulkBackfillCompaniesBody: {
|
|
708
|
+
/** @description Ordered Cavuno company IDs (max 100). Partial success is returned per item. */
|
|
709
|
+
companyIds: string[];
|
|
710
|
+
};
|
|
715
711
|
BulkMoveApplicantsBody: {
|
|
716
712
|
applicationIds: string[];
|
|
717
713
|
/** @description The target stage id. */
|
|
@@ -805,6 +801,84 @@ interface components {
|
|
|
805
801
|
name: string;
|
|
806
802
|
proficiency: string;
|
|
807
803
|
};
|
|
804
|
+
CandidatePaywall: {
|
|
805
|
+
/** @enum {string} */
|
|
806
|
+
object: "candidate_paywall";
|
|
807
|
+
enabled: boolean;
|
|
808
|
+
previewCount: number;
|
|
809
|
+
lockHeading: string;
|
|
810
|
+
lockDescription: string;
|
|
811
|
+
buttonText: string;
|
|
812
|
+
disclaimerText: string;
|
|
813
|
+
/** @description ISO 4217 currency code, lowercase (e.g. usd). */
|
|
814
|
+
currency: string;
|
|
815
|
+
perMonthLabel: string;
|
|
816
|
+
savingsTemplate: string;
|
|
817
|
+
offers: components["schemas"]["CandidatePaywallOffer"][];
|
|
818
|
+
};
|
|
819
|
+
CandidatePaywallOffer: {
|
|
820
|
+
/** @enum {string} */
|
|
821
|
+
key: "daily" | "weekly" | "monthly" | "quarterly" | "yearly" | "lifetime";
|
|
822
|
+
/** @enum {string} */
|
|
823
|
+
kind: "recurring" | "lifetime";
|
|
824
|
+
enabled: boolean;
|
|
825
|
+
amountCents: number;
|
|
826
|
+
label: string;
|
|
827
|
+
billingLabel: string;
|
|
828
|
+
isDefault: boolean;
|
|
829
|
+
displayOrder: number;
|
|
830
|
+
/** @enum {string|null} */
|
|
831
|
+
intervalUnit: "day" | "week" | "month" | "year" | null;
|
|
832
|
+
intervalCount: number | null;
|
|
833
|
+
};
|
|
834
|
+
CandidatePaywallSubscription: {
|
|
835
|
+
/** @description Cavuno candidate access grant ID. */
|
|
836
|
+
id: string;
|
|
837
|
+
/** @enum {string} */
|
|
838
|
+
object: "candidate_paywall_subscription";
|
|
839
|
+
/** @description Board user / Candidate Cavuno ID (boardUsers id). */
|
|
840
|
+
candidateId: string;
|
|
841
|
+
email: string;
|
|
842
|
+
displayName: string;
|
|
843
|
+
/** @enum {string} */
|
|
844
|
+
kind: "recurring" | "lifetime";
|
|
845
|
+
/**
|
|
846
|
+
* @description One of: daily, weekly, monthly, quarterly, yearly, lifetime.
|
|
847
|
+
* @enum {string}
|
|
848
|
+
*/
|
|
849
|
+
offerKey: "daily" | "weekly" | "monthly" | "quarterly" | "yearly" | "lifetime";
|
|
850
|
+
/** @enum {string} */
|
|
851
|
+
status: "pending" | "active" | "trialing" | "expired" | "past_due" | "unpaid" | "incomplete" | "incomplete_expired" | "canceled";
|
|
852
|
+
amountCents: number;
|
|
853
|
+
/** @description ISO 4217 currency code, lowercase (e.g. usd). */
|
|
854
|
+
currency: string;
|
|
855
|
+
/**
|
|
856
|
+
* Format: date-time
|
|
857
|
+
* @description ISO-8601 or null.
|
|
858
|
+
*/
|
|
859
|
+
currentPeriodStart: string | null;
|
|
860
|
+
/**
|
|
861
|
+
* Format: date-time
|
|
862
|
+
* @description ISO-8601 or null.
|
|
863
|
+
*/
|
|
864
|
+
currentPeriodEnd: string | null;
|
|
865
|
+
cancelAtPeriodEnd: boolean;
|
|
866
|
+
/**
|
|
867
|
+
* Format: date-time
|
|
868
|
+
* @description ISO-8601 or null.
|
|
869
|
+
*/
|
|
870
|
+
activatedAt: string | null;
|
|
871
|
+
/**
|
|
872
|
+
* Format: date-time
|
|
873
|
+
* @description ISO-8601 or null.
|
|
874
|
+
*/
|
|
875
|
+
canceledAt: string | null;
|
|
876
|
+
/**
|
|
877
|
+
* Format: date-time
|
|
878
|
+
* @description ISO-8601 creation time.
|
|
879
|
+
*/
|
|
880
|
+
createdAt: string;
|
|
881
|
+
};
|
|
808
882
|
CandidateProfile: {
|
|
809
883
|
id: string;
|
|
810
884
|
/** @enum {string} */
|
|
@@ -823,10 +897,10 @@ interface components {
|
|
|
823
897
|
jobSearchStatusVisibleTo: "everyone" | "employers_only";
|
|
824
898
|
openToRelocate: boolean;
|
|
825
899
|
};
|
|
826
|
-
/** @description
|
|
900
|
+
/** @description Protected download path and metadata for the uploaded resume, or `null` when no resume is on file (or the storage blob is missing). */
|
|
827
901
|
CandidateResumeFile: {
|
|
828
|
-
/** @description
|
|
829
|
-
|
|
902
|
+
/** @description Stable, permission-protected Cavuno API path for downloading the candidate resume. */
|
|
903
|
+
downloadUrl: string;
|
|
830
904
|
/** @description MIME type of the stored resume file. */
|
|
831
905
|
contentType: string;
|
|
832
906
|
/** @description Size of the resume file in bytes. */
|
|
@@ -858,15 +932,6 @@ interface components {
|
|
|
858
932
|
slug: string;
|
|
859
933
|
website: string | null;
|
|
860
934
|
};
|
|
861
|
-
CollectReportsBody: {
|
|
862
|
-
/** @description Restrict collection to these providers. Omit to collect every enabled provider. */
|
|
863
|
-
providers?: ("search_console" | "adsense" | "tinybird" | "stripe")[];
|
|
864
|
-
/**
|
|
865
|
-
* Format: date-time
|
|
866
|
-
* @description Collect up to this end date (ISO-8601). Defaults to the current day.
|
|
867
|
-
*/
|
|
868
|
-
endDate?: string;
|
|
869
|
-
};
|
|
870
935
|
CompaniesBatchRequest: {
|
|
871
936
|
/** @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. */
|
|
872
937
|
operations: ({
|
|
@@ -1136,11 +1201,8 @@ interface components {
|
|
|
1136
1201
|
};
|
|
1137
1202
|
};
|
|
1138
1203
|
ConfirmImportBody: {
|
|
1139
|
-
/** @description A first-time or revised mapping to persist. Omit to
|
|
1204
|
+
/** @description A first-time or revised mapping review to persist. Omit it to accept the mapping already attached to this Import. */
|
|
1140
1205
|
inlineMapping?: {
|
|
1141
|
-
schemaFingerprint: string;
|
|
1142
|
-
/** @enum {string} */
|
|
1143
|
-
sourceFormat: "csv" | "xml";
|
|
1144
1206
|
fieldMappings: {
|
|
1145
1207
|
sourceColumn: string;
|
|
1146
1208
|
targetField: string;
|
|
@@ -1235,8 +1297,8 @@ interface components {
|
|
|
1235
1297
|
* @enum {string}
|
|
1236
1298
|
*/
|
|
1237
1299
|
status?: "active" | "inactive";
|
|
1238
|
-
/** @description
|
|
1239
|
-
|
|
1300
|
+
/** @description Cavuno media ID of an uploaded avatar image. Pass `null` to clear it. */
|
|
1301
|
+
avatarMediaId?: string | null;
|
|
1240
1302
|
/** @description The author's personal website URL. Normalized to a canonical URL when stored. */
|
|
1241
1303
|
websiteUrl?: string;
|
|
1242
1304
|
/** @description The author's X (Twitter) profile URL. Stored as the canonical `https://x.com/<handle>` URL. */
|
|
@@ -1252,6 +1314,27 @@ interface components {
|
|
|
1252
1314
|
/** @description The author's display name. */
|
|
1253
1315
|
name: string;
|
|
1254
1316
|
};
|
|
1317
|
+
CreateBackfillRuleBody: {
|
|
1318
|
+
name: string;
|
|
1319
|
+
rules: {
|
|
1320
|
+
/** @enum {string} */
|
|
1321
|
+
match: "any" | "all";
|
|
1322
|
+
conditions: {
|
|
1323
|
+
/** @enum {string} */
|
|
1324
|
+
field: "title" | "description";
|
|
1325
|
+
/** @enum {string} */
|
|
1326
|
+
operator: "contains_any" | "contains_all" | "is_not";
|
|
1327
|
+
terms: string[];
|
|
1328
|
+
}[];
|
|
1329
|
+
}[];
|
|
1330
|
+
filters?: {
|
|
1331
|
+
countries?: string[];
|
|
1332
|
+
subdivisions?: string[];
|
|
1333
|
+
seniorities?: ("entry_level" | "associate" | "mid_level" | "senior" | "director" | "executive")[];
|
|
1334
|
+
employmentTypes?: ("full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other")[];
|
|
1335
|
+
workplaceTypes?: ("remote" | "hybrid" | "onsite")[];
|
|
1336
|
+
};
|
|
1337
|
+
};
|
|
1255
1338
|
CreateBlogPostBody: {
|
|
1256
1339
|
slug?: string;
|
|
1257
1340
|
html?: string;
|
|
@@ -1260,8 +1343,8 @@ interface components {
|
|
|
1260
1343
|
featured?: boolean;
|
|
1261
1344
|
authorIds?: string[];
|
|
1262
1345
|
tagIds?: string[];
|
|
1263
|
-
|
|
1264
|
-
|
|
1346
|
+
coverMediaId?: string | null;
|
|
1347
|
+
ogImageMediaId?: string | null;
|
|
1265
1348
|
featureImageAlt?: string;
|
|
1266
1349
|
featureImageCaption?: string;
|
|
1267
1350
|
seoTitle?: string;
|
|
@@ -1346,21 +1429,6 @@ interface components {
|
|
|
1346
1429
|
description?: string;
|
|
1347
1430
|
sortOrder?: number;
|
|
1348
1431
|
};
|
|
1349
|
-
CreateFeatureBody: {
|
|
1350
|
-
/** @description Stable feature key, e.g. jobs.max_active. */
|
|
1351
|
-
key: string;
|
|
1352
|
-
name: string;
|
|
1353
|
-
/** @description Value data type, e.g. integer or string. */
|
|
1354
|
-
dataType: string;
|
|
1355
|
-
description?: string;
|
|
1356
|
-
defaultValue?: string;
|
|
1357
|
-
};
|
|
1358
|
-
CreateForagerSubscriptionBody: {
|
|
1359
|
-
name: string;
|
|
1360
|
-
rules: components["schemas"]["ForagerRule"][];
|
|
1361
|
-
filters?: components["schemas"]["ForagerFilters"];
|
|
1362
|
-
description?: string | null;
|
|
1363
|
-
};
|
|
1364
1432
|
CreateInvitationBody: {
|
|
1365
1433
|
/**
|
|
1366
1434
|
* Format: email
|
|
@@ -1396,7 +1464,7 @@ interface components {
|
|
|
1396
1464
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
1397
1465
|
value: string;
|
|
1398
1466
|
}[];
|
|
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
|
|
1467
|
+
/** @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. */
|
|
1400
1468
|
remoteTimezones?: {
|
|
1401
1469
|
/** @enum {string} */
|
|
1402
1470
|
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
@@ -1453,7 +1521,7 @@ interface components {
|
|
|
1453
1521
|
officeLocations?: components["schemas"]["JobOfficeLocationInput"][];
|
|
1454
1522
|
/** @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. */
|
|
1455
1523
|
externalId?: string;
|
|
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
|
|
1524
|
+
/** @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. */
|
|
1457
1525
|
customFieldValues?: {
|
|
1458
1526
|
[key: string]: string | string[] | boolean | number | unknown | unknown;
|
|
1459
1527
|
};
|
|
@@ -1461,7 +1529,7 @@ interface components {
|
|
|
1461
1529
|
title: string;
|
|
1462
1530
|
company?: components["schemas"]["InlineCompanyInput"];
|
|
1463
1531
|
/**
|
|
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
|
|
1532
|
+
* @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.
|
|
1465
1533
|
* @enum {string}
|
|
1466
1534
|
*/
|
|
1467
1535
|
status?: "draft" | "published";
|
|
@@ -1592,7 +1660,7 @@ interface components {
|
|
|
1592
1660
|
maxRedemptions?: number;
|
|
1593
1661
|
/**
|
|
1594
1662
|
* Format: date-time
|
|
1595
|
-
* @description ISO-8601 expiry
|
|
1663
|
+
* @description ISO-8601 expiry for the promotion code.
|
|
1596
1664
|
*/
|
|
1597
1665
|
expiresAt?: string;
|
|
1598
1666
|
firstTimeTransaction?: boolean;
|
|
@@ -1610,6 +1678,20 @@ interface components {
|
|
|
1610
1678
|
*/
|
|
1611
1679
|
statusCode: 301 | 302;
|
|
1612
1680
|
};
|
|
1681
|
+
CreateSalesLedPlanBody: {
|
|
1682
|
+
name: string;
|
|
1683
|
+
description: string;
|
|
1684
|
+
priceText: string;
|
|
1685
|
+
ctaText: string;
|
|
1686
|
+
/** @description Email address or URL. Bare emails become mailto:; bare domains become https://. */
|
|
1687
|
+
ctaDestination: string;
|
|
1688
|
+
/** @description Up to five feature bullets shown on the pricing card. */
|
|
1689
|
+
featuredBullets: string[];
|
|
1690
|
+
/** @description Whether the plan is shown on the public employer pricing page. */
|
|
1691
|
+
isPublic: boolean;
|
|
1692
|
+
/** @description Sort order among active sales-led plans (lower first). */
|
|
1693
|
+
displayOrder: number;
|
|
1694
|
+
};
|
|
1613
1695
|
CreateSkillBody: {
|
|
1614
1696
|
name: string;
|
|
1615
1697
|
slug?: string;
|
|
@@ -1899,7 +1981,7 @@ interface components {
|
|
|
1899
1981
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
1900
1982
|
value: string;
|
|
1901
1983
|
}[];
|
|
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
|
|
1984
|
+
/** @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. */
|
|
1903
1985
|
remoteTimezones?: {
|
|
1904
1986
|
/** @enum {string} */
|
|
1905
1987
|
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
@@ -1961,7 +2043,7 @@ interface components {
|
|
|
1961
2043
|
type: string;
|
|
1962
2044
|
value: string;
|
|
1963
2045
|
}[];
|
|
1964
|
-
/** @description Read-only
|
|
2046
|
+
/** @description Read-only: derived from `remotePermits`. */
|
|
1965
2047
|
remoteWorldwide: boolean | null;
|
|
1966
2048
|
/** @description Hierarchical timezone selection. The flat `remoteAllowedTzOffsets` below is the read-only derived projection. */
|
|
1967
2049
|
remoteTimezones: {
|
|
@@ -1969,11 +2051,11 @@ interface components {
|
|
|
1969
2051
|
value: string;
|
|
1970
2052
|
plusMinus?: number;
|
|
1971
2053
|
}[];
|
|
1972
|
-
/** @description Read-only
|
|
2054
|
+
/** @description Read-only: derived from `remoteTimezones`. UTC hour offsets. */
|
|
1973
2055
|
remoteAllowedTzOffsets: number[];
|
|
1974
|
-
/** @description Read-only
|
|
2056
|
+
/** @description Read-only: derived from `remotePermits`. ISO 3166-1 alpha-2. */
|
|
1975
2057
|
remoteWorkPermitCountryCodes: string[];
|
|
1976
|
-
/** @description Read-only
|
|
2058
|
+
/** @description Read-only: derived from `remotePermits`. ISO 3166-2. */
|
|
1977
2059
|
remoteWorkPermitSubdivisionCodes: string[];
|
|
1978
2060
|
/**
|
|
1979
2061
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
@@ -2131,6 +2213,20 @@ interface components {
|
|
|
2131
2213
|
hidden: boolean;
|
|
2132
2214
|
position: number;
|
|
2133
2215
|
};
|
|
2216
|
+
EmployerProfileStats: {
|
|
2217
|
+
/** @enum {string} */
|
|
2218
|
+
object: "employer_profile_stats";
|
|
2219
|
+
/** @description Company profile-page views over the all-time window (tabs and bots excluded). */
|
|
2220
|
+
profileViews: number;
|
|
2221
|
+
};
|
|
2222
|
+
EmployerProfileViewsPoint: {
|
|
2223
|
+
/** @enum {string} */
|
|
2224
|
+
object: "employer_profile_views_point";
|
|
2225
|
+
/** @description The UTC day this bucket covers (`YYYY-MM-DD`). */
|
|
2226
|
+
date: string;
|
|
2227
|
+
/** @description Company profile-page views on this day. */
|
|
2228
|
+
views: number;
|
|
2229
|
+
};
|
|
2134
2230
|
EmployerSubscription: {
|
|
2135
2231
|
id: string;
|
|
2136
2232
|
/** @enum {string} */
|
|
@@ -2146,10 +2242,7 @@ interface components {
|
|
|
2146
2242
|
cancelAtPeriodEnd: boolean;
|
|
2147
2243
|
/** @description ISO-8601 creation time. */
|
|
2148
2244
|
createdAt: string;
|
|
2149
|
-
stripeCustomerId: string | null;
|
|
2150
|
-
stripeSubscriptionId: string | null;
|
|
2151
2245
|
};
|
|
2152
|
-
EmployerSubscriptionOrNull: components["schemas"]["EmployerSubscription"] | unknown | unknown;
|
|
2153
2246
|
EmployerUpdateJobBody: {
|
|
2154
2247
|
/** @description Long-form description of the role. Up to 25,000 characters. */
|
|
2155
2248
|
description?: string;
|
|
@@ -2171,7 +2264,7 @@ interface components {
|
|
|
2171
2264
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
2172
2265
|
value: string;
|
|
2173
2266
|
}[];
|
|
2174
|
-
/** @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
|
|
2267
|
+
/** @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. */
|
|
2175
2268
|
remoteTimezones?: {
|
|
2176
2269
|
/** @enum {string} */
|
|
2177
2270
|
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
@@ -2223,16 +2316,18 @@ interface components {
|
|
|
2223
2316
|
/** @description The job title. */
|
|
2224
2317
|
title?: string;
|
|
2225
2318
|
};
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2319
|
+
/** @description The error envelope returned by every non-2xx response. */
|
|
2320
|
+
Error: {
|
|
2321
|
+
error: {
|
|
2322
|
+
/** @description Machine-readable error code, such as `validation_bad_request` or `jobs_not_found`. */
|
|
2323
|
+
code: string;
|
|
2324
|
+
/** @description Human-readable explanation. */
|
|
2325
|
+
message: string;
|
|
2326
|
+
/** @description Unique id for this request. Include it when contacting support. */
|
|
2327
|
+
requestId: string;
|
|
2328
|
+
/** @description Structured context for some errors, such as per-field validation issues. */
|
|
2329
|
+
details?: unknown;
|
|
2330
|
+
};
|
|
2236
2331
|
};
|
|
2237
2332
|
FindOrCreateCompanyBody: {
|
|
2238
2333
|
/** @description The company's display name. */
|
|
@@ -2246,109 +2341,6 @@ interface components {
|
|
|
2246
2341
|
/** @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. */
|
|
2247
2342
|
createIfMissing?: boolean;
|
|
2248
2343
|
};
|
|
2249
|
-
ForagerBackfillProgress: {
|
|
2250
|
-
id: string;
|
|
2251
|
-
/** @enum {string} */
|
|
2252
|
-
object: "forager_backfill_progress";
|
|
2253
|
-
backfillId: string;
|
|
2254
|
-
status: string;
|
|
2255
|
-
progress: {
|
|
2256
|
-
jobsMatched: number;
|
|
2257
|
-
jobsToEnhance: number;
|
|
2258
|
-
jobsEnhanced: number;
|
|
2259
|
-
jobsFailed: number;
|
|
2260
|
-
};
|
|
2261
|
-
errorMessage: string | null;
|
|
2262
|
-
createdAt: string;
|
|
2263
|
-
};
|
|
2264
|
-
ForagerBatchResult: {
|
|
2265
|
-
/** @enum {string} */
|
|
2266
|
-
object: "forager_batch_result";
|
|
2267
|
-
successCount: number;
|
|
2268
|
-
failureCount: number;
|
|
2269
|
-
};
|
|
2270
|
-
ForagerCompany: {
|
|
2271
|
-
/** @enum {string} */
|
|
2272
|
-
object: "forager_company";
|
|
2273
|
-
companyId: string;
|
|
2274
|
-
companyUrl: string;
|
|
2275
|
-
companyName: string;
|
|
2276
|
-
slug: string;
|
|
2277
|
-
about: string | null;
|
|
2278
|
-
atsType: string | null;
|
|
2279
|
-
atsIdentifier: string | null;
|
|
2280
|
-
addedAt: string;
|
|
2281
|
-
};
|
|
2282
|
-
ForagerConfig: {
|
|
2283
|
-
/** @enum {string} */
|
|
2284
|
-
object: "forager_config";
|
|
2285
|
-
configured: boolean;
|
|
2286
|
-
isActive?: boolean;
|
|
2287
|
-
foragerUserId?: string | null;
|
|
2288
|
-
privateVerticalId?: string | null;
|
|
2289
|
-
foragerPlan?: string | null;
|
|
2290
|
-
autoExpireJobs?: boolean;
|
|
2291
|
-
lastSyncedAt?: string | null;
|
|
2292
|
-
hasApiKey?: boolean;
|
|
2293
|
-
hasWebhookSecret?: boolean;
|
|
2294
|
-
};
|
|
2295
|
-
ForagerDescription: {
|
|
2296
|
-
/** @enum {string} */
|
|
2297
|
-
object: "forager_description";
|
|
2298
|
-
description: string | null;
|
|
2299
|
-
};
|
|
2300
|
-
ForagerExclusion: {
|
|
2301
|
-
id: string;
|
|
2302
|
-
/** @enum {string} */
|
|
2303
|
-
object: "forager_exclusion";
|
|
2304
|
-
pattern: string;
|
|
2305
|
-
type: string;
|
|
2306
|
-
createdAt: string;
|
|
2307
|
-
};
|
|
2308
|
-
ForagerFilters: {
|
|
2309
|
-
countries?: string[];
|
|
2310
|
-
subdivisions?: string[];
|
|
2311
|
-
seniorities?: string[];
|
|
2312
|
-
employment_types?: string[];
|
|
2313
|
-
workplace_types?: string[];
|
|
2314
|
-
};
|
|
2315
|
-
ForagerRule: {
|
|
2316
|
-
/** @enum {string} */
|
|
2317
|
-
field: "title" | "description" | "category_list";
|
|
2318
|
-
query: {
|
|
2319
|
-
[key: string]: unknown;
|
|
2320
|
-
};
|
|
2321
|
-
active?: boolean;
|
|
2322
|
-
};
|
|
2323
|
-
ForagerSubscription: {
|
|
2324
|
-
/** @enum {string} */
|
|
2325
|
-
object: "forager_subscription";
|
|
2326
|
-
verticalKey: string;
|
|
2327
|
-
verticalId: string;
|
|
2328
|
-
/** @enum {string} */
|
|
2329
|
-
kind: "role" | "company";
|
|
2330
|
-
name: string;
|
|
2331
|
-
active: boolean;
|
|
2332
|
-
description: string | null;
|
|
2333
|
-
filters?: unknown;
|
|
2334
|
-
rules?: unknown;
|
|
2335
|
-
backfillId?: string;
|
|
2336
|
-
createdAt: string;
|
|
2337
|
-
updatedAt: string;
|
|
2338
|
-
};
|
|
2339
|
-
ForagerSyncRun: {
|
|
2340
|
-
id: string;
|
|
2341
|
-
/** @enum {string} */
|
|
2342
|
-
object: "forager_sync_run";
|
|
2343
|
-
startedAt: string | null;
|
|
2344
|
-
completedAt: string;
|
|
2345
|
-
/** @enum {string} */
|
|
2346
|
-
status: "completed";
|
|
2347
|
-
jobsCreated: number;
|
|
2348
|
-
jobsRepublished: number;
|
|
2349
|
-
companiesCreated: number;
|
|
2350
|
-
totalActive: number;
|
|
2351
|
-
};
|
|
2352
2344
|
HandleAvailability: {
|
|
2353
2345
|
/** @enum {string} */
|
|
2354
2346
|
object: "handle_availability";
|
|
@@ -2369,7 +2361,6 @@ interface components {
|
|
|
2369
2361
|
updatedCount: number;
|
|
2370
2362
|
skippedCount: number;
|
|
2371
2363
|
errorCount: number;
|
|
2372
|
-
mappingId: string | null;
|
|
2373
2364
|
startedAt: string | null;
|
|
2374
2365
|
completedAt: string | null;
|
|
2375
2366
|
createdAt: string;
|
|
@@ -2393,39 +2384,36 @@ interface components {
|
|
|
2393
2384
|
updatedCount: number;
|
|
2394
2385
|
skippedCount: number;
|
|
2395
2386
|
errorCount: number;
|
|
2396
|
-
mappingId: string | null;
|
|
2397
2387
|
startedAt: string | null;
|
|
2398
2388
|
completedAt: string | null;
|
|
2399
2389
|
createdAt: string;
|
|
2400
2390
|
errors: components["schemas"]["ImportBatchError"][];
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
currency?: string;
|
|
2428
|
-
descriptionFormat?: string;
|
|
2391
|
+
/** @description Typed, operator-reviewable mapping state. Fingerprints, cache identity, AI provenance, and extraction machinery are private. */
|
|
2392
|
+
proposedMapping: {
|
|
2393
|
+
fieldMappings: {
|
|
2394
|
+
sourceColumn: string;
|
|
2395
|
+
targetField: string;
|
|
2396
|
+
confidence: number;
|
|
2397
|
+
notes?: string;
|
|
2398
|
+
}[];
|
|
2399
|
+
defaults: {
|
|
2400
|
+
employmentType?: string;
|
|
2401
|
+
remoteOption?: string;
|
|
2402
|
+
currency?: string;
|
|
2403
|
+
descriptionFormat?: string;
|
|
2404
|
+
};
|
|
2405
|
+
valueTransforms: {
|
|
2406
|
+
sourceColumn: string;
|
|
2407
|
+
targetField: string;
|
|
2408
|
+
map: {
|
|
2409
|
+
[key: string]: string;
|
|
2410
|
+
};
|
|
2411
|
+
fallback?: string;
|
|
2412
|
+
}[];
|
|
2413
|
+
unmappedSourceColumns: string[];
|
|
2414
|
+
missingRequiredTargets: string[];
|
|
2415
|
+
warnings: string[];
|
|
2416
|
+
} | null;
|
|
2429
2417
|
};
|
|
2430
2418
|
ImportQuota: {
|
|
2431
2419
|
/** @enum {string} */
|
|
@@ -2435,14 +2423,6 @@ interface components {
|
|
|
2435
2423
|
limit: number;
|
|
2436
2424
|
resetAt: string;
|
|
2437
2425
|
};
|
|
2438
|
-
ImportValueTransform: {
|
|
2439
|
-
sourceColumn: string;
|
|
2440
|
-
targetField: string;
|
|
2441
|
-
map: {
|
|
2442
|
-
[key: string]: string;
|
|
2443
|
-
};
|
|
2444
|
-
fallback?: string;
|
|
2445
|
-
};
|
|
2446
2426
|
IndexingConfig: {
|
|
2447
2427
|
/** @enum {string} */
|
|
2448
2428
|
id: "indexing_config";
|
|
@@ -2516,24 +2496,24 @@ interface components {
|
|
|
2516
2496
|
description: string | null;
|
|
2517
2497
|
/** @description Where candidates apply, or `null` if not specified. An HTTPS URL or `mailto:` URI. */
|
|
2518
2498
|
applicationUrl: string | null;
|
|
2519
|
-
/** @description Hierarchical permit selection authored by the caller. Lossless round-trip with the input
|
|
2499
|
+
/** @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. */
|
|
2520
2500
|
remotePermits: {
|
|
2521
2501
|
type: string;
|
|
2522
2502
|
value: string;
|
|
2523
2503
|
}[];
|
|
2524
|
-
/** @description Read-only
|
|
2504
|
+
/** @description Read-only: derived from `remotePermits`. `true` only when the authored selection is a single `{type:"worldwide"}` entry. */
|
|
2525
2505
|
remoteWorldwide: boolean | null;
|
|
2526
|
-
/** @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
|
|
2506
|
+
/** @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. */
|
|
2527
2507
|
remoteTimezones: {
|
|
2528
2508
|
type: string;
|
|
2529
2509
|
value: string;
|
|
2530
2510
|
plusMinus?: number;
|
|
2531
2511
|
}[];
|
|
2532
|
-
/** @description Read-only
|
|
2512
|
+
/** @description Read-only: derived from `remoteTimezones` (per-country/per-region offset fan-out). UTC hour offsets used by the job-search index. */
|
|
2533
2513
|
remoteAllowedTzOffsets: number[];
|
|
2534
|
-
/** @description Read-only
|
|
2514
|
+
/** @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. */
|
|
2535
2515
|
remoteWorkPermitCountryCodes: string[];
|
|
2536
|
-
/** @description Read-only
|
|
2516
|
+
/** @description Read-only: derived from `remotePermits` (subdivision entries only). ISO 3166-2 codes. */
|
|
2537
2517
|
remoteWorkPermitSubdivisionCodes: string[];
|
|
2538
2518
|
/**
|
|
2539
2519
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
@@ -2788,7 +2768,7 @@ interface components {
|
|
|
2788
2768
|
categories: string[];
|
|
2789
2769
|
/** @description External identifier supplied by the caller on create, used for deduplication via `GET /v1/jobs?externalId=...`. `null` when no external identifier was set. */
|
|
2790
2770
|
externalId: string | null;
|
|
2791
|
-
/** @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
|
|
2771
|
+
/** @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. */
|
|
2792
2772
|
customFieldValues: {
|
|
2793
2773
|
[key: string]: string | string[] | boolean | number;
|
|
2794
2774
|
};
|
|
@@ -2801,7 +2781,7 @@ interface components {
|
|
|
2801
2781
|
type: string;
|
|
2802
2782
|
/** @description Page heading (H1), with `{{board_name}}` resolved. */
|
|
2803
2783
|
title: string;
|
|
2804
|
-
/** @description Owner-authored prose as portable HTML (transitional field, ADR-0039
|
|
2784
|
+
/** @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. */
|
|
2805
2785
|
content: string;
|
|
2806
2786
|
/** @enum {string} */
|
|
2807
2787
|
contentFormat: "html";
|
|
@@ -2814,9 +2794,9 @@ interface components {
|
|
|
2814
2794
|
LocationSalaryDetail: {
|
|
2815
2795
|
/** @enum {string} */
|
|
2816
2796
|
object: "location_salary_detail";
|
|
2817
|
-
/** @description Immutable English source place slug
|
|
2797
|
+
/** @description Immutable English source place slug: the salary-stats key. */
|
|
2818
2798
|
sourceSlug: string;
|
|
2819
|
-
/** @description Board-language canonical URL slug
|
|
2799
|
+
/** @description Board-language canonical URL slug: the starter 308 target. */
|
|
2820
2800
|
canonicalSlug: string;
|
|
2821
2801
|
placeName: string;
|
|
2822
2802
|
placeId: string;
|
|
@@ -2930,10 +2910,16 @@ interface components {
|
|
|
2930
2910
|
sourceLocale: string | null;
|
|
2931
2911
|
createdAt: string;
|
|
2932
2912
|
};
|
|
2913
|
+
MatchBackfillCompanyBody: {
|
|
2914
|
+
/** @description Zero-based index into the short-lived candidates array from list (needs_match). Re-validated server-side. */
|
|
2915
|
+
candidateIndex: number;
|
|
2916
|
+
/** @description When true, start backfill after linking the match; when false, only record the match (available). */
|
|
2917
|
+
start: boolean;
|
|
2918
|
+
};
|
|
2933
2919
|
MediaGet: components["schemas"]["MediaUpload"] & {
|
|
2934
2920
|
/** @description Time at which the file was uploaded. ISO 8601 datetime. */
|
|
2935
2921
|
uploadedAt: string;
|
|
2936
|
-
/** @description Resources currently referencing this file. Currently always `[]
|
|
2922
|
+
/** @description Resources currently referencing this file. Currently always `[]`. The resolver is not yet implemented. */
|
|
2937
2923
|
referencedBy: {
|
|
2938
2924
|
/** @description Type of the resource referencing this file. */
|
|
2939
2925
|
resourceType: string;
|
|
@@ -2988,16 +2974,6 @@ interface components {
|
|
|
2988
2974
|
/** @description Whether the member is the account primary owner. */
|
|
2989
2975
|
isPrimaryOwner: boolean;
|
|
2990
2976
|
};
|
|
2991
|
-
MemberPermissions: {
|
|
2992
|
-
/** @enum {string} */
|
|
2993
|
-
id: "members_me";
|
|
2994
|
-
/** @enum {string} */
|
|
2995
|
-
object: "member_permissions";
|
|
2996
|
-
/** @description The acting member's role, or `null` if they are not a member. */
|
|
2997
|
-
role: string | null;
|
|
2998
|
-
/** @description The permission strings the acting member effectively holds. */
|
|
2999
|
-
permissions: string[];
|
|
3000
|
-
};
|
|
3001
2977
|
Message: {
|
|
3002
2978
|
id: string;
|
|
3003
2979
|
/** @enum {string} */
|
|
@@ -3062,10 +3038,6 @@ interface components {
|
|
|
3062
3038
|
code: string;
|
|
3063
3039
|
/** @description Human-readable error message. */
|
|
3064
3040
|
message: string;
|
|
3065
|
-
/** @description Additional structured details about the error, when present. */
|
|
3066
|
-
details?: unknown;
|
|
3067
|
-
/** @description Identifier of the request that produced the error. Use this to correlate with platform logs. */
|
|
3068
|
-
requestId?: string;
|
|
3069
3041
|
} | null;
|
|
3070
3042
|
/** @description Snapshot of the operation's progress, or `null` if the operation does not report progress. */
|
|
3071
3043
|
OperationProgress: {
|
|
@@ -3086,18 +3058,17 @@ interface components {
|
|
|
3086
3058
|
* @enum {string}
|
|
3087
3059
|
*/
|
|
3088
3060
|
object: "operation";
|
|
3089
|
-
/**
|
|
3090
|
-
|
|
3061
|
+
/**
|
|
3062
|
+
* @description Operation kind, identifying which workflow the operation runs.
|
|
3063
|
+
* @enum {string}
|
|
3064
|
+
*/
|
|
3065
|
+
kind: "domains.verify" | "imports.parse" | "imports.confirm" | "subscribers.export" | "subscribers.import" | "candidates.remove" | "employers.remove";
|
|
3091
3066
|
/**
|
|
3092
3067
|
* @description Current state of the operation.
|
|
3093
3068
|
* @enum {string}
|
|
3094
3069
|
*/
|
|
3095
3070
|
state: "pending" | "running" | "succeeded" | "failed" | "cancelled";
|
|
3096
|
-
/** @description Identifier of the account the operation belongs to. */
|
|
3097
|
-
accountId: string;
|
|
3098
3071
|
progress: components["schemas"]["OperationProgress"];
|
|
3099
|
-
/** @description Operation result, populated once the operation reaches `succeeded`. Shape varies by `kind`. */
|
|
3100
|
-
result?: unknown;
|
|
3101
3072
|
error: components["schemas"]["OperationErrorEnvelope"];
|
|
3102
3073
|
/** @description Time at which the operation was created. ISO 8601 datetime. */
|
|
3103
3074
|
createdAt: string;
|
|
@@ -3107,16 +3078,74 @@ interface components {
|
|
|
3107
3078
|
completedAt: string | null;
|
|
3108
3079
|
/** @description Whether cancellation of the operation has been requested. */
|
|
3109
3080
|
cancelRequested: boolean;
|
|
3110
|
-
/** @description
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3081
|
+
/** @description Stable product resource affected by the operation, or `null` when no public resource applies. */
|
|
3082
|
+
resource: {
|
|
3083
|
+
/** @enum {string} */
|
|
3084
|
+
object: "company" | "domain" | "import" | "employer" | "candidate";
|
|
3085
|
+
id: string;
|
|
3086
|
+
} | null;
|
|
3116
3087
|
};
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3088
|
+
Operator: {
|
|
3089
|
+
/**
|
|
3090
|
+
* @description String representing the object's type. Objects of the same type share the same value.
|
|
3091
|
+
* @enum {string}
|
|
3092
|
+
*/
|
|
3093
|
+
object: "operator";
|
|
3094
|
+
/** @description The Board the credential is bound to. */
|
|
3095
|
+
board: {
|
|
3096
|
+
/** @description Unique identifier for the Board (account). */
|
|
3097
|
+
id: string;
|
|
3098
|
+
/** @description URL slug of the Board. */
|
|
3099
|
+
slug: string;
|
|
3100
|
+
/** @description Display name of the Board. */
|
|
3101
|
+
name: string;
|
|
3102
|
+
};
|
|
3103
|
+
/** @description The authenticated principal. */
|
|
3104
|
+
actor: {
|
|
3105
|
+
/**
|
|
3106
|
+
* @description How this request authenticated.
|
|
3107
|
+
* @enum {string}
|
|
3108
|
+
*/
|
|
3109
|
+
type: "api_key" | "oauth_token" | "user_session";
|
|
3110
|
+
/** @description Current live membership role. Always `null` for API keys (Board-owned service credentials). Null for OAuth/session only when no live membership remains. */
|
|
3111
|
+
role: string | null;
|
|
3112
|
+
/** @description Current effective product permissions. API keys use the key's explicit scopes; OAuth is the intersection of token scopes and the consenting member's live permissions; sessions use the member's live permissions. */
|
|
3113
|
+
permissions: string[];
|
|
3114
|
+
/** @description Credential scopes for API keys and OAuth tokens. Always `null` for user sessions. */
|
|
3115
|
+
scopes: string[] | null;
|
|
3116
|
+
};
|
|
3117
|
+
};
|
|
3118
|
+
OperatorSettingsConfig: {
|
|
3119
|
+
passwordProtectionEnabled?: boolean;
|
|
3120
|
+
jobAlertsEnabled?: boolean;
|
|
3121
|
+
candidatesEnabled?: boolean;
|
|
3122
|
+
employersEnabled?: boolean;
|
|
3123
|
+
blogEnabled?: boolean;
|
|
3124
|
+
impressumEnabled?: boolean;
|
|
3125
|
+
requireApprovalFreeJobs?: boolean;
|
|
3126
|
+
requireApprovalAggregatedJobs?: boolean;
|
|
3127
|
+
registrationWallEnabled?: boolean;
|
|
3128
|
+
nativeApplicationsEnabled?: boolean;
|
|
3129
|
+
applicantMessagingEnabled?: boolean;
|
|
3130
|
+
requireCookieConsent?: boolean;
|
|
3131
|
+
showCavunoBranding?: boolean;
|
|
3132
|
+
cookieBannerTitle?: string;
|
|
3133
|
+
cookieBannerDescription?: string;
|
|
3134
|
+
cookieBannerRejectLabel?: string;
|
|
3135
|
+
cookieBannerAcceptLabel?: string;
|
|
3136
|
+
cookieBannerManageLabel?: string;
|
|
3137
|
+
talentNavLabel?: string;
|
|
3138
|
+
contactEmail?: string | null;
|
|
3139
|
+
companyLegalName?: string | null;
|
|
3140
|
+
companyAddress?: string | null;
|
|
3141
|
+
companyWebsiteUrl?: string | null;
|
|
3142
|
+
companyXHandle?: string | null;
|
|
3143
|
+
companyFacebookUrl?: string | null;
|
|
3144
|
+
companyLinkedinUrl?: string | null;
|
|
3145
|
+
passwordProtectionMessage?: string | null;
|
|
3146
|
+
defaultJobDurationDays?: number;
|
|
3147
|
+
/** @enum {string} */
|
|
3148
|
+
talentDirectoryVisibility?: "off" | "public" | "employers_only";
|
|
3120
3149
|
};
|
|
3121
3150
|
PatchNotificationPreferencesBody: {
|
|
3122
3151
|
backfillDigest?: boolean;
|
|
@@ -3134,10 +3163,10 @@ interface components {
|
|
|
3134
3163
|
slug?: string;
|
|
3135
3164
|
/** @description Identifier of the custom domain to use as the primary public URL. */
|
|
3136
3165
|
primaryDomainId?: string;
|
|
3137
|
-
/** @description
|
|
3138
|
-
|
|
3139
|
-
/** @description
|
|
3140
|
-
|
|
3166
|
+
/** @description Cavuno media ID returned by `POST /v1/media/upload` with `purpose=board_logo`. */
|
|
3167
|
+
logoMediaId?: string;
|
|
3168
|
+
/** @description Cavuno media ID returned by `POST /v1/media/upload` with `purpose=board_hero`. */
|
|
3169
|
+
heroMediaId?: string;
|
|
3141
3170
|
/** @description Whether the board sits behind a password gate. Use `POST /v1/settings/password-protection` to set the actual password before enabling. */
|
|
3142
3171
|
passwordProtectionEnabled?: boolean;
|
|
3143
3172
|
/** @description Whether candidates can subscribe to email alerts for new jobs. */
|
|
@@ -3152,11 +3181,11 @@ interface components {
|
|
|
3152
3181
|
impressumEnabled?: boolean;
|
|
3153
3182
|
/** @description Whether jobs posted by employers from the free tier require admin approval before they appear on the public board. */
|
|
3154
3183
|
requireApprovalFreeJobs?: boolean;
|
|
3155
|
-
/** @description Whether aggregated jobs (e.g. those
|
|
3184
|
+
/** @description Whether aggregated jobs (e.g. those sourced or imported from upstream sources) require admin approval before they appear on the public board. */
|
|
3156
3185
|
requireApprovalAggregatedJobs?: boolean;
|
|
3157
3186
|
/** @description Whether visitors must sign in to view jobs. */
|
|
3158
3187
|
registrationWallEnabled?: boolean;
|
|
3159
|
-
/** @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
|
|
3188
|
+
/** @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`. */
|
|
3160
3189
|
nativeApplicationsEnabled?: boolean;
|
|
3161
3190
|
/** @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`. */
|
|
3162
3191
|
applicantMessagingEnabled?: boolean;
|
|
@@ -3201,38 +3230,6 @@ interface components {
|
|
|
3201
3230
|
talentNavLabel?: string;
|
|
3202
3231
|
/** @description Custom copy displayed on the password gate. Up to 500 characters. Pass `null` to clear. */
|
|
3203
3232
|
passwordProtectionMessage?: string | "" | unknown | unknown;
|
|
3204
|
-
/** @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. */
|
|
3205
|
-
config?: {
|
|
3206
|
-
[key: string]: unknown;
|
|
3207
|
-
};
|
|
3208
|
-
};
|
|
3209
|
-
PaywallGrantAdmin: {
|
|
3210
|
-
id: string;
|
|
3211
|
-
/** @enum {string} */
|
|
3212
|
-
object: "paywall_grant";
|
|
3213
|
-
boardUserId: string;
|
|
3214
|
-
email: string;
|
|
3215
|
-
displayName: string;
|
|
3216
|
-
/** @enum {string} */
|
|
3217
|
-
kind: "recurring" | "one_time";
|
|
3218
|
-
offerKey: string;
|
|
3219
|
-
status: string;
|
|
3220
|
-
stripeCustomerId: string | null;
|
|
3221
|
-
stripeSubscriptionId: string | null;
|
|
3222
|
-
amountCents: number;
|
|
3223
|
-
currency: string;
|
|
3224
|
-
currentPeriodStart: string | null;
|
|
3225
|
-
currentPeriodEnd: string | null;
|
|
3226
|
-
cancelAtPeriodEnd: boolean;
|
|
3227
|
-
activatedAt: string | null;
|
|
3228
|
-
canceledAt: string | null;
|
|
3229
|
-
createdAt: string;
|
|
3230
|
-
};
|
|
3231
|
-
PaywallGrantCount: {
|
|
3232
|
-
/** @enum {string} */
|
|
3233
|
-
object: "paywall_grant_count";
|
|
3234
|
-
cancelableRecurring: number;
|
|
3235
|
-
windingDownRecurring: number;
|
|
3236
3233
|
};
|
|
3237
3234
|
PaywallOffer: {
|
|
3238
3235
|
/** @enum {string} */
|
|
@@ -3252,37 +3249,6 @@ interface components {
|
|
|
3252
3249
|
intervalCount: number | null;
|
|
3253
3250
|
isDefault: boolean;
|
|
3254
3251
|
};
|
|
3255
|
-
PaywallOfferAdmin: {
|
|
3256
|
-
id: string;
|
|
3257
|
-
/** @enum {string} */
|
|
3258
|
-
object: "paywall_offer";
|
|
3259
|
-
offerKey: string;
|
|
3260
|
-
label: string | null;
|
|
3261
|
-
billingLabel: string | null;
|
|
3262
|
-
/** @enum {string} */
|
|
3263
|
-
kind: "recurring" | "one_time";
|
|
3264
|
-
intervalUnit: string | null;
|
|
3265
|
-
intervalCount: number | null;
|
|
3266
|
-
amountCents: number;
|
|
3267
|
-
currency: string;
|
|
3268
|
-
stripePriceId: string | null;
|
|
3269
|
-
enabled: boolean;
|
|
3270
|
-
isDefault: boolean;
|
|
3271
|
-
displayOrder: number;
|
|
3272
|
-
createdAt: string;
|
|
3273
|
-
};
|
|
3274
|
-
PaywallOfferAdminOrNull: components["schemas"]["PaywallOfferAdmin"] | unknown | unknown;
|
|
3275
|
-
Permission: {
|
|
3276
|
-
/** @description Unique identifier for the permission. */
|
|
3277
|
-
id: string;
|
|
3278
|
-
/**
|
|
3279
|
-
* @description String representing the object's type.
|
|
3280
|
-
* @enum {string}
|
|
3281
|
-
*/
|
|
3282
|
-
object: "permission";
|
|
3283
|
-
/** @description The permission string, e.g. `members.manage`. */
|
|
3284
|
-
permission: string;
|
|
3285
|
-
};
|
|
3286
3252
|
Plan: {
|
|
3287
3253
|
/** @enum {string} */
|
|
3288
3254
|
object: "plan";
|
|
@@ -3321,14 +3287,17 @@ interface components {
|
|
|
3321
3287
|
};
|
|
3322
3288
|
};
|
|
3323
3289
|
PlanFeature: {
|
|
3324
|
-
/**
|
|
3325
|
-
|
|
3290
|
+
/**
|
|
3291
|
+
* @description Stable Cavuno plan capability key.
|
|
3292
|
+
* @enum {string}
|
|
3293
|
+
*/
|
|
3294
|
+
key: "jobs.max_active" | "jobs.duration_days" | "jobs.featured_slots" | "jobs.feature_selection_mode" | "talent.profile_unlocks" | "talent.messages_sent";
|
|
3326
3295
|
name: string | null;
|
|
3327
3296
|
value: string | null;
|
|
3328
|
-
dataType: string | null;
|
|
3329
3297
|
};
|
|
3330
3298
|
PlanFeatureValue: {
|
|
3331
|
-
|
|
3299
|
+
/** @enum {string} */
|
|
3300
|
+
key: "jobs.max_active" | "jobs.duration_days" | "jobs.featured_slots" | "jobs.feature_selection_mode" | "talent.profile_unlocks" | "talent.messages_sent";
|
|
3332
3301
|
value: string;
|
|
3333
3302
|
};
|
|
3334
3303
|
/** @description The plan single active price, or null when no price has been set. */
|
|
@@ -3337,9 +3306,6 @@ interface components {
|
|
|
3337
3306
|
currency: string;
|
|
3338
3307
|
/** @description Unit amount in the smallest currency unit. */
|
|
3339
3308
|
amountCents: number;
|
|
3340
|
-
stripePriceId: string | null;
|
|
3341
|
-
stripeProductId: string | null;
|
|
3342
|
-
isActive: boolean;
|
|
3343
3309
|
} | null;
|
|
3344
3310
|
PromotionCode: {
|
|
3345
3311
|
id: string;
|
|
@@ -3404,6 +3370,11 @@ interface components {
|
|
|
3404
3370
|
cursor?: string | null;
|
|
3405
3371
|
/** @description A limit on the number of objects to be returned. Limit can range between 1 and 50. */
|
|
3406
3372
|
limit?: number;
|
|
3373
|
+
/**
|
|
3374
|
+
* @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.
|
|
3375
|
+
* @example 0
|
|
3376
|
+
*/
|
|
3377
|
+
offset?: number;
|
|
3407
3378
|
};
|
|
3408
3379
|
PublicBlogTag: components["schemas"]["PublicBlogTagEmbed"] & {
|
|
3409
3380
|
/** @enum {string} */
|
|
@@ -3430,7 +3401,7 @@ interface components {
|
|
|
3430
3401
|
primaryDomain: string | null;
|
|
3431
3402
|
/** @description Whitelabel toggle (default `true`). Render the "Powered by Cavuno" badge unless `false`. */
|
|
3432
3403
|
showCavunoBranding: boolean;
|
|
3433
|
-
/** @description True ONLY for the platform sandbox fixture tenant
|
|
3404
|
+
/** @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`. */
|
|
3434
3405
|
sandbox: boolean;
|
|
3435
3406
|
features: {
|
|
3436
3407
|
jobAlerts: boolean;
|
|
@@ -3445,11 +3416,11 @@ interface components {
|
|
|
3445
3416
|
impressum: boolean;
|
|
3446
3417
|
/** @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. */
|
|
3447
3418
|
nativeApplications: boolean;
|
|
3448
|
-
/** @description Whether applicant↔employer messaging is enabled on the board. `false` means the `me/conversations` route family rejects with `messaging_disabled` (403)
|
|
3419
|
+
/** @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. */
|
|
3449
3420
|
messaging: boolean;
|
|
3450
3421
|
};
|
|
3451
3422
|
/**
|
|
3452
|
-
* @description The tri-state behind `features.talentDirectory` (which is `visibility === 'public'`). Link /talent whenever this is not `'off'
|
|
3423
|
+
* @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.
|
|
3453
3424
|
* @enum {string}
|
|
3454
3425
|
*/
|
|
3455
3426
|
talentDirectoryVisibility: "off" | "public" | "employers_only";
|
|
@@ -3476,9 +3447,9 @@ interface components {
|
|
|
3476
3447
|
};
|
|
3477
3448
|
};
|
|
3478
3449
|
} | null;
|
|
3479
|
-
/** @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
|
|
3450
|
+
/** @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. */
|
|
3480
3451
|
customFields: components["schemas"]["CustomFieldDefinition"][];
|
|
3481
|
-
/** @description Stored operator label overrides by config group (`jobCardLabels`, `navLabels`, `breadcrumbsLabels`, …)
|
|
3452
|
+
/** @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. */
|
|
3482
3453
|
labels: {
|
|
3483
3454
|
[key: string]: {
|
|
3484
3455
|
[key: string]: string;
|
|
@@ -3486,7 +3457,7 @@ interface components {
|
|
|
3486
3457
|
};
|
|
3487
3458
|
/** @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). */
|
|
3488
3459
|
footer: {
|
|
3489
|
-
/** @description Operator-written footer brand description. May carry a `{{board_name}}` placeholder
|
|
3460
|
+
/** @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. */
|
|
3490
3461
|
description: string | null;
|
|
3491
3462
|
/** @description Public contact email for the footer About column (render as `mailto:`). */
|
|
3492
3463
|
contactEmail: string | null;
|
|
@@ -3495,9 +3466,9 @@ interface components {
|
|
|
3495
3466
|
xUrl: string | null;
|
|
3496
3467
|
facebookUrl: string | null;
|
|
3497
3468
|
linkedinUrl: string | null;
|
|
3498
|
-
/** @description Operator-configured navigation order: system item ids (`home`, `companies`, `pricing`, `blog`) and `custom:<id>` refs into `customLinks`. Empty when the operator never reordered
|
|
3469
|
+
/** @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`). */
|
|
3499
3470
|
navigationOrder: string[];
|
|
3500
|
-
/** @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`)
|
|
3471
|
+
/** @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. */
|
|
3501
3472
|
customLinks: {
|
|
3502
3473
|
id: string;
|
|
3503
3474
|
label: string;
|
|
@@ -3516,6 +3487,11 @@ interface components {
|
|
|
3516
3487
|
cursor?: string | null;
|
|
3517
3488
|
/** @description A limit on the number of objects to be returned. Limit can range between 1 and 100. */
|
|
3518
3489
|
limit?: number;
|
|
3490
|
+
/**
|
|
3491
|
+
* @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.
|
|
3492
|
+
* @example 0
|
|
3493
|
+
*/
|
|
3494
|
+
offset?: number;
|
|
3519
3495
|
};
|
|
3520
3496
|
/** @description Public-only links. The admin URL is intentionally omitted on public-board responses. */
|
|
3521
3497
|
PublicCompanyLinks: {
|
|
@@ -3606,7 +3582,7 @@ interface components {
|
|
|
3606
3582
|
type: string;
|
|
3607
3583
|
value: string;
|
|
3608
3584
|
}[];
|
|
3609
|
-
/** @description Read-only
|
|
3585
|
+
/** @description Read-only: derived from `remotePermits`. `true` only when the authored selection is a single `{type:"worldwide"}` entry. */
|
|
3610
3586
|
remoteWorldwide: boolean | null;
|
|
3611
3587
|
/** @description Hierarchical timezone selection. The flat `remoteAllowedTzOffsets` field below is the read-only derived projection. */
|
|
3612
3588
|
remoteTimezones: {
|
|
@@ -3614,11 +3590,11 @@ interface components {
|
|
|
3614
3590
|
value: string;
|
|
3615
3591
|
plusMinus?: number;
|
|
3616
3592
|
}[];
|
|
3617
|
-
/** @description Read-only
|
|
3593
|
+
/** @description Read-only: derived from `remoteTimezones`. UTC hour offsets used by the job-search index. */
|
|
3618
3594
|
remoteAllowedTzOffsets: number[];
|
|
3619
|
-
/** @description Read-only
|
|
3595
|
+
/** @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. */
|
|
3620
3596
|
remoteWorkPermitCountryCodes: string[];
|
|
3621
|
-
/** @description Read-only
|
|
3597
|
+
/** @description Read-only: derived from `remotePermits` (subdivision entries only). ISO 3166-2 codes. */
|
|
3622
3598
|
remoteWorkPermitSubdivisionCodes: string[];
|
|
3623
3599
|
/**
|
|
3624
3600
|
* @description Whether the employer sponsors visas for remote candidates. One of `yes`, `no`, or `unknown`.
|
|
@@ -3641,7 +3617,7 @@ interface components {
|
|
|
3641
3617
|
company: components["schemas"]["JobCompany"];
|
|
3642
3618
|
/** @description Physical office locations associated with the job. */
|
|
3643
3619
|
officeLocations: components["schemas"]["JobOfficeLocation"][];
|
|
3644
|
-
/** @description Resolved job categories (slug + board display name)
|
|
3620
|
+
/** @description Resolved job categories (slug + board display name): same shape as the card; names joined server-side. */
|
|
3645
3621
|
categories: {
|
|
3646
3622
|
slug: string;
|
|
3647
3623
|
name: string;
|
|
@@ -3656,7 +3632,7 @@ interface components {
|
|
|
3656
3632
|
slug: string;
|
|
3657
3633
|
name: string;
|
|
3658
3634
|
}[];
|
|
3659
|
-
/** @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
|
|
3635
|
+
/** @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. */
|
|
3660
3636
|
customFieldValues: {
|
|
3661
3637
|
[key: string]: string | string[] | boolean | number;
|
|
3662
3638
|
};
|
|
@@ -3834,7 +3810,7 @@ interface components {
|
|
|
3834
3810
|
*/
|
|
3835
3811
|
limit?: number;
|
|
3836
3812
|
/**
|
|
3837
|
-
* @description The number of jobs to skip
|
|
3813
|
+
* @description The number of jobs to skip: the job catalog page offset. Takes precedence over `cursor`. `offset + limit` may not exceed 10,000.
|
|
3838
3814
|
* @example 0
|
|
3839
3815
|
*/
|
|
3840
3816
|
offset?: number;
|
|
@@ -3879,6 +3855,34 @@ interface components {
|
|
|
3879
3855
|
*/
|
|
3880
3856
|
expiresAt?: string | null;
|
|
3881
3857
|
};
|
|
3858
|
+
PutCandidatePaywallBody: {
|
|
3859
|
+
/** @enum {string} */
|
|
3860
|
+
object?: "candidate_paywall";
|
|
3861
|
+
enabled: boolean;
|
|
3862
|
+
previewCount: number;
|
|
3863
|
+
lockHeading: string;
|
|
3864
|
+
lockDescription: string;
|
|
3865
|
+
buttonText: string;
|
|
3866
|
+
disclaimerText: string;
|
|
3867
|
+
currency: string;
|
|
3868
|
+
perMonthLabel: string;
|
|
3869
|
+
savingsTemplate: string;
|
|
3870
|
+
offers: {
|
|
3871
|
+
/** @enum {string} */
|
|
3872
|
+
key: "daily" | "weekly" | "monthly" | "quarterly" | "yearly" | "lifetime";
|
|
3873
|
+
enabled: boolean;
|
|
3874
|
+
amountCents: number;
|
|
3875
|
+
isDefault: boolean;
|
|
3876
|
+
label?: string;
|
|
3877
|
+
billingLabel?: string;
|
|
3878
|
+
/** @enum {string} */
|
|
3879
|
+
kind?: "recurring" | "lifetime";
|
|
3880
|
+
displayOrder?: number;
|
|
3881
|
+
/** @enum {string|null} */
|
|
3882
|
+
intervalUnit?: "day" | "week" | "month" | "year" | null;
|
|
3883
|
+
intervalCount?: number | null;
|
|
3884
|
+
}[];
|
|
3885
|
+
};
|
|
3882
3886
|
ReadReceipt: {
|
|
3883
3887
|
/** @enum {string} */
|
|
3884
3888
|
object: "read_receipt";
|
|
@@ -3951,9 +3955,6 @@ interface components {
|
|
|
3951
3955
|
/** @description Human-readable display label. */
|
|
3952
3956
|
label: string;
|
|
3953
3957
|
};
|
|
3954
|
-
RemoveForagerCompanyBody: {
|
|
3955
|
-
companyUrl: string;
|
|
3956
|
-
};
|
|
3957
3958
|
RenameCouponBody: {
|
|
3958
3959
|
name: string;
|
|
3959
3960
|
};
|
|
@@ -3963,6 +3964,14 @@ interface components {
|
|
|
3963
3964
|
/** @description Every stage id of the job, in the new order. */
|
|
3964
3965
|
orderedStageIds: string[];
|
|
3965
3966
|
};
|
|
3967
|
+
ReorderSalesLedPlansBody: {
|
|
3968
|
+
/** @description Complete active set: every non-archived plan id exactly once, with unique displayOrder values. */
|
|
3969
|
+
orders: {
|
|
3970
|
+
/** @description Cavuno sales-led plan ID from list/create. */
|
|
3971
|
+
id: string;
|
|
3972
|
+
displayOrder: number;
|
|
3973
|
+
}[];
|
|
3974
|
+
};
|
|
3966
3975
|
ReplyBody: {
|
|
3967
3976
|
body: string;
|
|
3968
3977
|
};
|
|
@@ -3971,32 +3980,7 @@ interface components {
|
|
|
3971
3980
|
reason: "spam" | "harassment" | "misrepresentation" | "other";
|
|
3972
3981
|
freeText?: string;
|
|
3973
3982
|
};
|
|
3974
|
-
ReportSnapshot: {
|
|
3975
|
-
/** @description Unique identifier for the snapshot. */
|
|
3976
|
-
id: string;
|
|
3977
|
-
/**
|
|
3978
|
-
* @description String representing the object's type.
|
|
3979
|
-
* @enum {string}
|
|
3980
|
-
*/
|
|
3981
|
-
object: "report_snapshot";
|
|
3982
|
-
/** @description The provider that produced the snapshot. */
|
|
3983
|
-
provider: string;
|
|
3984
|
-
/** @description The metric name. */
|
|
3985
|
-
metric: string;
|
|
3986
|
-
/** @description The segment (e.g. `global`, `country`). */
|
|
3987
|
-
segment: string;
|
|
3988
|
-
/** @description The aggregation interval (e.g. `1d`). */
|
|
3989
|
-
interval: string;
|
|
3990
|
-
/** @description ISO date string — inclusive start of the snapshot range. */
|
|
3991
|
-
rangeStart: string;
|
|
3992
|
-
/** @description ISO date string — inclusive end of the snapshot range. */
|
|
3993
|
-
rangeEnd: string;
|
|
3994
|
-
/** @description Provider-specific metric payload as collected. */
|
|
3995
|
-
payload?: unknown;
|
|
3996
|
-
};
|
|
3997
3983
|
ReportingConnect: {
|
|
3998
|
-
/** @description Provider-synthetic identifier for the connect. */
|
|
3999
|
-
id: string;
|
|
4000
3984
|
/**
|
|
4001
3985
|
* @description String representing the object's type.
|
|
4002
3986
|
* @enum {string}
|
|
@@ -4006,16 +3990,12 @@ interface components {
|
|
|
4006
3990
|
provider: string;
|
|
4007
3991
|
/** @description Whether the integration is already fully connected. */
|
|
4008
3992
|
connected: boolean;
|
|
4009
|
-
/** @description OAuth providers only
|
|
3993
|
+
/** @description OAuth providers only. The URL the user must visit to grant access. */
|
|
4010
3994
|
authorizationUrl?: string;
|
|
4011
|
-
/** @description Search Console only — the site-verification DNS token. */
|
|
4012
|
-
verificationToken?: string;
|
|
4013
3995
|
/** @description The board site URL the integration reports on. */
|
|
4014
3996
|
siteUrl?: string;
|
|
4015
|
-
/** @description Stripe only
|
|
3997
|
+
/** @description Stripe only: the Monetization settings deep link. */
|
|
4016
3998
|
redirectUrl?: string;
|
|
4017
|
-
/** @description Stripe only — why no OAuth URL is returned. */
|
|
4018
|
-
reason?: string;
|
|
4019
3999
|
};
|
|
4020
4000
|
ReportingIntegration: {
|
|
4021
4001
|
/** @description Unique identifier for the integration. */
|
|
@@ -4032,33 +4012,11 @@ interface components {
|
|
|
4032
4012
|
provider: "search_console" | "adsense" | "tinybird" | "stripe" | "google_analytics";
|
|
4033
4013
|
/** @description Whether collection is enabled for this integration. */
|
|
4034
4014
|
enabled: boolean;
|
|
4015
|
+
/** @description Whether the connection has completed successfully. */
|
|
4016
|
+
connected: boolean;
|
|
4035
4017
|
/** @description ISO-8601 timestamp of when the integration was connected. */
|
|
4036
4018
|
connectedAt: string | null;
|
|
4037
|
-
|
|
4038
|
-
externalId: string | null;
|
|
4039
|
-
/** @description OAuth scopes granted to the integration. */
|
|
4040
|
-
scopes: string[];
|
|
4041
|
-
settings: components["schemas"]["ReportingIntegrationSettings"];
|
|
4042
|
-
/** @description ISO-8601 timestamp of the last successful collection. */
|
|
4043
|
-
lastCollectedAt: string | null;
|
|
4044
|
-
};
|
|
4045
|
-
/** @description Provider-specific settings. The OAuth `refreshToken` and `oauthState` are always redacted. */
|
|
4046
|
-
ReportingIntegrationSettings: {
|
|
4047
|
-
type?: string;
|
|
4048
|
-
siteUrl?: string;
|
|
4049
|
-
domain?: string | null;
|
|
4050
|
-
siteHostname?: string;
|
|
4051
|
-
verificationToken?: string;
|
|
4052
|
-
status?: string;
|
|
4053
|
-
slug?: string;
|
|
4054
|
-
inspectionUrl?: string;
|
|
4055
|
-
lastSyncedAt?: string;
|
|
4056
|
-
permissionLevel?: string;
|
|
4057
|
-
platformSiteUrl?: string;
|
|
4058
|
-
propertyUrl?: string;
|
|
4059
|
-
adsenseAccountId?: string;
|
|
4060
|
-
sitemapSubmitted?: boolean;
|
|
4061
|
-
} | null;
|
|
4019
|
+
};
|
|
4062
4020
|
ResourceLinks: {
|
|
4063
4021
|
/**
|
|
4064
4022
|
* Format: uri
|
|
@@ -4104,19 +4062,6 @@ interface components {
|
|
|
4104
4062
|
/** @description OAuth client secret. May be supplied here or via HTTP Basic authentication. */
|
|
4105
4063
|
client_secret?: string;
|
|
4106
4064
|
};
|
|
4107
|
-
Role: {
|
|
4108
|
-
/** @description Unique identifier for the role. */
|
|
4109
|
-
id: string;
|
|
4110
|
-
/**
|
|
4111
|
-
* @description String representing the object's type.
|
|
4112
|
-
* @enum {string}
|
|
4113
|
-
*/
|
|
4114
|
-
object: "role";
|
|
4115
|
-
/** @description The role name: owner, admin, or member. */
|
|
4116
|
-
role: string;
|
|
4117
|
-
/** @description The permission strings granted to the role by default. */
|
|
4118
|
-
permissions: string[];
|
|
4119
|
-
};
|
|
4120
4065
|
SalaryCompanyIndexItem: {
|
|
4121
4066
|
/** @enum {string} */
|
|
4122
4067
|
object: "salary_company";
|
|
@@ -4172,19 +4117,11 @@ interface components {
|
|
|
4172
4117
|
/** @description Display price text, e.g. "Contact us". */
|
|
4173
4118
|
priceText: string;
|
|
4174
4119
|
ctaText: string;
|
|
4175
|
-
/** @description The CTA target
|
|
4120
|
+
/** @description The CTA target: a URL, mailto:, or tel: link. */
|
|
4176
4121
|
ctaDestination: string;
|
|
4177
4122
|
featuredBullets: string[];
|
|
4178
4123
|
displayOrder: number;
|
|
4179
4124
|
};
|
|
4180
|
-
SampleJobsBody: {
|
|
4181
|
-
/** @description The board name. */
|
|
4182
|
-
boardName: string;
|
|
4183
|
-
/** @description Optional board description to tailor the sample jobs. */
|
|
4184
|
-
boardDescription?: string;
|
|
4185
|
-
/** @description How many sample jobs to generate (default 10, max 25). */
|
|
4186
|
-
count?: number;
|
|
4187
|
-
};
|
|
4188
4125
|
SaveJobBody: {
|
|
4189
4126
|
jobId: string;
|
|
4190
4127
|
};
|
|
@@ -4193,7 +4130,7 @@ interface components {
|
|
|
4193
4130
|
id: string;
|
|
4194
4131
|
/** @enum {string} */
|
|
4195
4132
|
object: "saved_job";
|
|
4196
|
-
/** @description The saved job
|
|
4133
|
+
/** @description The saved job id. Also the DELETE path key. */
|
|
4197
4134
|
jobId: string;
|
|
4198
4135
|
/** Format: date-time */
|
|
4199
4136
|
savedAt: string;
|
|
@@ -4267,9 +4204,10 @@ interface components {
|
|
|
4267
4204
|
workEmail: string;
|
|
4268
4205
|
};
|
|
4269
4206
|
SetPlanFeaturesBody: {
|
|
4270
|
-
/** @description Full replacement set of
|
|
4207
|
+
/** @description Full replacement set of typed Cavuno capability key/value pairs for the plan. */
|
|
4271
4208
|
features: {
|
|
4272
|
-
|
|
4209
|
+
/** @enum {string} */
|
|
4210
|
+
key: "jobs.max_active" | "jobs.duration_days" | "jobs.featured_slots" | "jobs.feature_selection_mode" | "talent.profile_unlocks" | "talent.messages_sent";
|
|
4273
4211
|
value: string;
|
|
4274
4212
|
}[];
|
|
4275
4213
|
};
|
|
@@ -4279,6 +4217,20 @@ interface components {
|
|
|
4279
4217
|
/** @description Unit amount in the smallest currency unit. */
|
|
4280
4218
|
amountCents: number;
|
|
4281
4219
|
};
|
|
4220
|
+
Settings: {
|
|
4221
|
+
id: string;
|
|
4222
|
+
/** @enum {string} */
|
|
4223
|
+
object: "settings";
|
|
4224
|
+
accountId: string;
|
|
4225
|
+
name: string;
|
|
4226
|
+
slug: string;
|
|
4227
|
+
primaryDomainId: string | null;
|
|
4228
|
+
logoUrl: string | null;
|
|
4229
|
+
heroUrl: string | null;
|
|
4230
|
+
config: components["schemas"]["OperatorSettingsConfig"];
|
|
4231
|
+
createdAt: string;
|
|
4232
|
+
updatedAt: string;
|
|
4233
|
+
};
|
|
4282
4234
|
SettingsAdsenseBody: {
|
|
4283
4235
|
/** @description Whether AdSense placements are rendered on the public board. */
|
|
4284
4236
|
adsenseEnabled?: boolean;
|
|
@@ -4309,30 +4261,6 @@ interface components {
|
|
|
4309
4261
|
/** @description Plaintext password used to gate the public board. Must be at least 8 characters. Stored hashed and encrypted server-side. */
|
|
4310
4262
|
password: string;
|
|
4311
4263
|
};
|
|
4312
|
-
SettingsPaywallBody: {
|
|
4313
|
-
/** @description Whether the job-access paywall is enforced on the public board. */
|
|
4314
|
-
jobAccessPaywallEnabled: boolean;
|
|
4315
|
-
/** @description Number of jobs visible before the paywall locks the rest. Range 1–500. */
|
|
4316
|
-
jobAccessPreviewCount?: number;
|
|
4317
|
-
/** @description Heading shown on the paywall. Up to 120 characters. */
|
|
4318
|
-
jobAccessLockHeading?: string;
|
|
4319
|
-
/** @description Body copy shown on the paywall. Up to 600 characters. */
|
|
4320
|
-
jobAccessLockDescription?: string;
|
|
4321
|
-
/** @description Call-to-action label shown on the paywall. Up to 60 characters. */
|
|
4322
|
-
jobAccessButtonText?: string;
|
|
4323
|
-
/** @description Fine-print disclaimer shown beneath the call-to-action. Up to 200 characters. */
|
|
4324
|
-
jobAccessDisclaimerText?: string;
|
|
4325
|
-
/** @description Label appended to the monthly price (e.g. `/month`). Up to 60 characters. */
|
|
4326
|
-
jobAccessPerMonthLabel?: string;
|
|
4327
|
-
/** @description Template string used to render the savings line for annual plans. Up to 120 characters. */
|
|
4328
|
-
jobAccessSavingsTemplate?: string;
|
|
4329
|
-
/** @description Three-letter ISO 4217 currency code for paywall pricing. */
|
|
4330
|
-
jobAccessCurrency?: string;
|
|
4331
|
-
/** @description Stripe product ID associated with the paywall plan. Pass `null` to clear. */
|
|
4332
|
-
jobAccessStripeProductId?: string | unknown | unknown;
|
|
4333
|
-
/** @description Stripe billing-portal configuration ID used for self-serve plan management. Pass `null` to clear. */
|
|
4334
|
-
jobAccessStripePortalConfigId?: string | unknown | unknown;
|
|
4335
|
-
};
|
|
4336
4264
|
Skill: {
|
|
4337
4265
|
id: string;
|
|
4338
4266
|
/** @enum {string} */
|
|
@@ -4422,9 +4350,9 @@ interface components {
|
|
|
4422
4350
|
SkillSalaryDetail: {
|
|
4423
4351
|
/** @enum {string} */
|
|
4424
4352
|
object: "skill_salary_detail";
|
|
4425
|
-
/** @description Immutable English source slug
|
|
4353
|
+
/** @description Immutable English source slug: the salary-stats key. */
|
|
4426
4354
|
sourceSlug: string;
|
|
4427
|
-
/** @description Board-language canonical URL slug
|
|
4355
|
+
/** @description Board-language canonical URL slug: the starter 308 target. */
|
|
4428
4356
|
canonicalSlug: string;
|
|
4429
4357
|
skillName: string;
|
|
4430
4358
|
overallSalary: {
|
|
@@ -4603,7 +4531,7 @@ interface components {
|
|
|
4603
4531
|
title: string;
|
|
4604
4532
|
companyName: string;
|
|
4605
4533
|
companyUrl: string | null;
|
|
4606
|
-
/** @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
|
|
4534
|
+
/** @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). */
|
|
4607
4535
|
companyLogoUrl: string | null;
|
|
4608
4536
|
location: string | null;
|
|
4609
4537
|
employmentType: string | null;
|
|
@@ -4752,9 +4680,9 @@ interface components {
|
|
|
4752
4680
|
TitleSalaryDetail: {
|
|
4753
4681
|
/** @enum {string} */
|
|
4754
4682
|
object: "title_salary_detail";
|
|
4755
|
-
/** @description Immutable English source slug
|
|
4683
|
+
/** @description Immutable English source slug: the salary-stats key. */
|
|
4756
4684
|
sourceSlug: string;
|
|
4757
|
-
/** @description Board-language canonical URL slug
|
|
4685
|
+
/** @description Board-language canonical URL slug: the starter 308 target. */
|
|
4758
4686
|
canonicalSlug: string;
|
|
4759
4687
|
categoryName: string;
|
|
4760
4688
|
overallSalary: {
|
|
@@ -4836,7 +4764,7 @@ interface components {
|
|
|
4836
4764
|
client_id?: string;
|
|
4837
4765
|
/** @description OAuth client secret. May be supplied here or via HTTP Basic authentication. */
|
|
4838
4766
|
client_secret?: string;
|
|
4839
|
-
/** @description Optional scope narrowing. Currently ignored
|
|
4767
|
+
/** @description Optional scope narrowing. Currently ignored: issued tokens always carry the full scope registered for the client. */
|
|
4840
4768
|
scope?: string;
|
|
4841
4769
|
};
|
|
4842
4770
|
TokenResponse: {
|
|
@@ -4864,7 +4792,7 @@ interface components {
|
|
|
4864
4792
|
status: "paid" | "open" | "void" | "uncollectible";
|
|
4865
4793
|
/** @enum {string} */
|
|
4866
4794
|
method: "card" | "invoice";
|
|
4867
|
-
/** @description Amount in
|
|
4795
|
+
/** @description Amount in currency minor units (cents for most currencies). */
|
|
4868
4796
|
amountCents: number;
|
|
4869
4797
|
currency: string;
|
|
4870
4798
|
description: string;
|
|
@@ -4874,7 +4802,6 @@ interface components {
|
|
|
4874
4802
|
date: string;
|
|
4875
4803
|
/** @description ISO-8601 invoice due date, or null. Past-due is client-derived from this field. */
|
|
4876
4804
|
invoiceDueAt: string | null;
|
|
4877
|
-
stripeInvoiceId: string | null;
|
|
4878
4805
|
hostedInvoiceUrl: string | null;
|
|
4879
4806
|
receiptUrl: string | null;
|
|
4880
4807
|
methodBrand: string | null;
|
|
@@ -4882,10 +4809,6 @@ interface components {
|
|
|
4882
4809
|
methodType: string | null;
|
|
4883
4810
|
/** @enum {string|null} */
|
|
4884
4811
|
publishTiming: "on_issue" | "on_payment" | null;
|
|
4885
|
-
/** @description jobOrders id when this row is order-sourced. */
|
|
4886
|
-
orderId: string | null;
|
|
4887
|
-
/** @description employerSubscriptions id when this row is a subscription renewal. Cross-link: GET /v1/employer-subscriptions/:id. */
|
|
4888
|
-
subscriptionId: string | null;
|
|
4889
4812
|
};
|
|
4890
4813
|
TransferOwnershipBody: {
|
|
4891
4814
|
/** @description The user ID of the member who will become the primary owner. */
|
|
@@ -4929,8 +4852,8 @@ interface components {
|
|
|
4929
4852
|
* @enum {string}
|
|
4930
4853
|
*/
|
|
4931
4854
|
status?: "active" | "inactive";
|
|
4932
|
-
/** @description
|
|
4933
|
-
|
|
4855
|
+
/** @description Cavuno media ID of an uploaded avatar image. Pass `null` to clear it. */
|
|
4856
|
+
avatarMediaId?: string | null;
|
|
4934
4857
|
/** @description The author's personal website URL. Normalized to a canonical URL when stored. */
|
|
4935
4858
|
websiteUrl?: string;
|
|
4936
4859
|
/** @description The author's X (Twitter) profile URL. Stored as the canonical `https://x.com/<handle>` URL. */
|
|
@@ -4946,6 +4869,27 @@ interface components {
|
|
|
4946
4869
|
/** @description The author's display name. */
|
|
4947
4870
|
name?: string;
|
|
4948
4871
|
};
|
|
4872
|
+
UpdateBackfillRuleBody: {
|
|
4873
|
+
name?: string;
|
|
4874
|
+
rules?: {
|
|
4875
|
+
/** @enum {string} */
|
|
4876
|
+
match: "any" | "all";
|
|
4877
|
+
conditions: {
|
|
4878
|
+
/** @enum {string} */
|
|
4879
|
+
field: "title" | "description";
|
|
4880
|
+
/** @enum {string} */
|
|
4881
|
+
operator: "contains_any" | "contains_all" | "is_not";
|
|
4882
|
+
terms: string[];
|
|
4883
|
+
}[];
|
|
4884
|
+
}[];
|
|
4885
|
+
filters?: {
|
|
4886
|
+
countries?: string[];
|
|
4887
|
+
subdivisions?: string[];
|
|
4888
|
+
seniorities?: ("entry_level" | "associate" | "mid_level" | "senior" | "director" | "executive")[];
|
|
4889
|
+
employmentTypes?: ("full_time" | "part_time" | "contract" | "internship" | "temporary" | "volunteer" | "other")[];
|
|
4890
|
+
workplaceTypes?: ("remote" | "hybrid" | "onsite")[];
|
|
4891
|
+
};
|
|
4892
|
+
};
|
|
4949
4893
|
UpdateBlogPostBody: {
|
|
4950
4894
|
slug?: string;
|
|
4951
4895
|
html?: string;
|
|
@@ -4954,8 +4898,8 @@ interface components {
|
|
|
4954
4898
|
featured?: boolean;
|
|
4955
4899
|
authorIds?: string[];
|
|
4956
4900
|
tagIds?: string[];
|
|
4957
|
-
|
|
4958
|
-
|
|
4901
|
+
coverMediaId?: string | null;
|
|
4902
|
+
ogImageMediaId?: string | null;
|
|
4959
4903
|
featureImageAlt?: string;
|
|
4960
4904
|
featureImageCaption?: string;
|
|
4961
4905
|
seoTitle?: string;
|
|
@@ -5042,16 +4986,6 @@ interface components {
|
|
|
5042
4986
|
description?: string;
|
|
5043
4987
|
sortOrder?: number;
|
|
5044
4988
|
};
|
|
5045
|
-
UpdateForagerDescriptionBody: {
|
|
5046
|
-
description: string | null;
|
|
5047
|
-
};
|
|
5048
|
-
UpdateForagerSubscriptionBody: {
|
|
5049
|
-
name?: string;
|
|
5050
|
-
rules?: components["schemas"]["ForagerRule"][];
|
|
5051
|
-
filters?: components["schemas"]["ForagerFilters"];
|
|
5052
|
-
active?: boolean;
|
|
5053
|
-
description?: string | null;
|
|
5054
|
-
};
|
|
5055
4989
|
UpdateInvitationBody: {
|
|
5056
4990
|
/**
|
|
5057
4991
|
* @description The new role for the pending invitation.
|
|
@@ -5082,7 +5016,7 @@ interface components {
|
|
|
5082
5016
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
5083
5017
|
value: string;
|
|
5084
5018
|
}[];
|
|
5085
|
-
/** @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
|
|
5019
|
+
/** @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. */
|
|
5086
5020
|
remoteTimezones?: {
|
|
5087
5021
|
/** @enum {string} */
|
|
5088
5022
|
type: "all" | "world_region" | "continent" | "region" | "subregion" | "country" | "timezone";
|
|
@@ -5139,7 +5073,7 @@ interface components {
|
|
|
5139
5073
|
officeLocations?: components["schemas"]["JobOfficeLocationInput"][];
|
|
5140
5074
|
/** @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. */
|
|
5141
5075
|
externalId?: string;
|
|
5142
|
-
/** @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
|
|
5076
|
+
/** @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. */
|
|
5143
5077
|
customFieldValues?: {
|
|
5144
5078
|
[key: string]: string | string[] | boolean | number | unknown | unknown;
|
|
5145
5079
|
};
|
|
@@ -5169,16 +5103,6 @@ interface components {
|
|
|
5169
5103
|
channel: "messageEmails" | "applicationEmails";
|
|
5170
5104
|
subscribed: boolean;
|
|
5171
5105
|
};
|
|
5172
|
-
UpdatePaywallOfferBody: {
|
|
5173
|
-
/** @description Enable or disable the offer. */
|
|
5174
|
-
isEnabled?: boolean;
|
|
5175
|
-
/** @description Alias of isEnabled (either is accepted). */
|
|
5176
|
-
enabled?: boolean;
|
|
5177
|
-
label?: string;
|
|
5178
|
-
billingLabel?: string;
|
|
5179
|
-
displayOrder?: number;
|
|
5180
|
-
isDefault?: boolean;
|
|
5181
|
-
};
|
|
5182
5106
|
UpdatePipelineStageBody: {
|
|
5183
5107
|
label?: string;
|
|
5184
5108
|
hidden?: boolean;
|
|
@@ -5201,6 +5125,20 @@ interface components {
|
|
|
5201
5125
|
/** @description HTTP status code. One of `301` or `302`. */
|
|
5202
5126
|
statusCode?: 301 | 302;
|
|
5203
5127
|
};
|
|
5128
|
+
UpdateSalesLedPlanBody: {
|
|
5129
|
+
name: string;
|
|
5130
|
+
description: string;
|
|
5131
|
+
priceText: string;
|
|
5132
|
+
ctaText: string;
|
|
5133
|
+
/** @description Email address or URL. Bare emails become mailto:; bare domains become https://. */
|
|
5134
|
+
ctaDestination: string;
|
|
5135
|
+
/** @description Up to five feature bullets shown on the pricing card. */
|
|
5136
|
+
featuredBullets: string[];
|
|
5137
|
+
/** @description Whether the plan is shown on the public employer pricing page. */
|
|
5138
|
+
isPublic: boolean;
|
|
5139
|
+
/** @description Sort order among active sales-led plans (lower first). */
|
|
5140
|
+
displayOrder: number;
|
|
5141
|
+
};
|
|
5204
5142
|
UpdateSkillBody: {
|
|
5205
5143
|
name?: string;
|
|
5206
5144
|
slug?: string;
|
|
@@ -5227,21 +5165,26 @@ interface components {
|
|
|
5227
5165
|
name?: string;
|
|
5228
5166
|
};
|
|
5229
5167
|
Usage: {
|
|
5230
|
-
/** @description Unique identifier for the object. Equal to the account ID — usage is a per-account singleton. */
|
|
5231
|
-
id: string;
|
|
5232
5168
|
/**
|
|
5233
5169
|
* @description String representing the object's type. Objects of the same type share the same value.
|
|
5234
5170
|
* @enum {string}
|
|
5235
5171
|
*/
|
|
5236
5172
|
object: "usage";
|
|
5237
|
-
/** @description
|
|
5238
|
-
|
|
5239
|
-
|
|
5240
|
-
|
|
5241
|
-
/**
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
|
|
5173
|
+
/** @description Typed product capacities for active jobs, confirmed subscribers, and team seats. */
|
|
5174
|
+
capacities: components["schemas"]["UsageCapacity"][];
|
|
5175
|
+
};
|
|
5176
|
+
UsageCapacity: {
|
|
5177
|
+
/**
|
|
5178
|
+
* @description Stable capacity key matching the dashboard: active_jobs, confirmed_subscribers, or team_seats.
|
|
5179
|
+
* @enum {string}
|
|
5180
|
+
*/
|
|
5181
|
+
key: "active_jobs" | "confirmed_subscribers" | "team_seats";
|
|
5182
|
+
/** @description Current usage for this capacity. Never negative. */
|
|
5183
|
+
used: number;
|
|
5184
|
+
/** @description Effective plan or override cap. Null when the capacity is unlimited. */
|
|
5185
|
+
limit: number | null;
|
|
5186
|
+
/** @description Slots remaining before the limit. Null when unlimited; never negative when finite. */
|
|
5187
|
+
remaining: number | null;
|
|
5245
5188
|
};
|
|
5246
5189
|
VerifyEmailOtpBody: {
|
|
5247
5190
|
code: string;
|