@cavuno/board 1.39.0 → 1.41.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-DxC1ze93.d.mts → _spec-l_596ZwW.d.mts} +373 -0
- package/dist/{_spec-DxC1ze93.d.ts → _spec-l_596ZwW.d.ts} +373 -0
- package/dist/bin.mjs +242 -18
- package/dist/{board-RfZEAJse.d.ts → board-BzK5j73O.d.ts} +1 -1
- package/dist/{board-CqYibYUA.d.mts → board-CyHA6rRP.d.mts} +1 -1
- package/dist/doctor.js +238 -14
- package/dist/doctor.mjs +238 -14
- 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 +89 -10
- package/dist/index.d.ts +89 -10
- package/dist/index.js +91 -1
- package/dist/index.mjs +91 -1
- package/dist/{jobs-DPPA1Nev.d.mts → jobs-BhthvMkA.d.mts} +1 -1
- package/dist/{jobs-CLLIvtMc.d.ts → jobs-CXudz1Y4.d.ts} +1 -1
- package/dist/{salaries-DK4RnJnw.d.ts → salaries-ByBuHCLH.d.ts} +2 -2
- package/dist/{salaries-Rb5h_eVZ.d.mts → salaries-Dr_Zugal.d.mts} +2 -2
- package/dist/{search-CqBa1Qc4.d.mts → search-CrIlXSJP.d.mts} +1 -1
- package/dist/{search-DBoMM-gE.d.ts → search-DZrq-k76.d.ts} +1 -1
- package/dist/seo.d.mts +4 -4
- package/dist/seo.d.ts +4 -4
- package/dist/server.d.mts +56 -6
- package/dist/server.d.ts +56 -6
- package/dist/server.js +41 -0
- package/dist/server.mjs +41 -0
- 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/dist/theme.d.mts +49 -1
- package/dist/theme.d.ts +49 -1
- package/dist/theme.js +60 -26
- package/dist/theme.mjs +60 -26
- package/package.json +1 -1
- package/skills/manifest.json +1 -1
|
@@ -86,6 +86,31 @@ interface components {
|
|
|
86
86
|
*/
|
|
87
87
|
admin: string;
|
|
88
88
|
};
|
|
89
|
+
AdminPlan: {
|
|
90
|
+
/** @description Unique identifier for the plan. */
|
|
91
|
+
id: string;
|
|
92
|
+
/** @enum {string} */
|
|
93
|
+
object: "plan";
|
|
94
|
+
name: string;
|
|
95
|
+
description: string | null;
|
|
96
|
+
kind: string;
|
|
97
|
+
/**
|
|
98
|
+
* @description Subscription billing interval. Required for kind=subscription.
|
|
99
|
+
* @enum {string|null}
|
|
100
|
+
*/
|
|
101
|
+
billingInterval: "month" | "year" | null;
|
|
102
|
+
/**
|
|
103
|
+
* @description Whether the plan grants job-posting or talent-access entitlement.
|
|
104
|
+
* @enum {string}
|
|
105
|
+
*/
|
|
106
|
+
purpose: "job_posting" | "talent_access";
|
|
107
|
+
isPublic: boolean;
|
|
108
|
+
isRecommended: boolean;
|
|
109
|
+
isArchived: boolean;
|
|
110
|
+
displayOrder: number | null;
|
|
111
|
+
price: components["schemas"]["PlanPrice"];
|
|
112
|
+
features: components["schemas"]["PlanFeature"][];
|
|
113
|
+
};
|
|
89
114
|
AiUsage: {
|
|
90
115
|
id: string;
|
|
91
116
|
/** @enum {string} */
|
|
@@ -276,6 +301,37 @@ interface components {
|
|
|
276
301
|
resourceId: string;
|
|
277
302
|
})[];
|
|
278
303
|
};
|
|
304
|
+
BillingCheckout: {
|
|
305
|
+
/** @enum {string} */
|
|
306
|
+
object: "billing_checkout";
|
|
307
|
+
funding: components["schemas"]["BillingHostedCheckoutFunding"];
|
|
308
|
+
/**
|
|
309
|
+
* Format: uri
|
|
310
|
+
* @description Hosted Stripe Checkout Session URL.
|
|
311
|
+
*/
|
|
312
|
+
url: string;
|
|
313
|
+
/** @description Stripe Checkout Session id (cs_…). */
|
|
314
|
+
sessionId: string;
|
|
315
|
+
/**
|
|
316
|
+
* @description Self-serve plan key. enterprise is not self-serve and returns plan_not_self_serve.
|
|
317
|
+
* @enum {string}
|
|
318
|
+
*/
|
|
319
|
+
planKey: "starter" | "basic" | "grow" | "advanced" | "enterprise";
|
|
320
|
+
/** @enum {string} */
|
|
321
|
+
interval: "monthly" | "annual";
|
|
322
|
+
};
|
|
323
|
+
BillingCheckoutBody: {
|
|
324
|
+
/**
|
|
325
|
+
* @description Self-serve plan key. enterprise is not self-serve and returns plan_not_self_serve.
|
|
326
|
+
* @enum {string}
|
|
327
|
+
*/
|
|
328
|
+
planKey: "starter" | "basic" | "grow" | "advanced" | "enterprise";
|
|
329
|
+
/**
|
|
330
|
+
* @description Billing interval. Defaults to monthly when omitted.
|
|
331
|
+
* @enum {string}
|
|
332
|
+
*/
|
|
333
|
+
interval?: "monthly" | "annual";
|
|
334
|
+
};
|
|
279
335
|
BillingConnect: {
|
|
280
336
|
/** @enum {string} */
|
|
281
337
|
object: "billing_connect";
|
|
@@ -314,6 +370,14 @@ interface components {
|
|
|
314
370
|
canRemoveBranding: boolean;
|
|
315
371
|
apiAccess: boolean;
|
|
316
372
|
};
|
|
373
|
+
BillingHostedCheckoutFunding: {
|
|
374
|
+
/** @enum {string} */
|
|
375
|
+
type: "hosted_checkout";
|
|
376
|
+
};
|
|
377
|
+
BillingSavedPmFunding: {
|
|
378
|
+
/** @enum {string} */
|
|
379
|
+
type: "saved_pm";
|
|
380
|
+
};
|
|
317
381
|
BillingSubscription: {
|
|
318
382
|
/** @enum {string} */
|
|
319
383
|
object: "billing_subscription";
|
|
@@ -331,6 +395,47 @@ interface components {
|
|
|
331
395
|
stripePriceId: string;
|
|
332
396
|
quantity: number;
|
|
333
397
|
};
|
|
398
|
+
BillingUpgrade: components["schemas"]["BillingUpgradeSavedPm"] | components["schemas"]["BillingUpgradeCheckoutRequired"];
|
|
399
|
+
BillingUpgradeBody: {
|
|
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";
|
|
410
|
+
};
|
|
411
|
+
BillingUpgradeCheckoutRequired: {
|
|
412
|
+
/** @enum {string} */
|
|
413
|
+
object: "billing_upgrade";
|
|
414
|
+
funding: components["schemas"]["BillingHostedCheckoutFunding"];
|
|
415
|
+
/** @enum {string} */
|
|
416
|
+
status: "checkout_required";
|
|
417
|
+
/** Format: uri */
|
|
418
|
+
url: string;
|
|
419
|
+
sessionId: string;
|
|
420
|
+
/**
|
|
421
|
+
* @description Self-serve plan key. enterprise is not self-serve and returns plan_not_self_serve.
|
|
422
|
+
* @enum {string}
|
|
423
|
+
*/
|
|
424
|
+
planKey: "starter" | "basic" | "grow" | "advanced" | "enterprise";
|
|
425
|
+
};
|
|
426
|
+
BillingUpgradeSavedPm: {
|
|
427
|
+
/** @enum {string} */
|
|
428
|
+
object: "billing_upgrade";
|
|
429
|
+
funding: components["schemas"]["BillingSavedPmFunding"];
|
|
430
|
+
/** @enum {string} */
|
|
431
|
+
status: "upgraded";
|
|
432
|
+
/**
|
|
433
|
+
* @description Self-serve plan key. enterprise is not self-serve and returns plan_not_self_serve.
|
|
434
|
+
* @enum {string}
|
|
435
|
+
*/
|
|
436
|
+
planKey: "starter" | "basic" | "grow" | "advanced" | "enterprise";
|
|
437
|
+
stripeSubscriptionId: string;
|
|
438
|
+
};
|
|
334
439
|
Block: {
|
|
335
440
|
/** @enum {string} */
|
|
336
441
|
object: "block";
|
|
@@ -1090,6 +1195,21 @@ interface components {
|
|
|
1090
1195
|
object: "conversation_ref";
|
|
1091
1196
|
conversationId: string | null;
|
|
1092
1197
|
};
|
|
1198
|
+
Coupon: {
|
|
1199
|
+
id: string;
|
|
1200
|
+
/** @enum {string} */
|
|
1201
|
+
object: "coupon";
|
|
1202
|
+
name: string | null;
|
|
1203
|
+
percentOff: number | null;
|
|
1204
|
+
amountOff: number | null;
|
|
1205
|
+
currency: string | null;
|
|
1206
|
+
duration: string;
|
|
1207
|
+
durationInMonths: number | null;
|
|
1208
|
+
valid: boolean;
|
|
1209
|
+
appliesTo: string[] | null;
|
|
1210
|
+
timesRedeemed: number;
|
|
1211
|
+
created: string;
|
|
1212
|
+
};
|
|
1093
1213
|
CreateAuthorBody: {
|
|
1094
1214
|
/** @description URL-friendly slug for the author. Auto-generated from `name` when omitted. */
|
|
1095
1215
|
slug?: string;
|
|
@@ -1171,6 +1291,20 @@ interface components {
|
|
|
1171
1291
|
/** @description URL-friendly slug for the company. Auto-generated from `name` when omitted. */
|
|
1172
1292
|
slug?: string;
|
|
1173
1293
|
};
|
|
1294
|
+
CreateCouponBody: {
|
|
1295
|
+
name: string;
|
|
1296
|
+
percentOff?: number | null;
|
|
1297
|
+
/** @description Fixed discount in the currency major unit (e.g. 10 for $10, 1000 for ¥1000). Required with `currency` when there is no percentOff. */
|
|
1298
|
+
amountOff?: number | null;
|
|
1299
|
+
currency?: string | null;
|
|
1300
|
+
/** @enum {string} */
|
|
1301
|
+
duration: "once" | "forever" | "repeating";
|
|
1302
|
+
durationInMonths?: number;
|
|
1303
|
+
maxRedemptions?: number;
|
|
1304
|
+
/** @description Unix ms deadline after which the coupon cannot be redeemed. */
|
|
1305
|
+
redeemBy?: number;
|
|
1306
|
+
appliesToPlanIds?: string[];
|
|
1307
|
+
};
|
|
1174
1308
|
CreateDomainBody: {
|
|
1175
1309
|
/** @description Hostname to bind to this board, for example jobs.acme.com. Labels may contain letters, numbers, and hyphens, and may not start or end with a hyphen. The API normalizes accepted hostnames to lowercase before writing. */
|
|
1176
1310
|
domain: string;
|
|
@@ -1202,6 +1336,15 @@ interface components {
|
|
|
1202
1336
|
description?: string;
|
|
1203
1337
|
sortOrder?: number;
|
|
1204
1338
|
};
|
|
1339
|
+
CreateFeatureBody: {
|
|
1340
|
+
/** @description Stable feature key, e.g. jobs.max_active. */
|
|
1341
|
+
key: string;
|
|
1342
|
+
name: string;
|
|
1343
|
+
/** @description Value data type, e.g. integer or string. */
|
|
1344
|
+
dataType: string;
|
|
1345
|
+
description?: string;
|
|
1346
|
+
defaultValue?: string;
|
|
1347
|
+
};
|
|
1205
1348
|
CreateForagerSubscriptionBody: {
|
|
1206
1349
|
name: string;
|
|
1207
1350
|
rules: components["schemas"]["ForagerRule"][];
|
|
@@ -1409,6 +1552,43 @@ interface components {
|
|
|
1409
1552
|
/** @description The stage label. */
|
|
1410
1553
|
label: string;
|
|
1411
1554
|
};
|
|
1555
|
+
CreatePlanBody: {
|
|
1556
|
+
/** @description Display name for the plan. */
|
|
1557
|
+
name: string;
|
|
1558
|
+
/** @description Optional plan description. */
|
|
1559
|
+
description?: string;
|
|
1560
|
+
/**
|
|
1561
|
+
* @description Plan billing kind.
|
|
1562
|
+
* @enum {string}
|
|
1563
|
+
*/
|
|
1564
|
+
kind: "free" | "one_time" | "bundle" | "subscription";
|
|
1565
|
+
/**
|
|
1566
|
+
* @description Subscription billing interval. Required for kind=subscription.
|
|
1567
|
+
* @enum {string}
|
|
1568
|
+
*/
|
|
1569
|
+
billingInterval?: "month" | "year";
|
|
1570
|
+
/**
|
|
1571
|
+
* @description Whether the plan grants job-posting or talent-access entitlement.
|
|
1572
|
+
* @enum {string}
|
|
1573
|
+
*/
|
|
1574
|
+
purpose?: "job_posting" | "talent_access";
|
|
1575
|
+
/** @description Whether the plan is publicly listed. Defaults to false. */
|
|
1576
|
+
isPublic?: boolean;
|
|
1577
|
+
isRecommended?: boolean;
|
|
1578
|
+
displayOrder?: number;
|
|
1579
|
+
};
|
|
1580
|
+
CreatePromotionCodeBody: {
|
|
1581
|
+
code: string;
|
|
1582
|
+
maxRedemptions?: number;
|
|
1583
|
+
/**
|
|
1584
|
+
* Format: date-time
|
|
1585
|
+
* @description ISO-8601 expiry; converted to epoch seconds for Stripe.
|
|
1586
|
+
*/
|
|
1587
|
+
expiresAt?: string;
|
|
1588
|
+
firstTimeTransaction?: boolean;
|
|
1589
|
+
minimumAmount?: number;
|
|
1590
|
+
minimumAmountCurrency?: string;
|
|
1591
|
+
};
|
|
1412
1592
|
CreateRedirectBody: {
|
|
1413
1593
|
/** @description Source path to match, for example `/old-careers`. */
|
|
1414
1594
|
fromPath: string;
|
|
@@ -1815,6 +1995,28 @@ interface components {
|
|
|
1815
1995
|
*/
|
|
1816
1996
|
public: string | null;
|
|
1817
1997
|
};
|
|
1998
|
+
EmployerJobStat: {
|
|
1999
|
+
/** @enum {string} */
|
|
2000
|
+
object: "employer_job_stat";
|
|
2001
|
+
/** @description The Convex job id these stats belong to. */
|
|
2002
|
+
jobId: string;
|
|
2003
|
+
/** @description Job-detail page-views over the all-time window. */
|
|
2004
|
+
views: number;
|
|
2005
|
+
/** @description Apply-click events over the all-time window. */
|
|
2006
|
+
applyClicks: number;
|
|
2007
|
+
/** @description Native ATS application count, or `null` for an external-apply job (no native pipeline). */
|
|
2008
|
+
applications: number | null;
|
|
2009
|
+
};
|
|
2010
|
+
EmployerJobStatsPoint: {
|
|
2011
|
+
/** @enum {string} */
|
|
2012
|
+
object: "employer_job_stats_point";
|
|
2013
|
+
/** @description The UTC day this bucket covers (`YYYY-MM-DD`). */
|
|
2014
|
+
date: string;
|
|
2015
|
+
/** @description Job-detail page-views on this day. */
|
|
2016
|
+
views: number;
|
|
2017
|
+
/** @description Apply-click events on this day. */
|
|
2018
|
+
applyClicks: number;
|
|
2019
|
+
};
|
|
1818
2020
|
EmployerJobSummary: {
|
|
1819
2021
|
/** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the job endpoints (e.g. `GET /v1/jobs/{id}`). */
|
|
1820
2022
|
id: string;
|
|
@@ -1919,6 +2121,25 @@ interface components {
|
|
|
1919
2121
|
hidden: boolean;
|
|
1920
2122
|
position: number;
|
|
1921
2123
|
};
|
|
2124
|
+
EmployerSubscription: {
|
|
2125
|
+
id: string;
|
|
2126
|
+
/** @enum {string} */
|
|
2127
|
+
object: "employer_subscription";
|
|
2128
|
+
employerEmail: string;
|
|
2129
|
+
companyId: string | null;
|
|
2130
|
+
companyName: string | null;
|
|
2131
|
+
planId: string | null;
|
|
2132
|
+
planName: string | null;
|
|
2133
|
+
status: string;
|
|
2134
|
+
/** @description ISO-8601 period end, or null. */
|
|
2135
|
+
currentPeriodEnd: string | null;
|
|
2136
|
+
cancelAtPeriodEnd: boolean;
|
|
2137
|
+
/** @description ISO-8601 creation time. */
|
|
2138
|
+
createdAt: string;
|
|
2139
|
+
stripeCustomerId: string | null;
|
|
2140
|
+
stripeSubscriptionId: string | null;
|
|
2141
|
+
};
|
|
2142
|
+
EmployerSubscriptionOrNull: components["schemas"]["EmployerSubscription"] | unknown | unknown;
|
|
1922
2143
|
EmployerUpdateJobBody: {
|
|
1923
2144
|
/** @description Long-form description of the role. Up to 25,000 characters. */
|
|
1924
2145
|
description?: string;
|
|
@@ -1992,6 +2213,17 @@ interface components {
|
|
|
1992
2213
|
/** @description The job title. */
|
|
1993
2214
|
title?: string;
|
|
1994
2215
|
};
|
|
2216
|
+
FeatureDefinition: {
|
|
2217
|
+
id: string;
|
|
2218
|
+
/** @enum {string} */
|
|
2219
|
+
object: "feature";
|
|
2220
|
+
key: string;
|
|
2221
|
+
name: string;
|
|
2222
|
+
description: string | null;
|
|
2223
|
+
dataType: string;
|
|
2224
|
+
defaultValue: string | null;
|
|
2225
|
+
isSystem: boolean;
|
|
2226
|
+
};
|
|
1995
2227
|
FindOrCreateCompanyBody: {
|
|
1996
2228
|
/** @description The company's display name. */
|
|
1997
2229
|
name: string;
|
|
@@ -2910,6 +3142,10 @@ interface components {
|
|
|
2910
3142
|
requireApprovalAggregatedJobs?: boolean;
|
|
2911
3143
|
/** @description Whether visitors must sign in to view jobs. */
|
|
2912
3144
|
registrationWallEnabled?: boolean;
|
|
3145
|
+
/** @description Whether the board's built-in ATS receives applications. When `false` (external-applications-only board), posting surfaces require an external `applicationUrl` and `POST /boards/:identifier/jobs/:jobSlug/apply` rejects with `applications_native_disabled`. Turning this off UNPUBLISHES every published native-apply job (those with no external `applicationUrl`) back to draft via an asynchronous batched drain — expect published job counts to shrink over the following seconds. Nothing is deleted, and re-enabling does NOT republish the drafted jobs. Absent means `true`. */
|
|
3146
|
+
nativeApplicationsEnabled?: boolean;
|
|
3147
|
+
/** @description Whether applicant↔employer messaging is enabled. When `false`, the `me/conversations` route family rejects with `messaging_disabled` and new-message emails are suppressed. Absent means `true`. */
|
|
3148
|
+
applicantMessagingEnabled?: boolean;
|
|
2913
3149
|
/** @description Legacy shorthand for the talent directory. `true` maps to `talentDirectoryVisibility: "public"`; `false` maps to `"off"`. Prefer the tri-state field. Providing both with conflicting values returns `settings_conflicting_fields`. */
|
|
2914
3150
|
talentDirectoryEnabled?: boolean;
|
|
2915
3151
|
/**
|
|
@@ -2956,6 +3192,34 @@ interface components {
|
|
|
2956
3192
|
[key: string]: unknown;
|
|
2957
3193
|
};
|
|
2958
3194
|
};
|
|
3195
|
+
PaywallGrantAdmin: {
|
|
3196
|
+
id: string;
|
|
3197
|
+
/** @enum {string} */
|
|
3198
|
+
object: "paywall_grant";
|
|
3199
|
+
boardUserId: string;
|
|
3200
|
+
email: string;
|
|
3201
|
+
displayName: string;
|
|
3202
|
+
/** @enum {string} */
|
|
3203
|
+
kind: "recurring" | "one_time";
|
|
3204
|
+
offerKey: string;
|
|
3205
|
+
status: string;
|
|
3206
|
+
stripeCustomerId: string | null;
|
|
3207
|
+
stripeSubscriptionId: string | null;
|
|
3208
|
+
amountCents: number;
|
|
3209
|
+
currency: string;
|
|
3210
|
+
currentPeriodStart: string | null;
|
|
3211
|
+
currentPeriodEnd: string | null;
|
|
3212
|
+
cancelAtPeriodEnd: boolean;
|
|
3213
|
+
activatedAt: string | null;
|
|
3214
|
+
canceledAt: string | null;
|
|
3215
|
+
createdAt: string;
|
|
3216
|
+
};
|
|
3217
|
+
PaywallGrantCount: {
|
|
3218
|
+
/** @enum {string} */
|
|
3219
|
+
object: "paywall_grant_count";
|
|
3220
|
+
cancelableRecurring: number;
|
|
3221
|
+
windingDownRecurring: number;
|
|
3222
|
+
};
|
|
2959
3223
|
PaywallOffer: {
|
|
2960
3224
|
/** @enum {string} */
|
|
2961
3225
|
object: "paywall_offer";
|
|
@@ -2974,6 +3238,26 @@ interface components {
|
|
|
2974
3238
|
intervalCount: number | null;
|
|
2975
3239
|
isDefault: boolean;
|
|
2976
3240
|
};
|
|
3241
|
+
PaywallOfferAdmin: {
|
|
3242
|
+
id: string;
|
|
3243
|
+
/** @enum {string} */
|
|
3244
|
+
object: "paywall_offer";
|
|
3245
|
+
offerKey: string;
|
|
3246
|
+
label: string | null;
|
|
3247
|
+
billingLabel: string | null;
|
|
3248
|
+
/** @enum {string} */
|
|
3249
|
+
kind: "recurring" | "one_time";
|
|
3250
|
+
intervalUnit: string | null;
|
|
3251
|
+
intervalCount: number | null;
|
|
3252
|
+
amountCents: number;
|
|
3253
|
+
currency: string;
|
|
3254
|
+
stripePriceId: string | null;
|
|
3255
|
+
enabled: boolean;
|
|
3256
|
+
isDefault: boolean;
|
|
3257
|
+
displayOrder: number;
|
|
3258
|
+
createdAt: string;
|
|
3259
|
+
};
|
|
3260
|
+
PaywallOfferAdminOrNull: components["schemas"]["PaywallOfferAdmin"] | unknown | unknown;
|
|
2977
3261
|
Permission: {
|
|
2978
3262
|
/** @description Unique identifier for the permission. */
|
|
2979
3263
|
id: string;
|
|
@@ -3022,6 +3306,36 @@ interface components {
|
|
|
3022
3306
|
messagesPerPeriod: string;
|
|
3023
3307
|
};
|
|
3024
3308
|
};
|
|
3309
|
+
PlanFeature: {
|
|
3310
|
+
/** @description Stable feature key, e.g. jobs.max_active. */
|
|
3311
|
+
key: string;
|
|
3312
|
+
name: string | null;
|
|
3313
|
+
value: string | null;
|
|
3314
|
+
dataType: string | null;
|
|
3315
|
+
};
|
|
3316
|
+
PlanFeatureValue: {
|
|
3317
|
+
key: string;
|
|
3318
|
+
value: string;
|
|
3319
|
+
};
|
|
3320
|
+
/** @description The plan single active price, or null when no price has been set. */
|
|
3321
|
+
PlanPrice: {
|
|
3322
|
+
/** @description ISO 4217 currency code, lowercase. */
|
|
3323
|
+
currency: string;
|
|
3324
|
+
/** @description Unit amount in the smallest currency unit. */
|
|
3325
|
+
amountCents: number;
|
|
3326
|
+
stripePriceId: string | null;
|
|
3327
|
+
stripeProductId: string | null;
|
|
3328
|
+
isActive: boolean;
|
|
3329
|
+
} | null;
|
|
3330
|
+
PromotionCode: {
|
|
3331
|
+
id: string;
|
|
3332
|
+
/** @enum {string} */
|
|
3333
|
+
object: "promotion_code";
|
|
3334
|
+
code: string;
|
|
3335
|
+
couponId: string;
|
|
3336
|
+
active: boolean;
|
|
3337
|
+
created: string;
|
|
3338
|
+
};
|
|
3025
3339
|
PublicBlogAdjacentPosts: {
|
|
3026
3340
|
/** @enum {string} */
|
|
3027
3341
|
object: "blog_adjacent_posts";
|
|
@@ -3115,6 +3429,10 @@ interface components {
|
|
|
3115
3429
|
publicJobSubmission: boolean;
|
|
3116
3430
|
candidatePaywall: boolean;
|
|
3117
3431
|
impressum: boolean;
|
|
3432
|
+
/** @description Whether the board accepts native (on-board ATS) applications. `false` means external-applications-only: the server rejects native submissions to `POST /jobs/:jobSlug/apply` with `applications_native_disabled` (422). Clients should hide native apply UI and treat a job with no external `applicationUrl` as not-applyable. */
|
|
3433
|
+
nativeApplications: boolean;
|
|
3434
|
+
/** @description Whether applicant↔employer messaging is enabled on the board. `false` means the `me/conversations` route family rejects with `messaging_disabled` (403) — hide inbox/dock/Message CTAs. */
|
|
3435
|
+
messaging: boolean;
|
|
3118
3436
|
};
|
|
3119
3437
|
/**
|
|
3120
3438
|
* @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.
|
|
@@ -3622,6 +3940,9 @@ interface components {
|
|
|
3622
3940
|
RemoveForagerCompanyBody: {
|
|
3623
3941
|
companyUrl: string;
|
|
3624
3942
|
};
|
|
3943
|
+
RenameCouponBody: {
|
|
3944
|
+
name: string;
|
|
3945
|
+
};
|
|
3625
3946
|
ReorderPipelineStagesBody: {
|
|
3626
3947
|
/** @description The job whose stages are reordered. */
|
|
3627
3948
|
jobId: string;
|
|
@@ -3931,6 +4252,19 @@ interface components {
|
|
|
3931
4252
|
/** Format: email */
|
|
3932
4253
|
workEmail: string;
|
|
3933
4254
|
};
|
|
4255
|
+
SetPlanFeaturesBody: {
|
|
4256
|
+
/** @description Full replacement set of feature key/value pairs for the plan. */
|
|
4257
|
+
features: {
|
|
4258
|
+
key: string;
|
|
4259
|
+
value: string;
|
|
4260
|
+
}[];
|
|
4261
|
+
};
|
|
4262
|
+
SetPlanPriceBody: {
|
|
4263
|
+
/** @description ISO 4217 currency code (e.g. usd). */
|
|
4264
|
+
currency: string;
|
|
4265
|
+
/** @description Unit amount in the smallest currency unit. */
|
|
4266
|
+
amountCents: number;
|
|
4267
|
+
};
|
|
3934
4268
|
SettingsAdsenseBody: {
|
|
3935
4269
|
/** @description Whether AdSense placements are rendered on the public board. */
|
|
3936
4270
|
adsenseEnabled?: boolean;
|
|
@@ -4141,6 +4475,9 @@ interface components {
|
|
|
4141
4475
|
StartConversationBody: {
|
|
4142
4476
|
candidateBoardUserId: string;
|
|
4143
4477
|
body: string;
|
|
4478
|
+
} | {
|
|
4479
|
+
candidateHandle: string;
|
|
4480
|
+
body: string;
|
|
4144
4481
|
};
|
|
4145
4482
|
Subscriber: {
|
|
4146
4483
|
/** @description Unique identifier for the subscriber. */
|
|
@@ -4202,6 +4539,18 @@ interface components {
|
|
|
4202
4539
|
items: components["schemas"]["SuggestionItem"][];
|
|
4203
4540
|
};
|
|
4204
4541
|
SuggestionItem: components["schemas"]["CompanySuggestion"] | components["schemas"]["TermSuggestion"];
|
|
4542
|
+
TalentAccess: {
|
|
4543
|
+
/** @enum {string} */
|
|
4544
|
+
object: "talent_access";
|
|
4545
|
+
/** @description Whether the viewer has an approved company membership on this board. */
|
|
4546
|
+
isEmployer: boolean;
|
|
4547
|
+
/** @description Whether this board sells talent access (a public `talent_access` plan exists). When `false` the talent surfaces are not credit-gated for employers. */
|
|
4548
|
+
paywallActive: boolean;
|
|
4549
|
+
/** @description The CTA answer: the viewer is an approved employer AND either the board has no talent paywall or one of their companies holds an active talent_access subscription or a succeeded credit pack. Always `false` for candidates; anonymous viewers get 401. */
|
|
4550
|
+
hasTalentAccess: boolean;
|
|
4551
|
+
/** @description True when any active talent_access subscription carries the unlimited profile-unlock sentinel on its feature snapshot. */
|
|
4552
|
+
hasUnlimitedUnlocks: boolean;
|
|
4553
|
+
};
|
|
4205
4554
|
TalentDirectoryEntry: {
|
|
4206
4555
|
/** @enum {string} */
|
|
4207
4556
|
object: "talent_directory_entry";
|
|
@@ -4240,6 +4589,8 @@ interface components {
|
|
|
4240
4589
|
title: string;
|
|
4241
4590
|
companyName: string;
|
|
4242
4591
|
companyUrl: string | null;
|
|
4592
|
+
/** @description Absolute logo URL for the company, resolved from `companyUrl` the same way the hosted profile renders it; `null` when the company has no usable website. Render a monogram/initials fallback when `null` (and on image error — the URL 404s when the brand has no icon). */
|
|
4593
|
+
companyLogoUrl: string | null;
|
|
4243
4594
|
location: string | null;
|
|
4244
4595
|
employmentType: string | null;
|
|
4245
4596
|
locationType: string | null;
|
|
@@ -4255,6 +4606,8 @@ interface components {
|
|
|
4255
4606
|
education: {
|
|
4256
4607
|
institutionName: string;
|
|
4257
4608
|
institutionUrl: string | null;
|
|
4609
|
+
/** @description Absolute logo URL for the institution, resolved from `institutionUrl` the same way the hosted profile renders it; `null` when the institution has no usable website. Render a monogram/initials fallback when `null` (and on image error). */
|
|
4610
|
+
institutionLogoUrl: string | null;
|
|
4258
4611
|
degree: string | null;
|
|
4259
4612
|
fieldOfStudy: string | null;
|
|
4260
4613
|
grade: string | null;
|
|
@@ -4769,10 +5122,30 @@ interface components {
|
|
|
4769
5122
|
channel: "messageEmails" | "applicationEmails";
|
|
4770
5123
|
subscribed: boolean;
|
|
4771
5124
|
};
|
|
5125
|
+
UpdatePaywallOfferBody: {
|
|
5126
|
+
/** @description Enable or disable the offer. */
|
|
5127
|
+
isEnabled?: boolean;
|
|
5128
|
+
/** @description Alias of isEnabled (either is accepted). */
|
|
5129
|
+
enabled?: boolean;
|
|
5130
|
+
label?: string;
|
|
5131
|
+
billingLabel?: string;
|
|
5132
|
+
displayOrder?: number;
|
|
5133
|
+
isDefault?: boolean;
|
|
5134
|
+
};
|
|
4772
5135
|
UpdatePipelineStageBody: {
|
|
4773
5136
|
label?: string;
|
|
4774
5137
|
hidden?: boolean;
|
|
4775
5138
|
};
|
|
5139
|
+
UpdatePlanBody: {
|
|
5140
|
+
name?: string;
|
|
5141
|
+
description?: string;
|
|
5142
|
+
/** @description Publish/unpublish the plan. */
|
|
5143
|
+
isPublic?: boolean;
|
|
5144
|
+
isRecommended?: boolean;
|
|
5145
|
+
/** @description Archive the plan (soft-delete). There is no hard DELETE. */
|
|
5146
|
+
isArchived?: boolean;
|
|
5147
|
+
displayOrder?: number;
|
|
5148
|
+
};
|
|
4776
5149
|
UpdateRedirectBody: {
|
|
4777
5150
|
/** @description Source path to match, for example `/old-careers`. */
|
|
4778
5151
|
fromPath?: string;
|