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