@cavuno/board 1.13.0 → 1.15.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 +230 -5
- package/dist/index.d.ts +230 -5
- package/dist/index.js +41 -2
- package/dist/index.mjs +41 -2
- package/package.json +1 -1
- package/skills/manifest.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -337,6 +337,50 @@ interface components {
|
|
|
337
337
|
/** @description Number of currently-published jobs at this company. */
|
|
338
338
|
publishedJobCount: number;
|
|
339
339
|
};
|
|
340
|
+
CompanyCategorySalary: {
|
|
341
|
+
/** @enum {string} */
|
|
342
|
+
object: "company_category_salary";
|
|
343
|
+
categorySourceSlug: string;
|
|
344
|
+
categoryCanonicalSlug: string;
|
|
345
|
+
companyName: string;
|
|
346
|
+
companySlug: string;
|
|
347
|
+
companyLogoPath: string | null;
|
|
348
|
+
companyWebsite: string | null;
|
|
349
|
+
categoryName: string;
|
|
350
|
+
overallSalary: {
|
|
351
|
+
avgMin: number;
|
|
352
|
+
avgMax: number;
|
|
353
|
+
jobCount: number;
|
|
354
|
+
} | null;
|
|
355
|
+
bySeniority: {
|
|
356
|
+
seniority: string;
|
|
357
|
+
avgSalaryMin: number;
|
|
358
|
+
avgSalaryMax: number;
|
|
359
|
+
jobCount: number;
|
|
360
|
+
boardAvgMin: number | null;
|
|
361
|
+
boardAvgMax: number | null;
|
|
362
|
+
boardMedianMin: number | null;
|
|
363
|
+
boardMedianMax: number | null;
|
|
364
|
+
boardP25Min: number | null;
|
|
365
|
+
boardP75Min: number | null;
|
|
366
|
+
boardP25Max: number | null;
|
|
367
|
+
boardP75Max: number | null;
|
|
368
|
+
diffPercent: number | null;
|
|
369
|
+
}[];
|
|
370
|
+
competitors: {
|
|
371
|
+
companySlug: string;
|
|
372
|
+
companyName: string;
|
|
373
|
+
logoPath: string | null;
|
|
374
|
+
avgSalaryMin: number;
|
|
375
|
+
avgSalaryMax: number;
|
|
376
|
+
jobCount: number;
|
|
377
|
+
}[];
|
|
378
|
+
boardCategoryAvgMin: number | null;
|
|
379
|
+
boardCategoryAvgMax: number | null;
|
|
380
|
+
boardCategoryP25Min: number | null;
|
|
381
|
+
boardCategoryP75Max: number | null;
|
|
382
|
+
currency: string;
|
|
383
|
+
};
|
|
340
384
|
CompanyMarket: {
|
|
341
385
|
/** @enum {string} */
|
|
342
386
|
object: "company_market";
|
|
@@ -379,6 +423,66 @@ interface components {
|
|
|
379
423
|
/** @description Markets (sectors) this company operates in, each with its source slug. Empty when the company has no markets. */
|
|
380
424
|
markets: components["schemas"]["CompanyMarketRef"][];
|
|
381
425
|
};
|
|
426
|
+
CompanySalary: {
|
|
427
|
+
/** @enum {string} */
|
|
428
|
+
object: "company_salary";
|
|
429
|
+
companyName: string;
|
|
430
|
+
companySlug: string;
|
|
431
|
+
companyLogoPath: string | null;
|
|
432
|
+
companyWebsite: string | null;
|
|
433
|
+
overallSalary: {
|
|
434
|
+
avgMin: number;
|
|
435
|
+
avgMax: number;
|
|
436
|
+
jobCount: number;
|
|
437
|
+
} | null;
|
|
438
|
+
bySeniority: {
|
|
439
|
+
seniority: string;
|
|
440
|
+
avgSalaryMin: number;
|
|
441
|
+
avgSalaryMax: number;
|
|
442
|
+
jobCount: number;
|
|
443
|
+
boardAvgMin: number | null;
|
|
444
|
+
boardAvgMax: number | null;
|
|
445
|
+
boardMedianMin: number | null;
|
|
446
|
+
boardMedianMax: number | null;
|
|
447
|
+
boardP25Min: number | null;
|
|
448
|
+
boardP75Min: number | null;
|
|
449
|
+
boardP25Max: number | null;
|
|
450
|
+
boardP75Max: number | null;
|
|
451
|
+
diffPercent: number | null;
|
|
452
|
+
}[];
|
|
453
|
+
competitors: {
|
|
454
|
+
companySlug: string;
|
|
455
|
+
companyName: string;
|
|
456
|
+
logoPath: string | null;
|
|
457
|
+
avgSalaryMin: number;
|
|
458
|
+
avgSalaryMax: number;
|
|
459
|
+
jobCount: number;
|
|
460
|
+
}[];
|
|
461
|
+
topLocations: {
|
|
462
|
+
locationName: string;
|
|
463
|
+
countryCode: string;
|
|
464
|
+
placeSlug: string;
|
|
465
|
+
avgSalaryMin: number;
|
|
466
|
+
avgSalaryMax: number;
|
|
467
|
+
jobCount: number;
|
|
468
|
+
}[];
|
|
469
|
+
byCategory: {
|
|
470
|
+
categorySlug: string;
|
|
471
|
+
categoryName: string;
|
|
472
|
+
avgSalaryMin: number;
|
|
473
|
+
avgSalaryMax: number;
|
|
474
|
+
jobCount: number;
|
|
475
|
+
}[];
|
|
476
|
+
boardOverallAvgMin: number | null;
|
|
477
|
+
boardOverallAvgMax: number | null;
|
|
478
|
+
boardMedianMin: number | null;
|
|
479
|
+
boardMedianMax: number | null;
|
|
480
|
+
boardP25Min: number | null;
|
|
481
|
+
boardP75Min: number | null;
|
|
482
|
+
boardP25Max: number | null;
|
|
483
|
+
boardP75Max: number | null;
|
|
484
|
+
currency: string;
|
|
485
|
+
};
|
|
382
486
|
CompanySummary: {
|
|
383
487
|
/** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the company endpoints (e.g. `GET /v1/companies/{id}`). */
|
|
384
488
|
id: string;
|
|
@@ -930,6 +1034,11 @@ interface components {
|
|
|
930
1034
|
/** Format: email */
|
|
931
1035
|
email: string;
|
|
932
1036
|
};
|
|
1037
|
+
JobPostingLogo: {
|
|
1038
|
+
/** @enum {string} */
|
|
1039
|
+
object: "job_posting_logo";
|
|
1040
|
+
publicUrl: string;
|
|
1041
|
+
};
|
|
933
1042
|
JobPostingPlan: {
|
|
934
1043
|
/** @enum {string} */
|
|
935
1044
|
object: "job_posting_plan";
|
|
@@ -1213,10 +1322,10 @@ interface components {
|
|
|
1213
1322
|
* @enum {string}
|
|
1214
1323
|
*/
|
|
1215
1324
|
object: "media_upload";
|
|
1216
|
-
/** @description
|
|
1325
|
+
/** @description URL where the file can be downloaded. Permanent for files served from the assets domain; a signed URL for legacy files. Always set on the upload response; may be `null` on retrieval if the underlying blob has been deleted. */
|
|
1217
1326
|
url: string | null;
|
|
1218
|
-
/** @description Time at which the signed `url` expires
|
|
1219
|
-
urlExpiresAt: string;
|
|
1327
|
+
/** @description Time at which the signed `url` expires (ISO 8601 datetime), or `null` when the `url` is permanent and never expires. */
|
|
1328
|
+
urlExpiresAt: string | null;
|
|
1220
1329
|
/** @description MIME type of the uploaded file. */
|
|
1221
1330
|
mimeType: string;
|
|
1222
1331
|
/** @description Size of the uploaded file, in bytes. */
|
|
@@ -2746,7 +2855,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
|
|
|
2746
2855
|
* constant because the package is platform-neutral and cannot read
|
|
2747
2856
|
* package.json at runtime.
|
|
2748
2857
|
*/
|
|
2749
|
-
declare const SDK_VERSION = "1.
|
|
2858
|
+
declare const SDK_VERSION = "1.15.0";
|
|
2750
2859
|
|
|
2751
2860
|
type BoardUser = Schemas['BoardUser'];
|
|
2752
2861
|
type BoardAuthSession = Schemas['BoardAuthSession'];
|
|
@@ -2954,6 +3063,11 @@ type CreateJobPostingInput = Schemas['CreateJobPostingBody'];
|
|
|
2954
3063
|
* `invoice_sent`. A rejected submission throws a `BoardApiError` instead.
|
|
2955
3064
|
*/
|
|
2956
3065
|
type JobPostingResult = Schemas['JobPostingResult'];
|
|
3066
|
+
/**
|
|
3067
|
+
* The result of `uploadLogo()` / `fetchLogoByDomain()`: a stored logo whose
|
|
3068
|
+
* `publicUrl` you pass back as `submission.logoUrl` on `create(...)`.
|
|
3069
|
+
*/
|
|
3070
|
+
type JobPostingLogoResult = Schemas['JobPostingLogo'];
|
|
2957
3071
|
type JobPostingBillingCheck = Schemas['JobPostingBillingCheck'];
|
|
2958
3072
|
type JobPostingBillingVerification = Schemas['JobPostingBillingVerification'];
|
|
2959
3073
|
type JobPostingBillingOptions = Schemas['JobPostingBillingOptions'];
|
|
@@ -3310,6 +3424,109 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
3310
3424
|
geo: components["schemas"]["TaxonomyGeo"];
|
|
3311
3425
|
}>;
|
|
3312
3426
|
};
|
|
3427
|
+
salaries: ((companySlug: string, options?: FetchOptions) => Promise<{
|
|
3428
|
+
object: "company_salary";
|
|
3429
|
+
companyName: string;
|
|
3430
|
+
companySlug: string;
|
|
3431
|
+
companyLogoPath: string | null;
|
|
3432
|
+
companyWebsite: string | null;
|
|
3433
|
+
overallSalary: {
|
|
3434
|
+
avgMin: number;
|
|
3435
|
+
avgMax: number;
|
|
3436
|
+
jobCount: number;
|
|
3437
|
+
} | null;
|
|
3438
|
+
bySeniority: {
|
|
3439
|
+
seniority: string;
|
|
3440
|
+
avgSalaryMin: number;
|
|
3441
|
+
avgSalaryMax: number;
|
|
3442
|
+
jobCount: number;
|
|
3443
|
+
boardAvgMin: number | null;
|
|
3444
|
+
boardAvgMax: number | null;
|
|
3445
|
+
boardMedianMin: number | null;
|
|
3446
|
+
boardMedianMax: number | null;
|
|
3447
|
+
boardP25Min: number | null;
|
|
3448
|
+
boardP75Min: number | null;
|
|
3449
|
+
boardP25Max: number | null;
|
|
3450
|
+
boardP75Max: number | null;
|
|
3451
|
+
diffPercent: number | null;
|
|
3452
|
+
}[];
|
|
3453
|
+
competitors: {
|
|
3454
|
+
companySlug: string;
|
|
3455
|
+
companyName: string;
|
|
3456
|
+
logoPath: string | null;
|
|
3457
|
+
avgSalaryMin: number;
|
|
3458
|
+
avgSalaryMax: number;
|
|
3459
|
+
jobCount: number;
|
|
3460
|
+
}[];
|
|
3461
|
+
topLocations: {
|
|
3462
|
+
locationName: string;
|
|
3463
|
+
countryCode: string;
|
|
3464
|
+
placeSlug: string;
|
|
3465
|
+
avgSalaryMin: number;
|
|
3466
|
+
avgSalaryMax: number;
|
|
3467
|
+
jobCount: number;
|
|
3468
|
+
}[];
|
|
3469
|
+
byCategory: {
|
|
3470
|
+
categorySlug: string;
|
|
3471
|
+
categoryName: string;
|
|
3472
|
+
avgSalaryMin: number;
|
|
3473
|
+
avgSalaryMax: number;
|
|
3474
|
+
jobCount: number;
|
|
3475
|
+
}[];
|
|
3476
|
+
boardOverallAvgMin: number | null;
|
|
3477
|
+
boardOverallAvgMax: number | null;
|
|
3478
|
+
boardMedianMin: number | null;
|
|
3479
|
+
boardMedianMax: number | null;
|
|
3480
|
+
boardP25Min: number | null;
|
|
3481
|
+
boardP75Min: number | null;
|
|
3482
|
+
boardP25Max: number | null;
|
|
3483
|
+
boardP75Max: number | null;
|
|
3484
|
+
currency: string;
|
|
3485
|
+
}>) & {
|
|
3486
|
+
category(companySlug: string, categorySlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
|
|
3487
|
+
object: "company_category_salary";
|
|
3488
|
+
categorySourceSlug: string;
|
|
3489
|
+
categoryCanonicalSlug: string;
|
|
3490
|
+
companyName: string;
|
|
3491
|
+
companySlug: string;
|
|
3492
|
+
companyLogoPath: string | null;
|
|
3493
|
+
companyWebsite: string | null;
|
|
3494
|
+
categoryName: string;
|
|
3495
|
+
overallSalary: {
|
|
3496
|
+
avgMin: number;
|
|
3497
|
+
avgMax: number;
|
|
3498
|
+
jobCount: number;
|
|
3499
|
+
} | null;
|
|
3500
|
+
bySeniority: {
|
|
3501
|
+
seniority: string;
|
|
3502
|
+
avgSalaryMin: number;
|
|
3503
|
+
avgSalaryMax: number;
|
|
3504
|
+
jobCount: number;
|
|
3505
|
+
boardAvgMin: number | null;
|
|
3506
|
+
boardAvgMax: number | null;
|
|
3507
|
+
boardMedianMin: number | null;
|
|
3508
|
+
boardMedianMax: number | null;
|
|
3509
|
+
boardP25Min: number | null;
|
|
3510
|
+
boardP75Min: number | null;
|
|
3511
|
+
boardP25Max: number | null;
|
|
3512
|
+
boardP75Max: number | null;
|
|
3513
|
+
diffPercent: number | null;
|
|
3514
|
+
}[];
|
|
3515
|
+
competitors: {
|
|
3516
|
+
companySlug: string;
|
|
3517
|
+
companyName: string;
|
|
3518
|
+
logoPath: string | null;
|
|
3519
|
+
avgSalaryMin: number;
|
|
3520
|
+
avgSalaryMax: number;
|
|
3521
|
+
jobCount: number;
|
|
3522
|
+
}[];
|
|
3523
|
+
boardCategoryAvgMin: number | null;
|
|
3524
|
+
boardCategoryAvgMax: number | null;
|
|
3525
|
+
boardCategoryP25Min: number | null;
|
|
3526
|
+
boardCategoryP75Max: number | null;
|
|
3527
|
+
currency: string;
|
|
3528
|
+
}>;
|
|
3529
|
+
};
|
|
3313
3530
|
};
|
|
3314
3531
|
blog: {
|
|
3315
3532
|
posts: {
|
|
@@ -3664,6 +3881,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
3664
3881
|
status: "invoice_sent";
|
|
3665
3882
|
jobId: string;
|
|
3666
3883
|
}>;
|
|
3884
|
+
uploadLogo(file: Blob, options?: FetchOptions): Promise<{
|
|
3885
|
+
object: "job_posting_logo";
|
|
3886
|
+
publicUrl: string;
|
|
3887
|
+
}>;
|
|
3888
|
+
fetchLogoByDomain(domain: string, options?: FetchOptions): Promise<{
|
|
3889
|
+
object: "job_posting_logo";
|
|
3890
|
+
publicUrl: string;
|
|
3891
|
+
}>;
|
|
3667
3892
|
checkBilling(input: {
|
|
3668
3893
|
email: string;
|
|
3669
3894
|
}, options?: FetchOptions): Promise<{
|
|
@@ -4146,4 +4371,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
4146
4371
|
};
|
|
4147
4372
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
4148
4373
|
|
|
4149
|
-
export { ACCESS_TOKEN_KEY, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type CompaniesListQuery, type CompaniesSearchBody, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanySimilarQuery, type CreateBoardClientOptions, type CreateJobPostingInput, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobPostingBillingCheck, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingPlan, type JobPostingResult, type JobPostingSubscriptionEntitlements, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type LocationSalaryDetail, type LocationSkillsIndex, type LocationTitlesIndex, type Logger, type LoginBody, type LogoutBody, type OfficeLocation, type PlacesListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicCompanyDetail, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type ResetPasswordBody, SDK_VERSION, type SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type SkillLocationSalary, type SkillLocationsIndex, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type TitleLocationSalary, type TitleLocationsIndex, type TitleSalaryDetail, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
|
|
4374
|
+
export { ACCESS_TOKEN_KEY, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type CompaniesListQuery, type CompaniesSearchBody, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanySimilarQuery, type CreateBoardClientOptions, type CreateJobPostingInput, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobPostingBillingCheck, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, type JobPostingSubscriptionEntitlements, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type LocationSalaryDetail, type LocationSkillsIndex, type LocationTitlesIndex, type Logger, type LoginBody, type LogoutBody, type OfficeLocation, type PlacesListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicCompanyDetail, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type ResetPasswordBody, SDK_VERSION, type SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type SkillLocationSalary, type SkillLocationsIndex, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type TitleLocationSalary, type TitleLocationsIndex, type TitleSalaryDetail, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
|
package/dist/index.d.ts
CHANGED
|
@@ -337,6 +337,50 @@ interface components {
|
|
|
337
337
|
/** @description Number of currently-published jobs at this company. */
|
|
338
338
|
publishedJobCount: number;
|
|
339
339
|
};
|
|
340
|
+
CompanyCategorySalary: {
|
|
341
|
+
/** @enum {string} */
|
|
342
|
+
object: "company_category_salary";
|
|
343
|
+
categorySourceSlug: string;
|
|
344
|
+
categoryCanonicalSlug: string;
|
|
345
|
+
companyName: string;
|
|
346
|
+
companySlug: string;
|
|
347
|
+
companyLogoPath: string | null;
|
|
348
|
+
companyWebsite: string | null;
|
|
349
|
+
categoryName: string;
|
|
350
|
+
overallSalary: {
|
|
351
|
+
avgMin: number;
|
|
352
|
+
avgMax: number;
|
|
353
|
+
jobCount: number;
|
|
354
|
+
} | null;
|
|
355
|
+
bySeniority: {
|
|
356
|
+
seniority: string;
|
|
357
|
+
avgSalaryMin: number;
|
|
358
|
+
avgSalaryMax: number;
|
|
359
|
+
jobCount: number;
|
|
360
|
+
boardAvgMin: number | null;
|
|
361
|
+
boardAvgMax: number | null;
|
|
362
|
+
boardMedianMin: number | null;
|
|
363
|
+
boardMedianMax: number | null;
|
|
364
|
+
boardP25Min: number | null;
|
|
365
|
+
boardP75Min: number | null;
|
|
366
|
+
boardP25Max: number | null;
|
|
367
|
+
boardP75Max: number | null;
|
|
368
|
+
diffPercent: number | null;
|
|
369
|
+
}[];
|
|
370
|
+
competitors: {
|
|
371
|
+
companySlug: string;
|
|
372
|
+
companyName: string;
|
|
373
|
+
logoPath: string | null;
|
|
374
|
+
avgSalaryMin: number;
|
|
375
|
+
avgSalaryMax: number;
|
|
376
|
+
jobCount: number;
|
|
377
|
+
}[];
|
|
378
|
+
boardCategoryAvgMin: number | null;
|
|
379
|
+
boardCategoryAvgMax: number | null;
|
|
380
|
+
boardCategoryP25Min: number | null;
|
|
381
|
+
boardCategoryP75Max: number | null;
|
|
382
|
+
currency: string;
|
|
383
|
+
};
|
|
340
384
|
CompanyMarket: {
|
|
341
385
|
/** @enum {string} */
|
|
342
386
|
object: "company_market";
|
|
@@ -379,6 +423,66 @@ interface components {
|
|
|
379
423
|
/** @description Markets (sectors) this company operates in, each with its source slug. Empty when the company has no markets. */
|
|
380
424
|
markets: components["schemas"]["CompanyMarketRef"][];
|
|
381
425
|
};
|
|
426
|
+
CompanySalary: {
|
|
427
|
+
/** @enum {string} */
|
|
428
|
+
object: "company_salary";
|
|
429
|
+
companyName: string;
|
|
430
|
+
companySlug: string;
|
|
431
|
+
companyLogoPath: string | null;
|
|
432
|
+
companyWebsite: string | null;
|
|
433
|
+
overallSalary: {
|
|
434
|
+
avgMin: number;
|
|
435
|
+
avgMax: number;
|
|
436
|
+
jobCount: number;
|
|
437
|
+
} | null;
|
|
438
|
+
bySeniority: {
|
|
439
|
+
seniority: string;
|
|
440
|
+
avgSalaryMin: number;
|
|
441
|
+
avgSalaryMax: number;
|
|
442
|
+
jobCount: number;
|
|
443
|
+
boardAvgMin: number | null;
|
|
444
|
+
boardAvgMax: number | null;
|
|
445
|
+
boardMedianMin: number | null;
|
|
446
|
+
boardMedianMax: number | null;
|
|
447
|
+
boardP25Min: number | null;
|
|
448
|
+
boardP75Min: number | null;
|
|
449
|
+
boardP25Max: number | null;
|
|
450
|
+
boardP75Max: number | null;
|
|
451
|
+
diffPercent: number | null;
|
|
452
|
+
}[];
|
|
453
|
+
competitors: {
|
|
454
|
+
companySlug: string;
|
|
455
|
+
companyName: string;
|
|
456
|
+
logoPath: string | null;
|
|
457
|
+
avgSalaryMin: number;
|
|
458
|
+
avgSalaryMax: number;
|
|
459
|
+
jobCount: number;
|
|
460
|
+
}[];
|
|
461
|
+
topLocations: {
|
|
462
|
+
locationName: string;
|
|
463
|
+
countryCode: string;
|
|
464
|
+
placeSlug: string;
|
|
465
|
+
avgSalaryMin: number;
|
|
466
|
+
avgSalaryMax: number;
|
|
467
|
+
jobCount: number;
|
|
468
|
+
}[];
|
|
469
|
+
byCategory: {
|
|
470
|
+
categorySlug: string;
|
|
471
|
+
categoryName: string;
|
|
472
|
+
avgSalaryMin: number;
|
|
473
|
+
avgSalaryMax: number;
|
|
474
|
+
jobCount: number;
|
|
475
|
+
}[];
|
|
476
|
+
boardOverallAvgMin: number | null;
|
|
477
|
+
boardOverallAvgMax: number | null;
|
|
478
|
+
boardMedianMin: number | null;
|
|
479
|
+
boardMedianMax: number | null;
|
|
480
|
+
boardP25Min: number | null;
|
|
481
|
+
boardP75Min: number | null;
|
|
482
|
+
boardP25Max: number | null;
|
|
483
|
+
boardP75Max: number | null;
|
|
484
|
+
currency: string;
|
|
485
|
+
};
|
|
382
486
|
CompanySummary: {
|
|
383
487
|
/** @description Unique identifier for the object. Use this value as the `{id}` path parameter for the company endpoints (e.g. `GET /v1/companies/{id}`). */
|
|
384
488
|
id: string;
|
|
@@ -930,6 +1034,11 @@ interface components {
|
|
|
930
1034
|
/** Format: email */
|
|
931
1035
|
email: string;
|
|
932
1036
|
};
|
|
1037
|
+
JobPostingLogo: {
|
|
1038
|
+
/** @enum {string} */
|
|
1039
|
+
object: "job_posting_logo";
|
|
1040
|
+
publicUrl: string;
|
|
1041
|
+
};
|
|
933
1042
|
JobPostingPlan: {
|
|
934
1043
|
/** @enum {string} */
|
|
935
1044
|
object: "job_posting_plan";
|
|
@@ -1213,10 +1322,10 @@ interface components {
|
|
|
1213
1322
|
* @enum {string}
|
|
1214
1323
|
*/
|
|
1215
1324
|
object: "media_upload";
|
|
1216
|
-
/** @description
|
|
1325
|
+
/** @description URL where the file can be downloaded. Permanent for files served from the assets domain; a signed URL for legacy files. Always set on the upload response; may be `null` on retrieval if the underlying blob has been deleted. */
|
|
1217
1326
|
url: string | null;
|
|
1218
|
-
/** @description Time at which the signed `url` expires
|
|
1219
|
-
urlExpiresAt: string;
|
|
1327
|
+
/** @description Time at which the signed `url` expires (ISO 8601 datetime), or `null` when the `url` is permanent and never expires. */
|
|
1328
|
+
urlExpiresAt: string | null;
|
|
1220
1329
|
/** @description MIME type of the uploaded file. */
|
|
1221
1330
|
mimeType: string;
|
|
1222
1331
|
/** @description Size of the uploaded file, in bytes. */
|
|
@@ -2746,7 +2855,7 @@ declare function isConflict(e: unknown): e is BoardApiError;
|
|
|
2746
2855
|
* constant because the package is platform-neutral and cannot read
|
|
2747
2856
|
* package.json at runtime.
|
|
2748
2857
|
*/
|
|
2749
|
-
declare const SDK_VERSION = "1.
|
|
2858
|
+
declare const SDK_VERSION = "1.15.0";
|
|
2750
2859
|
|
|
2751
2860
|
type BoardUser = Schemas['BoardUser'];
|
|
2752
2861
|
type BoardAuthSession = Schemas['BoardAuthSession'];
|
|
@@ -2954,6 +3063,11 @@ type CreateJobPostingInput = Schemas['CreateJobPostingBody'];
|
|
|
2954
3063
|
* `invoice_sent`. A rejected submission throws a `BoardApiError` instead.
|
|
2955
3064
|
*/
|
|
2956
3065
|
type JobPostingResult = Schemas['JobPostingResult'];
|
|
3066
|
+
/**
|
|
3067
|
+
* The result of `uploadLogo()` / `fetchLogoByDomain()`: a stored logo whose
|
|
3068
|
+
* `publicUrl` you pass back as `submission.logoUrl` on `create(...)`.
|
|
3069
|
+
*/
|
|
3070
|
+
type JobPostingLogoResult = Schemas['JobPostingLogo'];
|
|
2957
3071
|
type JobPostingBillingCheck = Schemas['JobPostingBillingCheck'];
|
|
2958
3072
|
type JobPostingBillingVerification = Schemas['JobPostingBillingVerification'];
|
|
2959
3073
|
type JobPostingBillingOptions = Schemas['JobPostingBillingOptions'];
|
|
@@ -3310,6 +3424,109 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
3310
3424
|
geo: components["schemas"]["TaxonomyGeo"];
|
|
3311
3425
|
}>;
|
|
3312
3426
|
};
|
|
3427
|
+
salaries: ((companySlug: string, options?: FetchOptions) => Promise<{
|
|
3428
|
+
object: "company_salary";
|
|
3429
|
+
companyName: string;
|
|
3430
|
+
companySlug: string;
|
|
3431
|
+
companyLogoPath: string | null;
|
|
3432
|
+
companyWebsite: string | null;
|
|
3433
|
+
overallSalary: {
|
|
3434
|
+
avgMin: number;
|
|
3435
|
+
avgMax: number;
|
|
3436
|
+
jobCount: number;
|
|
3437
|
+
} | null;
|
|
3438
|
+
bySeniority: {
|
|
3439
|
+
seniority: string;
|
|
3440
|
+
avgSalaryMin: number;
|
|
3441
|
+
avgSalaryMax: number;
|
|
3442
|
+
jobCount: number;
|
|
3443
|
+
boardAvgMin: number | null;
|
|
3444
|
+
boardAvgMax: number | null;
|
|
3445
|
+
boardMedianMin: number | null;
|
|
3446
|
+
boardMedianMax: number | null;
|
|
3447
|
+
boardP25Min: number | null;
|
|
3448
|
+
boardP75Min: number | null;
|
|
3449
|
+
boardP25Max: number | null;
|
|
3450
|
+
boardP75Max: number | null;
|
|
3451
|
+
diffPercent: number | null;
|
|
3452
|
+
}[];
|
|
3453
|
+
competitors: {
|
|
3454
|
+
companySlug: string;
|
|
3455
|
+
companyName: string;
|
|
3456
|
+
logoPath: string | null;
|
|
3457
|
+
avgSalaryMin: number;
|
|
3458
|
+
avgSalaryMax: number;
|
|
3459
|
+
jobCount: number;
|
|
3460
|
+
}[];
|
|
3461
|
+
topLocations: {
|
|
3462
|
+
locationName: string;
|
|
3463
|
+
countryCode: string;
|
|
3464
|
+
placeSlug: string;
|
|
3465
|
+
avgSalaryMin: number;
|
|
3466
|
+
avgSalaryMax: number;
|
|
3467
|
+
jobCount: number;
|
|
3468
|
+
}[];
|
|
3469
|
+
byCategory: {
|
|
3470
|
+
categorySlug: string;
|
|
3471
|
+
categoryName: string;
|
|
3472
|
+
avgSalaryMin: number;
|
|
3473
|
+
avgSalaryMax: number;
|
|
3474
|
+
jobCount: number;
|
|
3475
|
+
}[];
|
|
3476
|
+
boardOverallAvgMin: number | null;
|
|
3477
|
+
boardOverallAvgMax: number | null;
|
|
3478
|
+
boardMedianMin: number | null;
|
|
3479
|
+
boardMedianMax: number | null;
|
|
3480
|
+
boardP25Min: number | null;
|
|
3481
|
+
boardP75Min: number | null;
|
|
3482
|
+
boardP25Max: number | null;
|
|
3483
|
+
boardP75Max: number | null;
|
|
3484
|
+
currency: string;
|
|
3485
|
+
}>) & {
|
|
3486
|
+
category(companySlug: string, categorySlug: string, query?: SalaryDetailQuery, options?: FetchOptions): Promise<{
|
|
3487
|
+
object: "company_category_salary";
|
|
3488
|
+
categorySourceSlug: string;
|
|
3489
|
+
categoryCanonicalSlug: string;
|
|
3490
|
+
companyName: string;
|
|
3491
|
+
companySlug: string;
|
|
3492
|
+
companyLogoPath: string | null;
|
|
3493
|
+
companyWebsite: string | null;
|
|
3494
|
+
categoryName: string;
|
|
3495
|
+
overallSalary: {
|
|
3496
|
+
avgMin: number;
|
|
3497
|
+
avgMax: number;
|
|
3498
|
+
jobCount: number;
|
|
3499
|
+
} | null;
|
|
3500
|
+
bySeniority: {
|
|
3501
|
+
seniority: string;
|
|
3502
|
+
avgSalaryMin: number;
|
|
3503
|
+
avgSalaryMax: number;
|
|
3504
|
+
jobCount: number;
|
|
3505
|
+
boardAvgMin: number | null;
|
|
3506
|
+
boardAvgMax: number | null;
|
|
3507
|
+
boardMedianMin: number | null;
|
|
3508
|
+
boardMedianMax: number | null;
|
|
3509
|
+
boardP25Min: number | null;
|
|
3510
|
+
boardP75Min: number | null;
|
|
3511
|
+
boardP25Max: number | null;
|
|
3512
|
+
boardP75Max: number | null;
|
|
3513
|
+
diffPercent: number | null;
|
|
3514
|
+
}[];
|
|
3515
|
+
competitors: {
|
|
3516
|
+
companySlug: string;
|
|
3517
|
+
companyName: string;
|
|
3518
|
+
logoPath: string | null;
|
|
3519
|
+
avgSalaryMin: number;
|
|
3520
|
+
avgSalaryMax: number;
|
|
3521
|
+
jobCount: number;
|
|
3522
|
+
}[];
|
|
3523
|
+
boardCategoryAvgMin: number | null;
|
|
3524
|
+
boardCategoryAvgMax: number | null;
|
|
3525
|
+
boardCategoryP25Min: number | null;
|
|
3526
|
+
boardCategoryP75Max: number | null;
|
|
3527
|
+
currency: string;
|
|
3528
|
+
}>;
|
|
3529
|
+
};
|
|
3313
3530
|
};
|
|
3314
3531
|
blog: {
|
|
3315
3532
|
posts: {
|
|
@@ -3664,6 +3881,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
3664
3881
|
status: "invoice_sent";
|
|
3665
3882
|
jobId: string;
|
|
3666
3883
|
}>;
|
|
3884
|
+
uploadLogo(file: Blob, options?: FetchOptions): Promise<{
|
|
3885
|
+
object: "job_posting_logo";
|
|
3886
|
+
publicUrl: string;
|
|
3887
|
+
}>;
|
|
3888
|
+
fetchLogoByDomain(domain: string, options?: FetchOptions): Promise<{
|
|
3889
|
+
object: "job_posting_logo";
|
|
3890
|
+
publicUrl: string;
|
|
3891
|
+
}>;
|
|
3667
3892
|
checkBilling(input: {
|
|
3668
3893
|
email: string;
|
|
3669
3894
|
}, options?: FetchOptions): Promise<{
|
|
@@ -4146,4 +4371,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
|
|
|
4146
4371
|
};
|
|
4147
4372
|
type BoardSdk = ReturnType<typeof createBoardClient>;
|
|
4148
4373
|
|
|
4149
|
-
export { ACCESS_TOKEN_KEY, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type CompaniesListQuery, type CompaniesSearchBody, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanySimilarQuery, type CreateBoardClientOptions, type CreateJobPostingInput, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobPostingBillingCheck, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingPlan, type JobPostingResult, type JobPostingSubscriptionEntitlements, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type LocationSalaryDetail, type LocationSkillsIndex, type LocationTitlesIndex, type Logger, type LoginBody, type LogoutBody, type OfficeLocation, type PlacesListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicCompanyDetail, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type ResetPasswordBody, SDK_VERSION, type SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type SkillLocationSalary, type SkillLocationsIndex, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type TitleLocationSalary, type TitleLocationsIndex, type TitleSalaryDetail, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
|
|
4374
|
+
export { ACCESS_TOKEN_KEY, type Awaitable, BOARD_ACCESS_GRANT_KEY, type BlogAuthorEmbed, type BlogPostsListQuery, type BlogSearchBody, type BlogSimilarQuery, type BlogTagEmbed, type BoardAccessGrant, BoardApiError, type BoardAuthSession, BoardClient, type BoardRequest, type BoardSdk, type BoardSeo, type BoardUser, type CompaniesListQuery, type CompaniesSearchBody, type CompanyJobsListQuery, type CompanyListEnvelope, type CompanyMarket, type CompanyMarketRef, type CompanyMarketsListQuery, type CompanySimilarQuery, type CreateBoardClientOptions, type CreateJobPostingInput, type CustomStorage, type EducationRequirement, type EmbedJobsQuery, type EmploymentType, type FetchOptions, type ForgotPasswordBody, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, type JobCardListEnvelope, type JobCardSearchEnvelope, type JobCompany, type JobPostingBillingCheck, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, type JobPostingSubscriptionEntitlements, type JobsListQuery, type JobsSearchBody, type LegalEntity, type LegalPageType, type ListEnvelope, type LocationSalaryDetail, type LocationSkillsIndex, type LocationTitlesIndex, type Logger, type LoginBody, type LogoutBody, type OfficeLocation, type PlacesListQuery, type PublicBlogAdjacentPosts, type PublicBlogAuthor, type PublicBlogPost, type PublicBlogPostSummary, type PublicBlogTag, type PublicBoard, type PublicBoardAnalytics, type PublicBoardFeatures, type PublicBoardTheme, type PublicCompany, type PublicCompanyDetail, type PublicJob, type PublicJobCard, type PublicLegalPage, type PublicPlace, REFRESH_TOKEN_KEY, type RedirectResolution, type RefreshBody, type RegisterBody, type RelatedSearch, type RemoteOption, type RemotePermit, type RemoteTimezone, type ResetPasswordBody, SDK_VERSION, type SalaryCompany, type SalaryDetailQuery, type SalaryLocation, type SalarySkill, type SalaryTitle, type SaveJobBody, type SavedJob, type SavedJobsListQuery, type SearchEnvelope, type Seniority, type SkillLocationSalary, type SkillLocationsIndex, type SkillSalaryDetail, type StorageMode, type StorefrontPagination, type TaxonomyGeo, type TaxonomyResolution, type TitleLocationSalary, type TitleLocationsIndex, type TitleSalaryDetail, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isConflict, isForbidden, isNotFound, isRateLimited, isUnauthorized, isValidationError };
|
package/dist/index.js
CHANGED
|
@@ -149,7 +149,7 @@ async function clearSession(storage) {
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
// src/version.ts
|
|
152
|
-
var SDK_VERSION = "1.
|
|
152
|
+
var SDK_VERSION = "1.15.0";
|
|
153
153
|
|
|
154
154
|
// src/client.ts
|
|
155
155
|
function isRawBody(body) {
|
|
@@ -494,6 +494,20 @@ function companiesNamespace(client) {
|
|
|
494
494
|
}
|
|
495
495
|
}
|
|
496
496
|
);
|
|
497
|
+
const salaries = Object.assign(
|
|
498
|
+
(companySlug, options) => client.fetch(
|
|
499
|
+
`/companies/${encodeURIComponent(companySlug)}/salaries`,
|
|
500
|
+
options
|
|
501
|
+
),
|
|
502
|
+
{
|
|
503
|
+
category(companySlug, categorySlug, query, options) {
|
|
504
|
+
return client.fetch(
|
|
505
|
+
`/companies/${encodeURIComponent(companySlug)}/salaries/${encodeURIComponent(categorySlug)}`,
|
|
506
|
+
{ ...options, query }
|
|
507
|
+
);
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
);
|
|
497
511
|
return {
|
|
498
512
|
/**
|
|
499
513
|
* List companies on the board. Pass `marketSlug` to scope to one market.
|
|
@@ -559,7 +573,8 @@ function companiesNamespace(client) {
|
|
|
559
573
|
{ ...options, query }
|
|
560
574
|
);
|
|
561
575
|
},
|
|
562
|
-
markets
|
|
576
|
+
markets,
|
|
577
|
+
salaries
|
|
563
578
|
};
|
|
564
579
|
}
|
|
565
580
|
|
|
@@ -671,6 +686,30 @@ function jobPostingNamespace(client) {
|
|
|
671
686
|
body: input
|
|
672
687
|
});
|
|
673
688
|
},
|
|
689
|
+
/**
|
|
690
|
+
* Upload a company logo (JPEG/PNG/WebP/GIF, ≤2 MB). Returns the stored
|
|
691
|
+
* `publicUrl` — pass it back as `submission.logoUrl` on `create(...)`.
|
|
692
|
+
*/
|
|
693
|
+
uploadLogo(file, options) {
|
|
694
|
+
const form = new FormData();
|
|
695
|
+
form.append("file", file);
|
|
696
|
+
return client.fetch("/job-postings/logo", {
|
|
697
|
+
...options,
|
|
698
|
+
method: "POST",
|
|
699
|
+
body: form
|
|
700
|
+
});
|
|
701
|
+
},
|
|
702
|
+
/**
|
|
703
|
+
* Look up a company logo by domain via Brandfetch, store it, and return its
|
|
704
|
+
* `publicUrl` — pass it back as `submission.logoUrl` on `create(...)`. A
|
|
705
|
+
* `BoardApiError` (`job_posting_logo_not_found`) means no usable logo.
|
|
706
|
+
*/
|
|
707
|
+
fetchLogoByDomain(domain, options) {
|
|
708
|
+
return client.fetch("/job-postings/logo/fetch", {
|
|
709
|
+
...options,
|
|
710
|
+
query: { domain }
|
|
711
|
+
});
|
|
712
|
+
},
|
|
674
713
|
/** Does this email already have billing credit on the board? */
|
|
675
714
|
checkBilling(input, options) {
|
|
676
715
|
return client.fetch(
|
package/dist/index.mjs
CHANGED
|
@@ -109,7 +109,7 @@ async function clearSession(storage) {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
// src/version.ts
|
|
112
|
-
var SDK_VERSION = "1.
|
|
112
|
+
var SDK_VERSION = "1.15.0";
|
|
113
113
|
|
|
114
114
|
// src/client.ts
|
|
115
115
|
function isRawBody(body) {
|
|
@@ -454,6 +454,20 @@ function companiesNamespace(client) {
|
|
|
454
454
|
}
|
|
455
455
|
}
|
|
456
456
|
);
|
|
457
|
+
const salaries = Object.assign(
|
|
458
|
+
(companySlug, options) => client.fetch(
|
|
459
|
+
`/companies/${encodeURIComponent(companySlug)}/salaries`,
|
|
460
|
+
options
|
|
461
|
+
),
|
|
462
|
+
{
|
|
463
|
+
category(companySlug, categorySlug, query, options) {
|
|
464
|
+
return client.fetch(
|
|
465
|
+
`/companies/${encodeURIComponent(companySlug)}/salaries/${encodeURIComponent(categorySlug)}`,
|
|
466
|
+
{ ...options, query }
|
|
467
|
+
);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
);
|
|
457
471
|
return {
|
|
458
472
|
/**
|
|
459
473
|
* List companies on the board. Pass `marketSlug` to scope to one market.
|
|
@@ -519,7 +533,8 @@ function companiesNamespace(client) {
|
|
|
519
533
|
{ ...options, query }
|
|
520
534
|
);
|
|
521
535
|
},
|
|
522
|
-
markets
|
|
536
|
+
markets,
|
|
537
|
+
salaries
|
|
523
538
|
};
|
|
524
539
|
}
|
|
525
540
|
|
|
@@ -631,6 +646,30 @@ function jobPostingNamespace(client) {
|
|
|
631
646
|
body: input
|
|
632
647
|
});
|
|
633
648
|
},
|
|
649
|
+
/**
|
|
650
|
+
* Upload a company logo (JPEG/PNG/WebP/GIF, ≤2 MB). Returns the stored
|
|
651
|
+
* `publicUrl` — pass it back as `submission.logoUrl` on `create(...)`.
|
|
652
|
+
*/
|
|
653
|
+
uploadLogo(file, options) {
|
|
654
|
+
const form = new FormData();
|
|
655
|
+
form.append("file", file);
|
|
656
|
+
return client.fetch("/job-postings/logo", {
|
|
657
|
+
...options,
|
|
658
|
+
method: "POST",
|
|
659
|
+
body: form
|
|
660
|
+
});
|
|
661
|
+
},
|
|
662
|
+
/**
|
|
663
|
+
* Look up a company logo by domain via Brandfetch, store it, and return its
|
|
664
|
+
* `publicUrl` — pass it back as `submission.logoUrl` on `create(...)`. A
|
|
665
|
+
* `BoardApiError` (`job_posting_logo_not_found`) means no usable logo.
|
|
666
|
+
*/
|
|
667
|
+
fetchLogoByDomain(domain, options) {
|
|
668
|
+
return client.fetch("/job-postings/logo/fetch", {
|
|
669
|
+
...options,
|
|
670
|
+
query: { domain }
|
|
671
|
+
});
|
|
672
|
+
},
|
|
634
673
|
/** Does this email already have billing credit on the board? */
|
|
635
674
|
checkBilling(input, options) {
|
|
636
675
|
return client.fetch(
|
package/package.json
CHANGED
package/skills/manifest.json
CHANGED