@cavuno/board 4.6.0 → 4.8.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 (39) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/{_spec-Dm-1AieO.d.mts → _spec-DePC7a05.d.mts} +48 -3
  3. package/dist/{_spec-Dm-1AieO.d.ts → _spec-DePC7a05.d.ts} +48 -3
  4. package/dist/{blog-C5g0Tt8w.d.mts → blog-DbFr4VPW.d.mts} +1 -1
  5. package/dist/{blog-BvyEW4bf.d.ts → blog-ummlt6Uq.d.ts} +1 -1
  6. package/dist/{board-CemD1yEl.d.mts → board-DxTMBgIf.d.mts} +2 -2
  7. package/dist/{board-CW3qMKdu.d.ts → board-zWyHbyi4.d.ts} +2 -2
  8. package/dist/{breadcrumbs-Bgmklae3.d.mts → breadcrumbs-P4qh0zML.d.mts} +2 -2
  9. package/dist/{breadcrumbs-BRHiWWSf.d.ts → breadcrumbs-kbmspmfk.d.ts} +2 -2
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/{chunk-VWGF4I5C.mjs → chunk-6454IFHS.mjs} +1 -6
  12. package/dist/{chunk-GC5QWN7Y.mjs → chunk-IWWPHFK2.mjs} +4 -0
  13. package/dist/filters.d.mts +2 -2
  14. package/dist/filters.d.ts +2 -2
  15. package/dist/format.d.mts +4 -4
  16. package/dist/format.d.ts +4 -4
  17. package/dist/format.mjs +1 -1
  18. package/dist/index.d.mts +73 -14
  19. package/dist/index.d.ts +73 -14
  20. package/dist/index.js +77 -1
  21. package/dist/index.mjs +74 -2
  22. package/dist/{jobs-B0phTsdB.d.mts → jobs-DTLDt57G.d.mts} +1 -1
  23. package/dist/{jobs-f-n4_rrz.d.ts → jobs-twt5TO9l.d.ts} +1 -1
  24. package/dist/{search-C1LHejWz.d.ts → search-CHD6peIl.d.ts} +1 -1
  25. package/dist/{search-DVg1L-3s.d.mts → search-f2UNlTfv.d.mts} +1 -1
  26. package/dist/seo.d.mts +6 -6
  27. package/dist/seo.d.ts +6 -6
  28. package/dist/seo.js +1 -6
  29. package/dist/seo.mjs +1 -1
  30. package/dist/server.d.mts +5 -5
  31. package/dist/server.d.ts +5 -5
  32. package/dist/server.mjs +1 -1
  33. package/dist/sitemap.d.mts +5 -5
  34. package/dist/sitemap.d.ts +5 -5
  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/cavuno-board-account/SKILL.md +4 -1
  39. package/skills/manifest.json +1 -1
package/dist/index.d.mts CHANGED
@@ -1,12 +1,12 @@
1
- import { S as Schemas, c as components } from './_spec-Dm-1AieO.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-DVg1L-3s.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-DVg1L-3s.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-CemD1yEl.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 PublicBoardAnalytics, r as PublicBoardFeatures, s as PublicCompany, t as PublicCompanyDetail, u as SalaryCompany, v as SalaryLocation, w as SalarySkill, x as SalaryTitle, y as SkillLocationSalary, z as SkillLocationsIndex, S as SkillSalaryDetail, A as TitleLocationSalary, B as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CemD1yEl.mjs';
6
- 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-B0phTsdB.mjs';
7
- 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-B0phTsdB.mjs';
8
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-C5g0Tt8w.mjs';
9
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-C5g0Tt8w.mjs';
1
+ import { S as Schemas, c as components } from './_spec-DePC7a05.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-f2UNlTfv.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-f2UNlTfv.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-DxTMBgIf.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 PublicBoardAnalytics, r as PublicBoardFeatures, s as PublicCompany, t as PublicCompanyDetail, u as SalaryCompany, v as SalaryLocation, w as SalarySkill, x as SalaryTitle, y as SkillLocationSalary, z as SkillLocationsIndex, S as SkillSalaryDetail, A as TitleLocationSalary, B as TitleLocationsIndex, T as TitleSalaryDetail } from './board-DxTMBgIf.mjs';
6
+ 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-DTLDt57G.mjs';
7
+ 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-DTLDt57G.mjs';
8
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DbFr4VPW.mjs';
9
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-DbFr4VPW.mjs';
10
10
 
11
11
  /**
12
12
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -19,7 +19,7 @@ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts,
19
19
  * `unknown_error` is SDK-synthesized when a response carries no parseable
20
20
  * envelope.
21
21
  */
22
- 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_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", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "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", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
22
+ 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_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", "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", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
23
23
  /**
24
24
  * The known code set plus open string — new codes ship additively within v1,
25
25
  * so exhaustive narrowing is intentionally impossible.
@@ -142,7 +142,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
142
142
  * constant because the package is platform-neutral and cannot read
143
143
  * package.json at runtime.
144
144
  */
145
- declare const SDK_VERSION = "4.6.0";
145
+ declare const SDK_VERSION = "4.8.0";
146
146
 
147
147
  type SavedJob = Schemas['SavedJob'];
148
148
  type SavedJobsListQuery = {
@@ -158,6 +158,24 @@ type RecommendedJobsListQuery = {
158
158
  /** 1–100. */
159
159
  limit?: number;
160
160
  };
161
+ /**
162
+ * Employer→candidate recommendation wrapper — embeds the same
163
+ * `talent_directory_entry` card the public directory emits.
164
+ *
165
+ * The wrapper exists so typed `reasons` and a coarse `strength` band can land
166
+ * later as MINOR additions rather than breaks. It will never carry a rank,
167
+ * score, band, or ranker identity: order is the ranking. This is a sourcing
168
+ * surface, not a screening one.
169
+ */
170
+ type RecommendedTalent = Schemas['RecommendedTalent'];
171
+ type RecommendedTalentListQuery = {
172
+ /** Required. The job to source candidates for; it must belong to `:slug`. */
173
+ job: string;
174
+ /** Opaque position cursor from a previous page's `nextCursor`. */
175
+ cursor?: string;
176
+ /** 1–100. */
177
+ limit?: number;
178
+ };
161
179
  type SaveJobBody = Schemas['SaveJobBody'];
162
180
  /** The authenticated user's lean candidate profile singleton. */
163
181
  type CandidateProfile = Schemas['CandidateProfile'];
@@ -500,6 +518,22 @@ type MarketingConsent = Schemas['MarketingConsent'];
500
518
  */
501
519
  type RedirectResolution = Schemas['RedirectResolution'];
502
520
 
521
+ /** A short-lived opaque hand-off to the dedicated Apply gateway. */
522
+ type ApplyIntent = Schemas['ApplyIntent'];
523
+ /** Duplicate-click session key; it must not contain profile or other PII. */
524
+ type CreateApplyIntentBody = Schemas['CreateApplyIntentBody'];
525
+
526
+ /** Server-side request that prepares a browser-direct country approval. */
527
+ type CreateApplyApprovalBody = Schemas['CreateApplyApprovalBody'];
528
+ /** Generic plan; `not_required` deliberately does not disclose why. */
529
+ type ApplyApprovalPlan = Schemas['ApplyApprovalPlan'];
530
+ /** Cookieless `/r/:opaque` response returned only to the bound board origin. */
531
+ interface ApplyApprovalReceipt {
532
+ object: 'apply_approval_receipt';
533
+ id: string;
534
+ expiresAt: string;
535
+ }
536
+
503
537
  /**
504
538
  * A candidate's public profile — header (name, headline, location, bio, avatar,
505
539
  * job-search status) plus their experiences, education, skills, and languages.
@@ -802,6 +836,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
802
836
  links: components["schemas"]["PublicJobLinks"];
803
837
  description: string | null;
804
838
  applicationUrl: string | null;
839
+ isSponsored: boolean;
840
+ applyAction: "native" | "external_direct" | "gateway_external" | "gateway_native";
805
841
  remotePermits: {
806
842
  type: string;
807
843
  value: string;
@@ -897,6 +933,21 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
897
933
  companyName: string | null;
898
934
  } | null;
899
935
  }>;
936
+ createApplyIntent(jobSlug: string, body: CreateApplyIntentBody, options?: FetchOptions): Promise<{
937
+ id: string;
938
+ object: "apply_intent";
939
+ gatewayUrl: string;
940
+ expiresAt: string;
941
+ }>;
942
+ prepareApplyApproval(jobSlug: string, body: CreateApplyApprovalBody, options?: FetchOptions): Promise<{
943
+ object: "apply_approval_plan";
944
+ kind: "not_required";
945
+ } | {
946
+ object: "apply_approval_plan";
947
+ kind: "approval_required";
948
+ approvalUrl: string;
949
+ expiresAt: string;
950
+ }>;
900
951
  uploadApplicationResume(jobSlug: string, file: Blob, opts?: {
901
952
  applicationId?: string;
902
953
  }, options?: FetchOptions): Promise<{
@@ -1381,6 +1432,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1381
1432
  handle: string | null;
1382
1433
  headline: string | null;
1383
1434
  location: string | null;
1435
+ countryCode: string | null;
1384
1436
  profileVisibility: "hidden" | "logged_in_only" | "public";
1385
1437
  jobSearchStatus: "actively_looking" | "open_to_offers" | "not_looking";
1386
1438
  jobSearchStatusVisibleTo: "everyone" | "employers_only";
@@ -1395,6 +1447,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1395
1447
  handle: string | null;
1396
1448
  headline: string | null;
1397
1449
  location: string | null;
1450
+ countryCode: string | null;
1398
1451
  profileVisibility: "hidden" | "logged_in_only" | "public";
1399
1452
  jobSearchStatus: "actively_looking" | "open_to_offers" | "not_looking";
1400
1453
  jobSearchStatusVisibleTo: "everyone" | "employers_only";
@@ -1525,13 +1578,13 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1525
1578
  notificationPreferences: {
1526
1579
  retrieve(options?: FetchOptions): Promise<ListEnvelope<{
1527
1580
  object: "notification_preference";
1528
- channel: "messageEmails" | "applicationEmails";
1581
+ channel: "messageEmails" | "applicationEmails" | "recommendedJobEmails";
1529
1582
  subscribed: boolean;
1530
1583
  updatedAt: number | null;
1531
1584
  }>>;
1532
1585
  update(body: UpdateNotificationPreferenceBody, options?: FetchOptions): Promise<ListEnvelope<{
1533
1586
  object: "notification_preference";
1534
- channel: "messageEmails" | "applicationEmails";
1587
+ channel: "messageEmails" | "applicationEmails" | "recommendedJobEmails";
1535
1588
  subscribed: boolean;
1536
1589
  updatedAt: number | null;
1537
1590
  }>>;
@@ -1988,6 +2041,12 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1988
2041
  views: number;
1989
2042
  }>>;
1990
2043
  };
2044
+ recommendedTalent: {
2045
+ list(slug: string, query: RecommendedTalentListQuery, options?: FetchOptions): Promise<ListEnvelope<{
2046
+ object: "recommended_talent";
2047
+ candidate: components["schemas"]["TalentDirectoryEntry"];
2048
+ }>>;
2049
+ };
1991
2050
  applicants: {
1992
2051
  list(slug: string, query: EmployerPipelineQuery, options?: FetchOptions): Promise<{
1993
2052
  object: "employer_pipeline";
@@ -3128,4 +3187,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3128
3187
  };
3129
3188
  type BoardSdk = ReturnType<typeof createBoardClient>;
3130
3189
 
3131
- 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 ApplyBody, 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 BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, 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 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 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 TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, 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 };
3190
+ 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 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 BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, 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 TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, 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 };
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import { S as Schemas, c as components } from './_spec-Dm-1AieO.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-C1LHejWz.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-C1LHejWz.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-CW3qMKdu.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 PublicBoardAnalytics, r as PublicBoardFeatures, s as PublicCompany, t as PublicCompanyDetail, u as SalaryCompany, v as SalaryLocation, w as SalarySkill, x as SalaryTitle, y as SkillLocationSalary, z as SkillLocationsIndex, S as SkillSalaryDetail, A as TitleLocationSalary, B as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CW3qMKdu.js';
6
- 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-f-n4_rrz.js';
7
- 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-f-n4_rrz.js';
8
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-BvyEW4bf.js';
9
- export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-BvyEW4bf.js';
1
+ import { S as Schemas, c as components } from './_spec-DePC7a05.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-CHD6peIl.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-CHD6peIl.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-zWyHbyi4.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 PublicBoardAnalytics, r as PublicBoardFeatures, s as PublicCompany, t as PublicCompanyDetail, u as SalaryCompany, v as SalaryLocation, w as SalarySkill, x as SalaryTitle, y as SkillLocationSalary, z as SkillLocationsIndex, S as SkillSalaryDetail, A as TitleLocationSalary, B as TitleLocationsIndex, T as TitleSalaryDetail } from './board-zWyHbyi4.js';
6
+ 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-twt5TO9l.js';
7
+ 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-twt5TO9l.js';
8
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-ummlt6Uq.js';
9
+ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts, f as PublicBlogAuthor, g as PublicBlogPost, P as PublicBlogPostSummary, h as PublicBlogTag } from './blog-ummlt6Uq.js';
10
10
 
11
11
  /**
12
12
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -19,7 +19,7 @@ export { B as BlogAuthorEmbed, d as BlogTagEmbed, e as PublicBlogAdjacentPosts,
19
19
  * `unknown_error` is SDK-synthesized when a response carries no parseable
20
20
  * envelope.
21
21
  */
22
- 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_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", "resume_invalid_file", "resume_upload_forbidden", "applications_external_apply_only", "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", "paywall_already_active", "paywall_disabled", "paywall_invalid_checkout_session", "paywall_no_candidate_profile", "paywall_no_recurring_subscription", "paywall_offer_not_found", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
22
+ 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_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", "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", "job_posting_logo_lookup_unavailable", "job_posting_logo_not_found", "job_posting_rejected"];
23
23
  /**
24
24
  * The known code set plus open string — new codes ship additively within v1,
25
25
  * so exhaustive narrowing is intentionally impossible.
@@ -142,7 +142,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
142
142
  * constant because the package is platform-neutral and cannot read
143
143
  * package.json at runtime.
144
144
  */
145
- declare const SDK_VERSION = "4.6.0";
145
+ declare const SDK_VERSION = "4.8.0";
146
146
 
147
147
  type SavedJob = Schemas['SavedJob'];
148
148
  type SavedJobsListQuery = {
@@ -158,6 +158,24 @@ type RecommendedJobsListQuery = {
158
158
  /** 1–100. */
159
159
  limit?: number;
160
160
  };
161
+ /**
162
+ * Employer→candidate recommendation wrapper — embeds the same
163
+ * `talent_directory_entry` card the public directory emits.
164
+ *
165
+ * The wrapper exists so typed `reasons` and a coarse `strength` band can land
166
+ * later as MINOR additions rather than breaks. It will never carry a rank,
167
+ * score, band, or ranker identity: order is the ranking. This is a sourcing
168
+ * surface, not a screening one.
169
+ */
170
+ type RecommendedTalent = Schemas['RecommendedTalent'];
171
+ type RecommendedTalentListQuery = {
172
+ /** Required. The job to source candidates for; it must belong to `:slug`. */
173
+ job: string;
174
+ /** Opaque position cursor from a previous page's `nextCursor`. */
175
+ cursor?: string;
176
+ /** 1–100. */
177
+ limit?: number;
178
+ };
161
179
  type SaveJobBody = Schemas['SaveJobBody'];
162
180
  /** The authenticated user's lean candidate profile singleton. */
163
181
  type CandidateProfile = Schemas['CandidateProfile'];
@@ -500,6 +518,22 @@ type MarketingConsent = Schemas['MarketingConsent'];
500
518
  */
501
519
  type RedirectResolution = Schemas['RedirectResolution'];
502
520
 
521
+ /** A short-lived opaque hand-off to the dedicated Apply gateway. */
522
+ type ApplyIntent = Schemas['ApplyIntent'];
523
+ /** Duplicate-click session key; it must not contain profile or other PII. */
524
+ type CreateApplyIntentBody = Schemas['CreateApplyIntentBody'];
525
+
526
+ /** Server-side request that prepares a browser-direct country approval. */
527
+ type CreateApplyApprovalBody = Schemas['CreateApplyApprovalBody'];
528
+ /** Generic plan; `not_required` deliberately does not disclose why. */
529
+ type ApplyApprovalPlan = Schemas['ApplyApprovalPlan'];
530
+ /** Cookieless `/r/:opaque` response returned only to the bound board origin. */
531
+ interface ApplyApprovalReceipt {
532
+ object: 'apply_approval_receipt';
533
+ id: string;
534
+ expiresAt: string;
535
+ }
536
+
503
537
  /**
504
538
  * A candidate's public profile — header (name, headline, location, bio, avatar,
505
539
  * job-search status) plus their experiences, education, skills, and languages.
@@ -802,6 +836,8 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
802
836
  links: components["schemas"]["PublicJobLinks"];
803
837
  description: string | null;
804
838
  applicationUrl: string | null;
839
+ isSponsored: boolean;
840
+ applyAction: "native" | "external_direct" | "gateway_external" | "gateway_native";
805
841
  remotePermits: {
806
842
  type: string;
807
843
  value: string;
@@ -897,6 +933,21 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
897
933
  companyName: string | null;
898
934
  } | null;
899
935
  }>;
936
+ createApplyIntent(jobSlug: string, body: CreateApplyIntentBody, options?: FetchOptions): Promise<{
937
+ id: string;
938
+ object: "apply_intent";
939
+ gatewayUrl: string;
940
+ expiresAt: string;
941
+ }>;
942
+ prepareApplyApproval(jobSlug: string, body: CreateApplyApprovalBody, options?: FetchOptions): Promise<{
943
+ object: "apply_approval_plan";
944
+ kind: "not_required";
945
+ } | {
946
+ object: "apply_approval_plan";
947
+ kind: "approval_required";
948
+ approvalUrl: string;
949
+ expiresAt: string;
950
+ }>;
900
951
  uploadApplicationResume(jobSlug: string, file: Blob, opts?: {
901
952
  applicationId?: string;
902
953
  }, options?: FetchOptions): Promise<{
@@ -1381,6 +1432,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1381
1432
  handle: string | null;
1382
1433
  headline: string | null;
1383
1434
  location: string | null;
1435
+ countryCode: string | null;
1384
1436
  profileVisibility: "hidden" | "logged_in_only" | "public";
1385
1437
  jobSearchStatus: "actively_looking" | "open_to_offers" | "not_looking";
1386
1438
  jobSearchStatusVisibleTo: "everyone" | "employers_only";
@@ -1395,6 +1447,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1395
1447
  handle: string | null;
1396
1448
  headline: string | null;
1397
1449
  location: string | null;
1450
+ countryCode: string | null;
1398
1451
  profileVisibility: "hidden" | "logged_in_only" | "public";
1399
1452
  jobSearchStatus: "actively_looking" | "open_to_offers" | "not_looking";
1400
1453
  jobSearchStatusVisibleTo: "everyone" | "employers_only";
@@ -1525,13 +1578,13 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1525
1578
  notificationPreferences: {
1526
1579
  retrieve(options?: FetchOptions): Promise<ListEnvelope<{
1527
1580
  object: "notification_preference";
1528
- channel: "messageEmails" | "applicationEmails";
1581
+ channel: "messageEmails" | "applicationEmails" | "recommendedJobEmails";
1529
1582
  subscribed: boolean;
1530
1583
  updatedAt: number | null;
1531
1584
  }>>;
1532
1585
  update(body: UpdateNotificationPreferenceBody, options?: FetchOptions): Promise<ListEnvelope<{
1533
1586
  object: "notification_preference";
1534
- channel: "messageEmails" | "applicationEmails";
1587
+ channel: "messageEmails" | "applicationEmails" | "recommendedJobEmails";
1535
1588
  subscribed: boolean;
1536
1589
  updatedAt: number | null;
1537
1590
  }>>;
@@ -1988,6 +2041,12 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1988
2041
  views: number;
1989
2042
  }>>;
1990
2043
  };
2044
+ recommendedTalent: {
2045
+ list(slug: string, query: RecommendedTalentListQuery, options?: FetchOptions): Promise<ListEnvelope<{
2046
+ object: "recommended_talent";
2047
+ candidate: components["schemas"]["TalentDirectoryEntry"];
2048
+ }>>;
2049
+ };
1991
2050
  applicants: {
1992
2051
  list(slug: string, query: EmployerPipelineQuery, options?: FetchOptions): Promise<{
1993
2052
  object: "employer_pipeline";
@@ -3128,4 +3187,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3128
3187
  };
3129
3188
  type BoardSdk = ReturnType<typeof createBoardClient>;
3130
3189
 
3131
- 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 ApplyBody, 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 BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, 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 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 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 TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, 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 };
3190
+ 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 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 BoardSeo, type BoardUser, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, 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 TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentProfile, 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 };
package/dist/index.js CHANGED
@@ -117,6 +117,7 @@ var BOARD_API_ERROR_CODES = [
117
117
  "resume_upload_forbidden",
118
118
  // Applications
119
119
  "applications_external_apply_only",
120
+ "applications_country_not_allowed",
120
121
  "applications_guest_not_allowed",
121
122
  "applications_job_not_found",
122
123
  "applications_not_found",
@@ -165,6 +166,9 @@ var BOARD_API_ERROR_CODES = [
165
166
  "invalid_email",
166
167
  "invite_email_mismatch",
167
168
  "candidate_role",
169
+ // Employer recommended talent — a draft job carries no vectors,
170
+ // so it cannot be matched at all. Distinct from `jobs_not_published`.
171
+ "job_not_published",
168
172
  // Candidate job-access paywall
169
173
  "paywall_already_active",
170
174
  "paywall_disabled",
@@ -328,7 +332,7 @@ async function clearSession(storage) {
328
332
  }
329
333
 
330
334
  // src/version.ts
331
- var SDK_VERSION = "4.6.0";
335
+ var SDK_VERSION = "4.8.0";
332
336
 
333
337
  // src/client.ts
334
338
  function isRawBody(body) {
@@ -1042,6 +1046,9 @@ function jobsNamespace(client) {
1042
1046
  },
1043
1047
  /**
1044
1048
  * Retrieve one published job by slug.
1049
+ * Compatible starters pass `x-cavuno-board-capabilities:
1050
+ * apply-gateway-v1` in `options.headers` to opt in to the country-gated
1051
+ * Apply shape. The SDK never sends that capability globally.
1045
1052
  *
1046
1053
  * @example
1047
1054
  * const job = await board.jobs.retrieve('senior-chef');
@@ -1103,6 +1110,43 @@ function jobsNamespace(client) {
1103
1110
  { ...options, method: "POST", body: body ?? {} }
1104
1111
  );
1105
1112
  },
1113
+ /**
1114
+ * Create an opaque external-apply intent. A compatible starter then makes
1115
+ * its own board-local POST return a browser 303 to `gatewayUrl`; do not
1116
+ * render this value as a crawlable link. Pass
1117
+ * `x-cavuno-board-capabilities: apply-gateway-v1` in `options.headers`;
1118
+ * legacy callers receive 404.
1119
+ */
1120
+ createApplyIntent(jobSlug, body, options) {
1121
+ return client.fetch(
1122
+ `/jobs/${encodeURIComponent(jobSlug)}/apply-intents`,
1123
+ { ...options, method: "POST", body }
1124
+ );
1125
+ },
1126
+ /**
1127
+ * Prepare country approval for a signed-in candidate's native Apply.
1128
+ * When required, the candidate browser POSTs directly to `approvalUrl`
1129
+ * with no body or credentials, then supplies the returned opaque receipt
1130
+ * and the same server-owned session key to `apply`. Pass
1131
+ * `x-cavuno-board-capabilities: apply-gateway-v1` in `options.headers` for
1132
+ * both preparation and final Apply.
1133
+ *
1134
+ * @example
1135
+ * const plan = await board.jobs.prepareApplyApproval(
1136
+ * 'senior-chef',
1137
+ * { sessionKey },
1138
+ * { headers: {
1139
+ * authorization: `Bearer ${accessToken}`,
1140
+ * 'x-cavuno-board-capabilities': 'apply-gateway-v1',
1141
+ * } },
1142
+ * );
1143
+ */
1144
+ prepareApplyApproval(jobSlug, body, options) {
1145
+ return client.fetch(
1146
+ `/jobs/${encodeURIComponent(jobSlug)}/apply-approvals`,
1147
+ { ...options, method: "POST", body }
1148
+ );
1149
+ },
1106
1150
  /**
1107
1151
  * Upload + attach a resume to an application (multipart). Signed-in
1108
1152
  * candidates target their own application for the job; a guest passes the
@@ -1875,6 +1919,38 @@ function meNamespace(client) {
1875
1919
  );
1876
1920
  }
1877
1921
  },
1922
+ /**
1923
+ * Candidates who fit a job this company posted and who have NOT applied
1924
+ * to it, best match first. A sourcing surface, not a
1925
+ * screening one: applicants are excluded because they belong to the
1926
+ * pipeline above, order IS the ranking, and no rank, score, band, or
1927
+ * ranker identity is exposed — `reasons` and a coarse `strength` band
1928
+ * are reserved so they can land later as minor additions.
1929
+ *
1930
+ * Each item embeds the same `talent_directory_entry` card the public
1931
+ * directory emits, so existing rendering works unchanged. Only
1932
+ * candidates who chose to be discoverable appear, and one who set their
1933
+ * job-search status to `not_looking` never does. The list is a bounded
1934
+ * top slice rather than everyone who matched, so expect it to be short.
1935
+ * An empty `data` is not a relevance signal, and it can arrive
1936
+ * mid-pagination — follow `hasMore`/`nextCursor` rather than stopping
1937
+ * at the first empty page. A draft job raises
1938
+ * `job_not_published` rather than returning an empty list.
1939
+ *
1940
+ * @example
1941
+ * const { data } = await board.me.companies.recommendedTalent.list(
1942
+ * 'acme',
1943
+ * { job: jobId, limit: 20 },
1944
+ * );
1945
+ */
1946
+ recommendedTalent: {
1947
+ list(slug, query, options) {
1948
+ return client.fetch(
1949
+ `/me/companies/${encodeURIComponent(slug)}/recommended-talent`,
1950
+ { ...options, query }
1951
+ );
1952
+ }
1953
+ },
1878
1954
  /**
1879
1955
  * The applicant pipeline (ATS) for a company I am an approved member of
1880
1956
  * Reads return the full pipeline (job
package/dist/index.mjs CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  isValidationError,
16
16
  resolveStorage,
17
17
  writeSession
18
- } from "./chunk-GC5QWN7Y.mjs";
18
+ } from "./chunk-IWWPHFK2.mjs";
19
19
  import {
20
20
  paginate
21
21
  } from "./chunk-DLSO6XXY.mjs";
@@ -39,7 +39,7 @@ function toSearchParams(query) {
39
39
  }
40
40
 
41
41
  // src/version.ts
42
- var SDK_VERSION = "4.6.0";
42
+ var SDK_VERSION = "4.8.0";
43
43
 
44
44
  // src/client.ts
45
45
  function isRawBody(body) {
@@ -753,6 +753,9 @@ function jobsNamespace(client) {
753
753
  },
754
754
  /**
755
755
  * Retrieve one published job by slug.
756
+ * Compatible starters pass `x-cavuno-board-capabilities:
757
+ * apply-gateway-v1` in `options.headers` to opt in to the country-gated
758
+ * Apply shape. The SDK never sends that capability globally.
756
759
  *
757
760
  * @example
758
761
  * const job = await board.jobs.retrieve('senior-chef');
@@ -814,6 +817,43 @@ function jobsNamespace(client) {
814
817
  { ...options, method: "POST", body: body ?? {} }
815
818
  );
816
819
  },
820
+ /**
821
+ * Create an opaque external-apply intent. A compatible starter then makes
822
+ * its own board-local POST return a browser 303 to `gatewayUrl`; do not
823
+ * render this value as a crawlable link. Pass
824
+ * `x-cavuno-board-capabilities: apply-gateway-v1` in `options.headers`;
825
+ * legacy callers receive 404.
826
+ */
827
+ createApplyIntent(jobSlug, body, options) {
828
+ return client.fetch(
829
+ `/jobs/${encodeURIComponent(jobSlug)}/apply-intents`,
830
+ { ...options, method: "POST", body }
831
+ );
832
+ },
833
+ /**
834
+ * Prepare country approval for a signed-in candidate's native Apply.
835
+ * When required, the candidate browser POSTs directly to `approvalUrl`
836
+ * with no body or credentials, then supplies the returned opaque receipt
837
+ * and the same server-owned session key to `apply`. Pass
838
+ * `x-cavuno-board-capabilities: apply-gateway-v1` in `options.headers` for
839
+ * both preparation and final Apply.
840
+ *
841
+ * @example
842
+ * const plan = await board.jobs.prepareApplyApproval(
843
+ * 'senior-chef',
844
+ * { sessionKey },
845
+ * { headers: {
846
+ * authorization: `Bearer ${accessToken}`,
847
+ * 'x-cavuno-board-capabilities': 'apply-gateway-v1',
848
+ * } },
849
+ * );
850
+ */
851
+ prepareApplyApproval(jobSlug, body, options) {
852
+ return client.fetch(
853
+ `/jobs/${encodeURIComponent(jobSlug)}/apply-approvals`,
854
+ { ...options, method: "POST", body }
855
+ );
856
+ },
817
857
  /**
818
858
  * Upload + attach a resume to an application (multipart). Signed-in
819
859
  * candidates target their own application for the job; a guest passes the
@@ -1586,6 +1626,38 @@ function meNamespace(client) {
1586
1626
  );
1587
1627
  }
1588
1628
  },
1629
+ /**
1630
+ * Candidates who fit a job this company posted and who have NOT applied
1631
+ * to it, best match first. A sourcing surface, not a
1632
+ * screening one: applicants are excluded because they belong to the
1633
+ * pipeline above, order IS the ranking, and no rank, score, band, or
1634
+ * ranker identity is exposed — `reasons` and a coarse `strength` band
1635
+ * are reserved so they can land later as minor additions.
1636
+ *
1637
+ * Each item embeds the same `talent_directory_entry` card the public
1638
+ * directory emits, so existing rendering works unchanged. Only
1639
+ * candidates who chose to be discoverable appear, and one who set their
1640
+ * job-search status to `not_looking` never does. The list is a bounded
1641
+ * top slice rather than everyone who matched, so expect it to be short.
1642
+ * An empty `data` is not a relevance signal, and it can arrive
1643
+ * mid-pagination — follow `hasMore`/`nextCursor` rather than stopping
1644
+ * at the first empty page. A draft job raises
1645
+ * `job_not_published` rather than returning an empty list.
1646
+ *
1647
+ * @example
1648
+ * const { data } = await board.me.companies.recommendedTalent.list(
1649
+ * 'acme',
1650
+ * { job: jobId, limit: 20 },
1651
+ * );
1652
+ */
1653
+ recommendedTalent: {
1654
+ list(slug, query, options) {
1655
+ return client.fetch(
1656
+ `/me/companies/${encodeURIComponent(slug)}/recommended-talent`,
1657
+ { ...options, query }
1658
+ );
1659
+ }
1660
+ },
1589
1661
  /**
1590
1662
  * The applicant pipeline (ATS) for a company I am an approved member of
1591
1663
  * Reads return the full pipeline (job