@cavuno/board 4.13.0 → 4.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/{_spec-mFq9K67X.d.mts → _spec-DdWB8z1Z.d.mts} +60 -0
  3. package/dist/{_spec-mFq9K67X.d.ts → _spec-DdWB8z1Z.d.ts} +60 -0
  4. package/dist/{blog-BJF7uypj.d.ts → blog-B7xorPBw.d.ts} +1 -1
  5. package/dist/{blog-ClPGMp-z.d.mts → blog-DopIQsKV.d.mts} +1 -1
  6. package/dist/{board-Po58Sn65.d.ts → board-Bpnqn4Rg.d.ts} +2 -2
  7. package/dist/{board-CkYDc1Lz.d.mts → board-CkgTW4cC.d.mts} +2 -2
  8. package/dist/{breadcrumbs-BSP53mOY.d.mts → breadcrumbs-CAppxMoS.d.mts} +2 -2
  9. package/dist/{breadcrumbs-BZzQwS8O.d.ts → breadcrumbs-DelEqbSz.d.ts} +2 -2
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/{chunk-XEJWXRLK.mjs → chunk-W73BOGOQ.mjs} +4 -0
  12. package/dist/filters.d.mts +2 -2
  13. package/dist/filters.d.ts +2 -2
  14. package/dist/format.d.mts +4 -4
  15. package/dist/format.d.ts +4 -4
  16. package/dist/index.d.mts +117 -13
  17. package/dist/index.d.ts +117 -13
  18. package/dist/index.js +145 -1
  19. package/dist/index.mjs +142 -2
  20. package/dist/{jobs-hZ3Kezhg.d.ts → jobs-CExc4QdI.d.ts} +1 -1
  21. package/dist/{jobs-BWpm-Jf0.d.mts → jobs-Dq0TTcRf.d.mts} +1 -1
  22. package/dist/{search-DSLK6Cch.d.ts → search-CZOec95V.d.ts} +1 -1
  23. package/dist/{search-DRIGekdi.d.mts → search-D6hau3d4.d.mts} +1 -1
  24. package/dist/{seo-CMNJMZcT.d.ts → seo-C1hFa0-v.d.ts} +1 -1
  25. package/dist/{seo-D9wvr1nK.d.mts → seo-CJSwd_ss.d.mts} +1 -1
  26. package/dist/seo-files.d.mts +2 -2
  27. package/dist/seo-files.d.ts +2 -2
  28. package/dist/seo.d.mts +6 -6
  29. package/dist/seo.d.ts +6 -6
  30. package/dist/server.d.mts +6 -6
  31. package/dist/server.d.ts +6 -6
  32. package/dist/server.mjs +1 -1
  33. package/dist/sitemap.d.mts +6 -6
  34. package/dist/sitemap.d.ts +6 -6
  35. package/dist/suggest.d.mts +2 -2
  36. package/dist/suggest.d.ts +2 -2
  37. package/package.json +1 -1
  38. package/skills/manifest.json +1 -1
package/dist/index.d.mts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-mFq9K67X.mjs';
2
- import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-DRIGekdi.mjs';
3
- export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-DRIGekdi.mjs';
4
- import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-CkYDc1Lz.mjs';
5
- export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, l as CompanySalarySummary, C as CustomFieldDefinition, m as CustomFieldOption, n as CustomFieldType, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, P as PublicBoard, q as PublicBoardAds, r as PublicBoardAnalytics, s as PublicBoardFeatures, t as PublicBoardJobForm, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, B as SkillLocationsIndex, S as SkillSalaryDetail, D as TitleLocationSalary, E as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CkYDc1Lz.mjs';
6
- export { B as BoardSeo } from './seo-D9wvr1nK.mjs';
7
- import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-BWpm-Jf0.mjs';
8
- export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-BWpm-Jf0.mjs';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-ClPGMp-z.mjs';
10
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-ClPGMp-z.mjs';
1
+ import { S as Schemas, c as components } from './_spec-DdWB8z1Z.mjs';
2
+ import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-D6hau3d4.mjs';
3
+ export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-D6hau3d4.mjs';
4
+ import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-CkgTW4cC.mjs';
5
+ export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, l as CompanySalarySummary, C as CustomFieldDefinition, m as CustomFieldOption, n as CustomFieldType, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, P as PublicBoard, q as PublicBoardAds, r as PublicBoardAnalytics, s as PublicBoardFeatures, t as PublicBoardJobForm, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, B as SkillLocationsIndex, S as SkillSalaryDetail, D as TitleLocationSalary, E as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CkgTW4cC.mjs';
6
+ export { B as BoardSeo } from './seo-CJSwd_ss.mjs';
7
+ import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-Dq0TTcRf.mjs';
8
+ export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-Dq0TTcRf.mjs';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DopIQsKV.mjs';
10
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-DopIQsKV.mjs';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -20,7 +20,7 @@ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts,
20
20
  * `unknown_error` is SDK-synthesized when a response carries no parseable
21
21
  * envelope.
22
22
  */
23
- declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
23
+ declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "talent_list_not_found", "sourced_candidate_not_found", "sourced_convert_unavailable", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
24
24
  /**
25
25
  * The known code set plus open string — new codes ship additively within v1,
26
26
  * so exhaustive narrowing is intentionally impossible.
@@ -143,7 +143,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
143
143
  * constant because the package is platform-neutral and cannot read
144
144
  * package.json at runtime.
145
145
  */
146
- declare const SDK_VERSION = "4.13.0";
146
+ declare const SDK_VERSION = "4.15.0";
147
147
 
148
148
  type SavedJob = Schemas['SavedJob'];
149
149
  type SavedJobsListQuery = {
@@ -177,6 +177,52 @@ type RecommendedTalentListQuery = {
177
177
  /** 1–100. */
178
178
  limit?: number;
179
179
  };
180
+ type TalentListFilters = {
181
+ q?: string;
182
+ skill?: string;
183
+ jobSearchStatus?: 'actively_looking' | 'open_to_offers' | 'not_looking';
184
+ languages?: string[];
185
+ openToRelocate?: boolean;
186
+ place?: string;
187
+ sort?: 'relevance' | 'newest';
188
+ seniority?: string;
189
+ permitCountry?: string;
190
+ interestedRole?: string;
191
+ };
192
+ type TalentList = {
193
+ id: string;
194
+ object: 'talent_list';
195
+ name: string;
196
+ filters: TalentListFilters;
197
+ jobId: string | null;
198
+ createdBy: string;
199
+ createdAt: number;
200
+ updatedAt: number;
201
+ };
202
+ type CreateTalentListBody = {
203
+ name: string;
204
+ filters?: TalentListFilters;
205
+ job?: string;
206
+ };
207
+ type UpdateTalentListBody = {
208
+ name?: string;
209
+ filters?: TalentListFilters;
210
+ job?: string | null;
211
+ };
212
+ type SourcedCandidate = {
213
+ id: string;
214
+ object: 'sourced_candidate';
215
+ candidate: Schemas['TalentDirectoryEntry'];
216
+ sourcedAt: number;
217
+ sourcedBy: string;
218
+ };
219
+ type AddSourcedCandidateBody = {
220
+ job: string;
221
+ candidateBoardUserId: string;
222
+ };
223
+ type ConvertSourcedCandidateBody = {
224
+ stage: string;
225
+ };
180
226
  type SaveJobBody = Schemas['SaveJobBody'];
181
227
  /** The authenticated user's lean candidate profile singleton. */
182
228
  type CandidateProfile = Schemas['CandidateProfile'];
@@ -545,6 +591,12 @@ type ConsumeMagicLinkBody = Schemas['BoardAuthConsumeMagicLinkBody'];
545
591
  type OAuthProvider = 'google' | 'linkedin';
546
592
  type OAuthAuthorizationQuery = {
547
593
  returnTo?: string;
594
+ /**
595
+ * Role profile to create when the handshake signs up a NEW user; defaults
596
+ * to `candidate`. Pass `employer` from an employer sign-up surface — the
597
+ * role is fixed at authorize time and cannot be changed on the callback.
598
+ */
599
+ role?: 'candidate' | 'employer';
548
600
  };
549
601
  type OAuthAuthorizationUrl = Schemas['BoardAuthOAuthAuthorizationUrl'];
550
602
  type OAuthExchangeBody = Schemas['BoardAuthOAuthExchangeBody'];
@@ -628,6 +680,16 @@ type TalentDirectoryQuery = {
628
680
  * `cursor`. Pair with the response `count` to page in parallel.
629
681
  */
630
682
  offset?: number;
683
+ jobSearchStatus?: 'actively_looking' | 'open_to_offers' | 'not_looking';
684
+ /** Comma-separated language names. */
685
+ languages?: string;
686
+ openToRelocate?: 'true' | 'false';
687
+ /** English source place slug. No-op until place ids ship. */
688
+ place?: string;
689
+ sort?: 'relevance' | 'newest';
690
+ seniority?: string;
691
+ permitCountry?: string;
692
+ interestedRole?: string;
631
693
  };
632
694
  type TalentDirectoryListEnvelope = ListEnvelope<TalentDirectoryEntry>;
633
695
 
@@ -859,6 +921,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
859
921
  gtmId: string | null;
860
922
  metaPixelId: string | null;
861
923
  linkedInPartnerId: string | null;
924
+ linkedInConversionSignUpId: string | null;
925
+ linkedInConversionLoginId: string | null;
926
+ linkedInConversionApplyClickId: string | null;
927
+ linkedInConversionApplySubmitId: string | null;
928
+ linkedInConversionJobAlertSubscribeId: string | null;
862
929
  cookieConsentRequired: boolean;
863
930
  };
864
931
  ads: {
@@ -1484,6 +1551,21 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1484
1551
  }>;
1485
1552
  logout(body?: LogoutBody, options?: FetchOptions): Promise<void>;
1486
1553
  verifyEmail(body: VerifyEmailBody, options?: FetchOptions): Promise<void>;
1554
+ verifyWorkEmail(body: ConfirmWorkEmailBody, options?: FetchOptions): Promise<{
1555
+ id: string;
1556
+ object: "company_membership";
1557
+ status: "approved" | "pending_work_email" | "awaiting_admin" | "rejected";
1558
+ role: string;
1559
+ workEmail: string | null;
1560
+ workEmailVerifiedAt: string | null;
1561
+ company: {
1562
+ id: string;
1563
+ name: string;
1564
+ slug: string | null;
1565
+ website: string | null;
1566
+ logoUrl: string | null;
1567
+ };
1568
+ }>;
1487
1569
  verifyEmailWithCode(body: {
1488
1570
  code: string;
1489
1571
  }, options?: FetchOptions): Promise<void>;
@@ -2174,6 +2256,28 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2174
2256
  candidate: components["schemas"]["TalentDirectoryEntry"];
2175
2257
  }>>;
2176
2258
  };
2259
+ talentLists: {
2260
+ list(slug: string, options?: FetchOptions): Promise<ListEnvelope<TalentList>>;
2261
+ create(slug: string, body: CreateTalentListBody, options?: FetchOptions): Promise<TalentList>;
2262
+ update(slug: string, listId: string, body: UpdateTalentListBody, options?: FetchOptions): Promise<TalentList>;
2263
+ remove(slug: string, listId: string, options?: FetchOptions): Promise<void>;
2264
+ };
2265
+ sourcedCandidates: {
2266
+ list(slug: string, query: {
2267
+ job: string;
2268
+ }, options?: FetchOptions): Promise<ListEnvelope<SourcedCandidate>>;
2269
+ add(slug: string, body: AddSourcedCandidateBody, options?: FetchOptions): Promise<{
2270
+ id: string;
2271
+ object: "sourced_candidate";
2272
+ created: boolean;
2273
+ }>;
2274
+ remove(slug: string, sourcedId: string, options?: FetchOptions): Promise<void>;
2275
+ convert(slug: string, sourcedId: string, body: ConvertSourcedCandidateBody, options?: FetchOptions): Promise<{
2276
+ id: string;
2277
+ object: "application";
2278
+ created: boolean;
2279
+ }>;
2280
+ };
2177
2281
  applicants: {
2178
2282
  list(slug: string, query: EmployerPipelineQuery, options?: FetchOptions): Promise<{
2179
2283
  object: "employer_pipeline";
@@ -3355,4 +3459,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3355
3459
  };
3356
3460
  type BoardSdk = ReturnType<typeof createBoardClient>;
3357
3461
 
3358
- export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, 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, JobCardListEnvelope, JobCardSearchEnvelope, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
3462
+ export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, 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, JobCardListEnvelope, JobCardSearchEnvelope, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-mFq9K67X.js';
2
- import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-DSLK6Cch.js';
3
- export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-DSLK6Cch.js';
4
- import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-Po58Sn65.js';
5
- export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, l as CompanySalarySummary, C as CustomFieldDefinition, m as CustomFieldOption, n as CustomFieldType, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, P as PublicBoard, q as PublicBoardAds, r as PublicBoardAnalytics, s as PublicBoardFeatures, t as PublicBoardJobForm, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, B as SkillLocationsIndex, S as SkillSalaryDetail, D as TitleLocationSalary, E as TitleLocationsIndex, T as TitleSalaryDetail } from './board-Po58Sn65.js';
6
- export { B as BoardSeo } from './seo-CMNJMZcT.js';
7
- import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-hZ3Kezhg.js';
8
- export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-hZ3Kezhg.js';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-BJF7uypj.js';
10
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-BJF7uypj.js';
1
+ import { S as Schemas, c as components } from './_spec-DdWB8z1Z.js';
2
+ import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-CZOec95V.js';
3
+ export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, M as MarketSuggestion, R as REFRESH_TOKEN_KEY, f as SearchSuggestType, g as SuggestResult, h as SuggestionItem, T as TermSuggestion } from './search-CZOec95V.js';
4
+ import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-Bpnqn4Rg.js';
5
+ export { a as CompanyCategorySalary, j as CompanyMarket, k as CompanyMarketRef, b as CompanySalary, l as CompanySalarySummary, C as CustomFieldDefinition, m as CustomFieldOption, n as CustomFieldType, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, P as PublicBoard, q as PublicBoardAds, r as PublicBoardAnalytics, s as PublicBoardFeatures, t as PublicBoardJobForm, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, B as SkillLocationsIndex, S as SkillSalaryDetail, D as TitleLocationSalary, E as TitleLocationsIndex, T as TitleSalaryDetail } from './board-Bpnqn4Rg.js';
6
+ export { B as BoardSeo } from './seo-C1hFa0-v.js';
7
+ import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, a as JobsListQuery, b as JobCardListEnvelope, c as JobsSearchBody, d as JobCardSearchEnvelope, e as JobsSimilarQuery, f as SearchEnvelope } from './jobs-CExc4QdI.js';
8
+ export { g as CustomFieldValue, C as CustomFieldValues, h as EducationRequirement, i as JobCatalogPagination, j as JobCompany, J as JobSort, O as OfficeLocation, k as OffsetPagination, P as PublicJob, l as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-CExc4QdI.js';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-B7xorPBw.js';
10
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-B7xorPBw.js';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -20,7 +20,7 @@ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts,
20
20
  * `unknown_error` is SDK-synthesized when a response carries no parseable
21
21
  * envelope.
22
22
  */
23
- declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
23
+ declare const BOARD_API_ERROR_CODES: readonly ["internal_error", "validation_bad_request", "validation_payload_too_large", "rate_limited", "rate_limit_unavailable", "search_unavailable", "too_many_filter_values", "pagination_invalid_cursor", "pagination_offset_too_large", "auth_unauthenticated", "auth_forbidden", "plan_upgrade_required", "unknown_error", "boards_not_found", "board_page_not_found", "board_auth_email_taken", "board_auth_invalid_credentials", "board_auth_invalid_token", "board_auth_registration_disabled", "board_auth_token_expired", "invalid_current_password", "no_password", "same_email", "email_taken", "invalid_token", "board_password_required", "board_password_invalid", "jobs_not_found", "jobs_invalid_filter", "categories_not_found", "skills_not_found", "places_not_found", "companies_not_found", "company_markets_not_found", "company_salary_not_found", "company_category_salary_not_found", "salaries_title_not_found", "salaries_skill_not_found", "salaries_location_not_found", "salaries_title_location_not_found", "salaries_skill_location_not_found", "blog_post_not_found", "blog_author_not_found", "blog_tag_not_found", "talent_not_found", "talent_directory_not_found", "talent_directory_restricted", "job_recommendations_not_found", "recommended_talent_not_found", "job_alert_not_found", "job_alerts_disabled", "candidate_alert_limit_reached", "candidate_alert_not_found", "candidate_entry_not_found", "candidate_handle_taken", "candidate_job_not_found", "candidate_notification_preference_paused", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "applications_country_not_allowed", "applications_guest_not_allowed", "applications_job_not_found", "applications_not_found", "applications_resume_invalid_file", "applications_unprocessable", "messaging_application_not_found", "messaging_application_not_linked", "messaging_blocked", "messaging_cannot_block_self", "messaging_cold_rule", "messaging_conversation_not_found", "messaging_disabled", "messaging_edit_window_expired", "messaging_message_deleted", "messaging_message_not_found", "messaging_not_author", "messaging_not_participant", "messaging_not_permitted", "messaging_not_recipient", "messaging_rate_limited", "messaging_recipient_not_found", "messaging_recipient_not_open", "messaging_unsend_window_expired", "employer_applicant_not_found", "employer_ats_unprocessable", "employer_checkout_failed", "employer_company_exists", "employer_company_name_taken", "employer_company_not_found", "employer_job_not_found", "employer_job_slug_taken", "employer_jobs_quota_exceeded", "employer_not_member", "employer_payment_required", "employer_pipeline_stage_not_found", "employer_member_not_found", "employer_invite_not_found", "not_company_admin", "not_company_member", "company_deletion_disabled", "last_admin", "already_member", "already_invited", "invalid_email", "invite_email_mismatch", "candidate_role", "job_not_published", "talent_list_not_found", "sourced_candidate_not_found", "sourced_convert_unavailable", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "talent_access_unavailable", "company_required", "already_on_plan", "talent_access_required", "messaging_talent_access_required", "stripe_not_connected", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
24
24
  /**
25
25
  * The known code set plus open string — new codes ship additively within v1,
26
26
  * so exhaustive narrowing is intentionally impossible.
@@ -143,7 +143,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
143
143
  * constant because the package is platform-neutral and cannot read
144
144
  * package.json at runtime.
145
145
  */
146
- declare const SDK_VERSION = "4.13.0";
146
+ declare const SDK_VERSION = "4.15.0";
147
147
 
148
148
  type SavedJob = Schemas['SavedJob'];
149
149
  type SavedJobsListQuery = {
@@ -177,6 +177,52 @@ type RecommendedTalentListQuery = {
177
177
  /** 1–100. */
178
178
  limit?: number;
179
179
  };
180
+ type TalentListFilters = {
181
+ q?: string;
182
+ skill?: string;
183
+ jobSearchStatus?: 'actively_looking' | 'open_to_offers' | 'not_looking';
184
+ languages?: string[];
185
+ openToRelocate?: boolean;
186
+ place?: string;
187
+ sort?: 'relevance' | 'newest';
188
+ seniority?: string;
189
+ permitCountry?: string;
190
+ interestedRole?: string;
191
+ };
192
+ type TalentList = {
193
+ id: string;
194
+ object: 'talent_list';
195
+ name: string;
196
+ filters: TalentListFilters;
197
+ jobId: string | null;
198
+ createdBy: string;
199
+ createdAt: number;
200
+ updatedAt: number;
201
+ };
202
+ type CreateTalentListBody = {
203
+ name: string;
204
+ filters?: TalentListFilters;
205
+ job?: string;
206
+ };
207
+ type UpdateTalentListBody = {
208
+ name?: string;
209
+ filters?: TalentListFilters;
210
+ job?: string | null;
211
+ };
212
+ type SourcedCandidate = {
213
+ id: string;
214
+ object: 'sourced_candidate';
215
+ candidate: Schemas['TalentDirectoryEntry'];
216
+ sourcedAt: number;
217
+ sourcedBy: string;
218
+ };
219
+ type AddSourcedCandidateBody = {
220
+ job: string;
221
+ candidateBoardUserId: string;
222
+ };
223
+ type ConvertSourcedCandidateBody = {
224
+ stage: string;
225
+ };
180
226
  type SaveJobBody = Schemas['SaveJobBody'];
181
227
  /** The authenticated user's lean candidate profile singleton. */
182
228
  type CandidateProfile = Schemas['CandidateProfile'];
@@ -545,6 +591,12 @@ type ConsumeMagicLinkBody = Schemas['BoardAuthConsumeMagicLinkBody'];
545
591
  type OAuthProvider = 'google' | 'linkedin';
546
592
  type OAuthAuthorizationQuery = {
547
593
  returnTo?: string;
594
+ /**
595
+ * Role profile to create when the handshake signs up a NEW user; defaults
596
+ * to `candidate`. Pass `employer` from an employer sign-up surface — the
597
+ * role is fixed at authorize time and cannot be changed on the callback.
598
+ */
599
+ role?: 'candidate' | 'employer';
548
600
  };
549
601
  type OAuthAuthorizationUrl = Schemas['BoardAuthOAuthAuthorizationUrl'];
550
602
  type OAuthExchangeBody = Schemas['BoardAuthOAuthExchangeBody'];
@@ -628,6 +680,16 @@ type TalentDirectoryQuery = {
628
680
  * `cursor`. Pair with the response `count` to page in parallel.
629
681
  */
630
682
  offset?: number;
683
+ jobSearchStatus?: 'actively_looking' | 'open_to_offers' | 'not_looking';
684
+ /** Comma-separated language names. */
685
+ languages?: string;
686
+ openToRelocate?: 'true' | 'false';
687
+ /** English source place slug. No-op until place ids ship. */
688
+ place?: string;
689
+ sort?: 'relevance' | 'newest';
690
+ seniority?: string;
691
+ permitCountry?: string;
692
+ interestedRole?: string;
631
693
  };
632
694
  type TalentDirectoryListEnvelope = ListEnvelope<TalentDirectoryEntry>;
633
695
 
@@ -859,6 +921,11 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
859
921
  gtmId: string | null;
860
922
  metaPixelId: string | null;
861
923
  linkedInPartnerId: string | null;
924
+ linkedInConversionSignUpId: string | null;
925
+ linkedInConversionLoginId: string | null;
926
+ linkedInConversionApplyClickId: string | null;
927
+ linkedInConversionApplySubmitId: string | null;
928
+ linkedInConversionJobAlertSubscribeId: string | null;
862
929
  cookieConsentRequired: boolean;
863
930
  };
864
931
  ads: {
@@ -1484,6 +1551,21 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1484
1551
  }>;
1485
1552
  logout(body?: LogoutBody, options?: FetchOptions): Promise<void>;
1486
1553
  verifyEmail(body: VerifyEmailBody, options?: FetchOptions): Promise<void>;
1554
+ verifyWorkEmail(body: ConfirmWorkEmailBody, options?: FetchOptions): Promise<{
1555
+ id: string;
1556
+ object: "company_membership";
1557
+ status: "approved" | "pending_work_email" | "awaiting_admin" | "rejected";
1558
+ role: string;
1559
+ workEmail: string | null;
1560
+ workEmailVerifiedAt: string | null;
1561
+ company: {
1562
+ id: string;
1563
+ name: string;
1564
+ slug: string | null;
1565
+ website: string | null;
1566
+ logoUrl: string | null;
1567
+ };
1568
+ }>;
1487
1569
  verifyEmailWithCode(body: {
1488
1570
  code: string;
1489
1571
  }, options?: FetchOptions): Promise<void>;
@@ -2174,6 +2256,28 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
2174
2256
  candidate: components["schemas"]["TalentDirectoryEntry"];
2175
2257
  }>>;
2176
2258
  };
2259
+ talentLists: {
2260
+ list(slug: string, options?: FetchOptions): Promise<ListEnvelope<TalentList>>;
2261
+ create(slug: string, body: CreateTalentListBody, options?: FetchOptions): Promise<TalentList>;
2262
+ update(slug: string, listId: string, body: UpdateTalentListBody, options?: FetchOptions): Promise<TalentList>;
2263
+ remove(slug: string, listId: string, options?: FetchOptions): Promise<void>;
2264
+ };
2265
+ sourcedCandidates: {
2266
+ list(slug: string, query: {
2267
+ job: string;
2268
+ }, options?: FetchOptions): Promise<ListEnvelope<SourcedCandidate>>;
2269
+ add(slug: string, body: AddSourcedCandidateBody, options?: FetchOptions): Promise<{
2270
+ id: string;
2271
+ object: "sourced_candidate";
2272
+ created: boolean;
2273
+ }>;
2274
+ remove(slug: string, sourcedId: string, options?: FetchOptions): Promise<void>;
2275
+ convert(slug: string, sourcedId: string, body: ConvertSourcedCandidateBody, options?: FetchOptions): Promise<{
2276
+ id: string;
2277
+ object: "application";
2278
+ created: boolean;
2279
+ }>;
2280
+ };
2177
2281
  applicants: {
2178
2282
  list(slug: string, query: EmployerPipelineQuery, options?: FetchOptions): Promise<{
2179
2283
  object: "employer_pipeline";
@@ -3355,4 +3459,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3355
3459
  };
3356
3460
  type BoardSdk = ReturnType<typeof createBoardClient>;
3357
3461
 
3358
- export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, 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, JobCardListEnvelope, JobCardSearchEnvelope, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
3462
+ export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, Awaitable, BOARD_API_ERROR_CODES, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, type EditMessageBody, type EmbedJobsQuery, type EmployerApplicant, type EmployerBillingOption, type EmployerCheckout, type EmployerCheckoutBody, type EmployerCompany, type EmployerCompanySearchQuery, type EmployerJob, type EmployerJobStat, type EmployerJobStatsPoint, type EmployerJobStatsTimeseriesQuery, type EmployerJobSummary, type EmployerJobsListQuery, type EmployerPipeline, type EmployerPipelineQuery, type EmployerPipelineStage, type EmployerProfileStats, type EmployerProfileViewsPoint, type EmployerProfileViewsTimeseriesQuery, EmploymentType, FetchOptions, type FindExistingConversationQuery, type ForgotPasswordBody, type HandleAvailability, 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, JobCardListEnvelope, JobCardSearchEnvelope, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthExchangeBody, type OAuthProvider, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PublicPlace, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SourcedCandidate, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentProfile, type TalentUnlock, type TalentUnlockBody, type TaxonomyGeo, type TaxonomyListQuery, type TaxonomyResolution, type ThreadMessagesQuery, type UnreadCount, type UnsubscribeBody, type UpdateApplicationFactsBody, type UpdateCandidateProfileBody, type UpdateCompanyMemberRoleBody, type UpdateEducationBody, type UpdateEmployerCompanyBody, type UpdateEmployerJobBody, type UpdateExperienceBody, type UpdateLanguagesBody, type UpdateNotificationPreferenceBody, type UpdatePasswordBody, type UpdatePipelineStageBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isUnauthorized, isValidationError, lastOwnMessageId, paginate, resolveApplyAction, resolveApplyDecision };
package/dist/index.js CHANGED
@@ -173,6 +173,10 @@ var BOARD_API_ERROR_CODES = [
173
173
  // Employer recommended talent — a draft job carries no vectors,
174
174
  // so it cannot be matched at all. Distinct from `jobs_not_published`.
175
175
  "job_not_published",
176
+ // Employer talent lists + sourced convert
177
+ "talent_list_not_found",
178
+ "sourced_candidate_not_found",
179
+ "sourced_convert_unavailable",
176
180
  // Candidate job-access paywall
177
181
  "paywall_already_active",
178
182
  "paywall_disabled",
@@ -343,7 +347,7 @@ async function clearSession(storage) {
343
347
  }
344
348
 
345
349
  // src/version.ts
346
- var SDK_VERSION = "4.13.0";
350
+ var SDK_VERSION = "4.15.0";
347
351
 
348
352
  // src/client.ts
349
353
  function isRawBody(body) {
@@ -557,6 +561,23 @@ function authNamespace(client) {
557
561
  body
558
562
  });
559
563
  },
564
+ /**
565
+ * Confirm an employer work-email verification token (from the link in the
566
+ * work-email verification email) and promote the pending company claim —
567
+ * approved on domain match, otherwise `awaiting_admin`. No session needed:
568
+ * the single-use token IS the authorization, and it alone identifies the
569
+ * membership. Returns the membership in its new state.
570
+ *
571
+ * @example
572
+ * const membership = await board.auth.verifyWorkEmail({ token });
573
+ */
574
+ verifyWorkEmail(body, options) {
575
+ return client.fetch("/auth/verify-work-email", {
576
+ ...options,
577
+ method: "POST",
578
+ body
579
+ });
580
+ },
560
581
  /**
561
582
  * Verify the signed-in board user's email with the 6-digit code from the
562
583
  * verification email (requires the bearer). Resolves void (204); an
@@ -1701,6 +1722,10 @@ function meNamespace(client) {
1701
1722
  * required, the token IS the authorization. Returns the membership in
1702
1723
  * its new state.
1703
1724
  *
1725
+ * @deprecated Use `board.auth.verifyWorkEmail({ token })`. `slug` is
1726
+ * ignored by the server — the token alone identifies the membership,
1727
+ * and a caller following an email link has no slug to supply.
1728
+ *
1704
1729
  * @example
1705
1730
  * await board.me.companies.workEmail.confirm('acme', { token });
1706
1731
  */
@@ -1985,6 +2010,125 @@ function meNamespace(client) {
1985
2010
  );
1986
2011
  }
1987
2012
  },
2013
+ /**
2014
+ * Company-owned saved predicates over the talent directory.
2015
+ * Approved members share the same lists. Optional `job` binds a list
2016
+ * to one company job; pass `job: null` on update to unbind.
2017
+ */
2018
+ talentLists: {
2019
+ /**
2020
+ * List talent lists for a company I am an approved member of.
2021
+ *
2022
+ * @example
2023
+ * const { data } = await board.me.companies.talentLists.list('acme');
2024
+ */
2025
+ list(slug, options) {
2026
+ return client.fetch(
2027
+ `/me/companies/${encodeURIComponent(slug)}/talent-lists`,
2028
+ options
2029
+ );
2030
+ },
2031
+ /**
2032
+ * Create a talent list. `filters` reuse the frozen `/talent` query.
2033
+ *
2034
+ * @example
2035
+ * const list = await board.me.companies.talentLists.create('acme', {
2036
+ * name: 'Berlin React',
2037
+ * filters: { skill: 'react', sort: 'newest' },
2038
+ * job: jobId,
2039
+ * });
2040
+ */
2041
+ create(slug, body, options) {
2042
+ return client.fetch(
2043
+ `/me/companies/${encodeURIComponent(slug)}/talent-lists`,
2044
+ { ...options, method: "POST", body }
2045
+ );
2046
+ },
2047
+ /**
2048
+ * Merge-patch a talent list. Pass `job: null` to unbind it from a job.
2049
+ */
2050
+ update(slug, listId, body, options) {
2051
+ return client.fetch(
2052
+ `/me/companies/${encodeURIComponent(slug)}/talent-lists/${encodeURIComponent(listId)}`,
2053
+ { ...options, method: "PATCH", body }
2054
+ );
2055
+ },
2056
+ /** Delete a talent list. Sourced membership is unaffected. */
2057
+ remove(slug, listId, options) {
2058
+ return client.fetch(
2059
+ `/me/companies/${encodeURIComponent(slug)}/talent-lists/${encodeURIComponent(listId)}`,
2060
+ { ...options, method: "DELETE" }
2061
+ );
2062
+ }
2063
+ },
2064
+ /**
2065
+ * Per-job sourced membership — the unstaged kanban rail.
2066
+ * Saving a candidate always writes here. Convert-on-drop creates a
2067
+ * pipeline application with source `sourced` (hidden from the
2068
+ * candidate until they apply themselves).
2069
+ */
2070
+ sourcedCandidates: {
2071
+ /**
2072
+ * List sourced candidates still on the rail for a job. Anyone who
2073
+ * already has a pipeline application for that job is omitted.
2074
+ *
2075
+ * @example
2076
+ * const { data } = await board.me.companies.sourcedCandidates.list(
2077
+ * 'acme',
2078
+ * { job: jobId },
2079
+ * );
2080
+ */
2081
+ list(slug, query, options) {
2082
+ return client.fetch(
2083
+ `/me/companies/${encodeURIComponent(slug)}/sourced-candidates`,
2084
+ { ...options, query }
2085
+ );
2086
+ },
2087
+ /**
2088
+ * Save a candidate onto a job's sourced rail. Idempotent: a second
2089
+ * add for the same pair returns `created: false`.
2090
+ *
2091
+ * @example
2092
+ * const saved = await board.me.companies.sourcedCandidates.add(
2093
+ * 'acme',
2094
+ * { job: jobId, candidateBoardUserId: candidateId },
2095
+ * );
2096
+ */
2097
+ add(slug, body, options) {
2098
+ return client.fetch(`/me/companies/${encodeURIComponent(slug)}/sourced-candidates`, {
2099
+ ...options,
2100
+ method: "POST",
2101
+ body
2102
+ });
2103
+ },
2104
+ /** Remove a sourced membership. Does not touch pipeline applications. */
2105
+ remove(slug, sourcedId, options) {
2106
+ return client.fetch(
2107
+ `/me/companies/${encodeURIComponent(slug)}/sourced-candidates/${encodeURIComponent(sourcedId)}`,
2108
+ { ...options, method: "DELETE" }
2109
+ );
2110
+ },
2111
+ /**
2112
+ * Convert a sourced candidate into the job pipeline. Writes
2113
+ * `source: 'sourced'` so the candidate does not see the application
2114
+ * until they apply themselves. `stage: 'applied'` aliases to
2115
+ * `review`. A board without a native pipeline raises
2116
+ * `sourced_convert_unavailable` (409).
2117
+ *
2118
+ * @example
2119
+ * const result = await board.me.companies.sourcedCandidates.convert(
2120
+ * 'acme',
2121
+ * sourcedId,
2122
+ * { stage: 'review' },
2123
+ * );
2124
+ */
2125
+ convert(slug, sourcedId, body, options) {
2126
+ return client.fetch(
2127
+ `/me/companies/${encodeURIComponent(slug)}/sourced-candidates/${encodeURIComponent(sourcedId)}/convert`,
2128
+ { ...options, method: "POST", body }
2129
+ );
2130
+ }
2131
+ },
1988
2132
  /**
1989
2133
  * The applicant pipeline (ATS) for a company I am an approved member of
1990
2134
  * Reads return the full pipeline (job