@cavuno/board 4.45.0 → 4.48.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 (60) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/{_spec-CdNZDaaR.d.mts → _spec-Fw9b79TI.d.mts} +54 -4
  3. package/dist/{_spec-CdNZDaaR.d.ts → _spec-Fw9b79TI.d.ts} +54 -4
  4. package/dist/bin.mjs +1 -0
  5. package/dist/{blog-ZvLJ6w1Q.d.ts → blog-DldIXX6n.d.ts} +1 -1
  6. package/dist/{blog-uV51b4Cg.d.mts → blog-Dlyky5Eo.d.mts} +1 -1
  7. package/dist/{board-3JU14eF3.d.ts → board-B1Ueww2w.d.ts} +2 -2
  8. package/dist/{board-CJw-MJpf.d.mts → board-DkwbMZdt.d.mts} +2 -2
  9. package/dist/{breadcrumbs-CXvdv6Ry.d.ts → breadcrumbs-Bj8SieZi.d.mts} +5 -3
  10. package/dist/{breadcrumbs-BY1UMCbL.d.mts → breadcrumbs-CzFiddAt.d.ts} +5 -3
  11. package/dist/browser/cavuno-board.global.min.js +1 -1
  12. package/dist/{chunk-5KCWHENV.mjs → chunk-2KD2CWFL.mjs} +1 -1
  13. package/dist/{chunk-XXQCESMU.mjs → chunk-JFDWTTOQ.mjs} +5 -0
  14. package/dist/{chunk-KDFKVWTZ.mjs → chunk-JTFUOGWE.mjs} +3 -3
  15. package/dist/doctor.js +1 -0
  16. package/dist/doctor.mjs +1 -0
  17. package/dist/filters.d.mts +2 -2
  18. package/dist/filters.d.ts +2 -2
  19. package/dist/format.d.mts +4 -4
  20. package/dist/format.d.ts +4 -4
  21. package/dist/format.js +3 -2
  22. package/dist/format.mjs +2 -2
  23. package/dist/go.js +1 -0
  24. package/dist/go.mjs +1 -1
  25. package/dist/index.d.mts +73 -13
  26. package/dist/index.d.ts +73 -13
  27. package/dist/index.js +57 -23
  28. package/dist/index.mjs +57 -23
  29. package/dist/{jobs-D9ERWWda.d.mts → jobs-oSTStcbC.d.mts} +1 -1
  30. package/dist/{jobs-C7UvN_dW.d.ts → jobs-rnatMRvm.d.ts} +1 -1
  31. package/dist/paths.d.mts +7 -1
  32. package/dist/paths.d.ts +7 -1
  33. package/dist/paths.js +5 -0
  34. package/dist/paths.mjs +3 -1
  35. package/dist/route-contract.js +1 -0
  36. package/dist/route-contract.mjs +2 -2
  37. package/dist/{search-D0TFnn1x.d.ts → search-CKvtGE6t.d.ts} +1 -1
  38. package/dist/{search-BMSNK85o.d.mts → search-uiAE7AFt.d.mts} +1 -1
  39. package/dist/{seo-CYmVKHsu.d.ts → seo-C2WvBFEi.d.ts} +1 -1
  40. package/dist/{seo-C3WmgifR.d.mts → seo-Cz0544dX.d.mts} +1 -1
  41. package/dist/seo-files.d.mts +2 -2
  42. package/dist/seo-files.d.ts +2 -2
  43. package/dist/seo.d.mts +6 -6
  44. package/dist/seo.d.ts +6 -6
  45. package/dist/seo.js +3 -2
  46. package/dist/seo.mjs +2 -2
  47. package/dist/server.d.mts +6 -6
  48. package/dist/server.d.ts +6 -6
  49. package/dist/sitemap.d.mts +6 -6
  50. package/dist/sitemap.d.ts +6 -6
  51. package/dist/sitemap.js +1 -0
  52. package/dist/sitemap.mjs +1 -1
  53. package/dist/suggest.d.mts +2 -2
  54. package/dist/suggest.d.ts +2 -2
  55. package/dist/well-known.js +1 -0
  56. package/dist/well-known.mjs +2 -2
  57. package/package.json +1 -1
  58. package/skills/cavuno-board-job-alerts/SKILL.md +29 -1
  59. package/skills/cavuno-board-talent-access/SKILL.md +2 -0
  60. 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-CdNZDaaR.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-BMSNK85o.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-BMSNK85o.mjs';
4
- import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-D9ERWWda.mjs';
5
- export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, p as JobCustomEmploymentType, J as JobSort, q as OfficeLocation, r as OffsetPagination, P as PublicJob, s as PublicJobCard, t as RelatedSearch, u as RemotePermit, v as RemoteTimezone, w as ResolvedJobCollectionField, x as StorefrontPagination } from './jobs-D9ERWWda.mjs';
6
- import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-CJw-MJpf.mjs';
7
- export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, b as CompanySalary, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-CJw-MJpf.mjs';
8
- export { B as BoardSeo } from './seo-C3WmgifR.mjs';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-uV51b4Cg.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-uV51b4Cg.mjs';
1
+ import { S as Schemas, c as components } from './_spec-Fw9b79TI.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-uiAE7AFt.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-uiAE7AFt.mjs';
4
+ import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-oSTStcbC.mjs';
5
+ export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, p as JobCustomEmploymentType, J as JobSort, q as OfficeLocation, r as OffsetPagination, P as PublicJob, s as PublicJobCard, t as RelatedSearch, u as RemotePermit, v as RemoteTimezone, w as ResolvedJobCollectionField, x as StorefrontPagination } from './jobs-oSTStcbC.mjs';
6
+ import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-DkwbMZdt.mjs';
7
+ export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, b as CompanySalary, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-DkwbMZdt.mjs';
8
+ export { B as BoardSeo } from './seo-Cz0544dX.mjs';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-Dlyky5Eo.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-Dlyky5Eo.mjs';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -202,7 +202,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
202
202
  * constant because the package is platform-neutral and cannot read
203
203
  * package.json at runtime.
204
204
  */
205
- declare const SDK_VERSION = "4.45.0";
205
+ declare const SDK_VERSION = "4.48.0";
206
206
 
207
207
  type SavedJob = Schemas['SavedJob'];
208
208
  type SavedJobsListQuery = {
@@ -980,7 +980,13 @@ interface ApplyApprovalReceipt {
980
980
  * candidate scoped it to employers only.
981
981
  */
982
982
  type TalentProfile = Schemas['TalentProfile'];
983
- /** A candidate card in the public talent directory. */
983
+ /**
984
+ * A candidate card in the public talent directory. On cards and profiles,
985
+ * `lastActive` is a coarse bucket (`today`, `this_week`, `this_month`,
986
+ * `last_3_months`, `over_3_months`) returned only to a signed-in employer on
987
+ * the board, for candidates who are actively looking or open to offers;
988
+ * `null` for everyone else.
989
+ */
984
990
  type TalentDirectoryEntry = Schemas['TalentDirectoryEntry'];
985
991
  type TalentDirectoryQuery = {
986
992
  cursor?: string;
@@ -1088,6 +1094,13 @@ type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
1088
1094
  * `seniorityLevels`/`salary*` are stored but do not filter delivery.
1089
1095
  */
1090
1096
  type JobAlertFiltersInput = {
1097
+ /**
1098
+ * Free-text search keywords (at most 200 characters after trimming). Send
1099
+ * the query a search page ran. On `updatePreference`, `null` clears the
1100
+ * keywords and omitting `query` keeps them while `jobFunctions` are
1101
+ * unchanged. Not accepted on a job-page (similar-job) alert.
1102
+ */
1103
+ query?: string | null;
1091
1104
  jobFunctions?: string[];
1092
1105
  seniorityLevels?: string[];
1093
1106
  remoteOptions?: JobAlertRemoteOption[];
@@ -1119,6 +1132,14 @@ type JobAlertManageState = Schemas['PublicJobAlertManageState'];
1119
1132
  type JobAlertPreference = JobAlertManageState['preferences'][number];
1120
1133
  /** The stored filter criteria surfaced on a manage-page preference. */
1121
1134
  type JobAlertStoredFilters = JobAlertPreference['filters'];
1135
+ /**
1136
+ * How an alert's digest is filled: `similar_job` (jobs like the job it was
1137
+ * subscribed from), `search` (a board search for its keywords) or `filters`
1138
+ * (jobs matching its stored filters exactly). Read-only.
1139
+ */
1140
+ type JobAlertKind = JobAlertPreference['kind'];
1141
+ /** A similar-job alert's anchor job (`{ id, slug, title }`), or `null`. */
1142
+ type JobAlertAnchorJob = JobAlertPreference['anchorJob'];
1122
1143
  /** Query for `jobAlerts.manage` — the HMAC manage token from the digest email. */
1123
1144
  type JobAlertManageQuery = {
1124
1145
  subscription: string;
@@ -1501,6 +1522,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1501
1522
  placeHierarchy: {
1502
1523
  slug: string;
1503
1524
  name: string;
1525
+ canonicalSlug: string;
1504
1526
  }[];
1505
1527
  customFieldValues: {
1506
1528
  [key: string]: string | string[] | boolean | number;
@@ -3040,7 +3062,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3040
3062
  label: string | null;
3041
3063
  frequency: "weekly";
3042
3064
  isActive: boolean;
3065
+ kind: "similar_job" | "search" | "filters";
3066
+ anchorJob: {
3067
+ id: string;
3068
+ slug: string | null;
3069
+ title: string;
3070
+ } | null;
3043
3071
  filters: {
3072
+ query: string | null;
3044
3073
  jobFunctions: string[];
3045
3074
  seniorityLevels: string[];
3046
3075
  remoteOptions: string[];
@@ -3057,7 +3086,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3057
3086
  label: string | null;
3058
3087
  frequency: "weekly";
3059
3088
  isActive: boolean;
3089
+ kind: "similar_job" | "search" | "filters";
3090
+ anchorJob: {
3091
+ id: string;
3092
+ slug: string | null;
3093
+ title: string;
3094
+ } | null;
3060
3095
  filters: {
3096
+ query: string | null;
3061
3097
  jobFunctions: string[];
3062
3098
  seniorityLevels: string[];
3063
3099
  remoteOptions: string[];
@@ -3074,7 +3110,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3074
3110
  label: string | null;
3075
3111
  frequency: "weekly";
3076
3112
  isActive: boolean;
3113
+ kind: "similar_job" | "search" | "filters";
3114
+ anchorJob: {
3115
+ id: string;
3116
+ slug: string | null;
3117
+ title: string;
3118
+ } | null;
3077
3119
  filters: {
3120
+ query: string | null;
3078
3121
  jobFunctions: string[];
3079
3122
  seniorityLevels: string[];
3080
3123
  remoteOptions: string[];
@@ -3091,7 +3134,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3091
3134
  label: string | null;
3092
3135
  frequency: "weekly";
3093
3136
  isActive: boolean;
3137
+ kind: "similar_job" | "search" | "filters";
3138
+ anchorJob: {
3139
+ id: string;
3140
+ slug: string | null;
3141
+ title: string;
3142
+ } | null;
3094
3143
  filters: {
3144
+ query: string | null;
3095
3145
  jobFunctions: string[];
3096
3146
  seniorityLevels: string[];
3097
3147
  remoteOptions: string[];
@@ -3502,7 +3552,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3502
3552
  id: string;
3503
3553
  parentId: string | null;
3504
3554
  slug: string | null;
3555
+ canonicalSlug: string | null;
3505
3556
  name: string;
3557
+ displayName: string;
3506
3558
  placeType: string;
3507
3559
  countryCode: string | null;
3508
3560
  regionCode: string | null;
@@ -3580,7 +3632,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3580
3632
  label: string | null;
3581
3633
  frequency: "weekly";
3582
3634
  isActive: boolean;
3635
+ kind: "similar_job" | "search" | "filters";
3636
+ anchorJob: {
3637
+ id: string;
3638
+ slug: string | null;
3639
+ title: string;
3640
+ } | null;
3583
3641
  filters: {
3642
+ query?: string;
3584
3643
  jobFunctions?: string[];
3585
3644
  seniorityLevels?: string[];
3586
3645
  remoteOptions?: string[];
@@ -4183,6 +4242,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
4183
4242
  [key: string]: string | number | boolean | string[];
4184
4243
  };
4185
4244
  objectReferences: components["schemas"]["ResolvedProfileObjectReference"][];
4245
+ lastActive: "today" | "this_week" | "this_month" | "last_3_months" | "over_3_months" | null;
4186
4246
  }>;
4187
4247
  places: {
4188
4248
  list(query?: TalentPlacesQuery, options?: FetchOptions): Promise<TalentPlacesListEnvelope>;
@@ -4219,4 +4279,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
4219
4279
  };
4220
4280
  type BoardSdk = ReturnType<typeof createBoardClient>;
4221
4281
 
4222
- export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type AddTalentListMemberBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, type AudienceAttribution, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BuiltInSignInMethod, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type CategoryListQuery, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMemberInvitePreview, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateAlertBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, 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, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentListMember, type TalentListMembersListEnvelope, type TalentListMembersQuery, type TalentListMembership, type TalentPlace, type TalentPlacesListEnvelope, type TalentPlacesQuery, 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 UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
4282
+ export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type AddTalentListMemberBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, type AudienceAttribution, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BuiltInSignInMethod, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type CategoryListQuery, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMemberInvitePreview, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateAlertBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, 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 JobAlertAnchorJob, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertKind, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentListMember, type TalentListMembersListEnvelope, type TalentListMembersQuery, type TalentListMembership, type TalentPlace, type TalentPlacesListEnvelope, type TalentPlacesQuery, 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 UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { S as Schemas, c as components } from './_spec-CdNZDaaR.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-D0TFnn1x.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-D0TFnn1x.js';
4
- import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-C7UvN_dW.js';
5
- export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, p as JobCustomEmploymentType, J as JobSort, q as OfficeLocation, r as OffsetPagination, P as PublicJob, s as PublicJobCard, t as RelatedSearch, u as RemotePermit, v as RemoteTimezone, w as ResolvedJobCollectionField, x as StorefrontPagination } from './jobs-C7UvN_dW.js';
6
- import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-3JU14eF3.js';
7
- export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, b as CompanySalary, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-3JU14eF3.js';
8
- export { B as BoardSeo } from './seo-CYmVKHsu.js';
9
- import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-ZvLJ6w1Q.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-ZvLJ6w1Q.js';
1
+ import { S as Schemas, c as components } from './_spec-Fw9b79TI.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-CKvtGE6t.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-CKvtGE6t.js';
4
+ import { L as ListEnvelope, R as RemoteOption, E as EmploymentType, S as Seniority, a as CustomFieldFilter, O as ObjectReferenceFilter, b as JobCollectionChoiceQuery, c as JobsListQuery, d as JobCardListEnvelope, e as JobsSearchBody, f as JobCardSearchEnvelope, g as JobsSimilarQuery, h as SearchEnvelope } from './jobs-rnatMRvm.js';
5
+ export { i as CustomFieldValue, C as CustomFieldValues, j as CustomFilterValue, k as EducationRequirement, l as JobCatalogPagination, m as JobCollectionChoiceList, n as JobCollectionFieldDefinition, o as JobCompany, p as JobCustomEmploymentType, J as JobSort, q as OfficeLocation, r as OffsetPagination, P as PublicJob, s as PublicJobCard, t as RelatedSearch, u as RemotePermit, v as RemoteTimezone, w as ResolvedJobCollectionField, x as StorefrontPagination } from './jobs-rnatMRvm.js';
6
+ import { c as CompaniesListQuery, d as CompanyListEnvelope, e as CompaniesSearchBody, f as CompanyJobsListQuery, g as CompanySimilarQuery, h as CompanyMarketsListQuery, i as SalaryDetailQuery } from './board-B1Ueww2w.js';
7
+ export { B as BoardCustomEmploymentType, j as BoardFormBuiltinField, k as BoardFormField, l as BoardFormLayout, m as BoardFormLockReason, n as BoardJobFormField, o as BoardProfileFormField, p as BoardRoleSignIn, q as BoardSignInSsoConnection, a as CompanyCategorySalary, r as CompanyMarket, s as CompanyMarketRef, b as CompanySalary, t as CompanySalarySummary, C as CustomFieldDefinition, u as CustomFieldOption, v as CustomFieldType, L as LocationSalaryDetail, w as LocationSkillsIndex, x as LocationTitlesIndex, P as PublicBoard, y as PublicBoardAds, z as PublicBoardAnalytics, A as PublicBoardFeatures, D as PublicBoardJobForm, E as PublicBoardSignIn, F as PublicCompany, G as PublicCompanyDetail, H as PublicCompanyMembership, I as SalaryCompany, J as SalaryLocation, K as SalarySkill, M as SalaryTitle, N as SkillLocationSalary, O as SkillLocationsIndex, S as SkillSalaryDetail, Q as TitleLocationSalary, R as TitleLocationsIndex, T as TitleSalaryDetail } from './board-B1Ueww2w.js';
8
+ export { B as BoardSeo } from './seo-C2WvBFEi.js';
9
+ import { a as BlogPostsListQuery, b as BlogSimilarQuery, c as BlogSearchBody } from './blog-DldIXX6n.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-DldIXX6n.js';
11
11
 
12
12
  /**
13
13
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -202,7 +202,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
202
202
  * constant because the package is platform-neutral and cannot read
203
203
  * package.json at runtime.
204
204
  */
205
- declare const SDK_VERSION = "4.45.0";
205
+ declare const SDK_VERSION = "4.48.0";
206
206
 
207
207
  type SavedJob = Schemas['SavedJob'];
208
208
  type SavedJobsListQuery = {
@@ -980,7 +980,13 @@ interface ApplyApprovalReceipt {
980
980
  * candidate scoped it to employers only.
981
981
  */
982
982
  type TalentProfile = Schemas['TalentProfile'];
983
- /** A candidate card in the public talent directory. */
983
+ /**
984
+ * A candidate card in the public talent directory. On cards and profiles,
985
+ * `lastActive` is a coarse bucket (`today`, `this_week`, `this_month`,
986
+ * `last_3_months`, `over_3_months`) returned only to a signed-in employer on
987
+ * the board, for candidates who are actively looking or open to offers;
988
+ * `null` for everyone else.
989
+ */
984
990
  type TalentDirectoryEntry = Schemas['TalentDirectoryEntry'];
985
991
  type TalentDirectoryQuery = {
986
992
  cursor?: string;
@@ -1088,6 +1094,13 @@ type JobAlertRemoteOption = 'on_site' | 'hybrid' | 'remote';
1088
1094
  * `seniorityLevels`/`salary*` are stored but do not filter delivery.
1089
1095
  */
1090
1096
  type JobAlertFiltersInput = {
1097
+ /**
1098
+ * Free-text search keywords (at most 200 characters after trimming). Send
1099
+ * the query a search page ran. On `updatePreference`, `null` clears the
1100
+ * keywords and omitting `query` keeps them while `jobFunctions` are
1101
+ * unchanged. Not accepted on a job-page (similar-job) alert.
1102
+ */
1103
+ query?: string | null;
1091
1104
  jobFunctions?: string[];
1092
1105
  seniorityLevels?: string[];
1093
1106
  remoteOptions?: JobAlertRemoteOption[];
@@ -1119,6 +1132,14 @@ type JobAlertManageState = Schemas['PublicJobAlertManageState'];
1119
1132
  type JobAlertPreference = JobAlertManageState['preferences'][number];
1120
1133
  /** The stored filter criteria surfaced on a manage-page preference. */
1121
1134
  type JobAlertStoredFilters = JobAlertPreference['filters'];
1135
+ /**
1136
+ * How an alert's digest is filled: `similar_job` (jobs like the job it was
1137
+ * subscribed from), `search` (a board search for its keywords) or `filters`
1138
+ * (jobs matching its stored filters exactly). Read-only.
1139
+ */
1140
+ type JobAlertKind = JobAlertPreference['kind'];
1141
+ /** A similar-job alert's anchor job (`{ id, slug, title }`), or `null`. */
1142
+ type JobAlertAnchorJob = JobAlertPreference['anchorJob'];
1122
1143
  /** Query for `jobAlerts.manage` — the HMAC manage token from the digest email. */
1123
1144
  type JobAlertManageQuery = {
1124
1145
  subscription: string;
@@ -1501,6 +1522,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
1501
1522
  placeHierarchy: {
1502
1523
  slug: string;
1503
1524
  name: string;
1525
+ canonicalSlug: string;
1504
1526
  }[];
1505
1527
  customFieldValues: {
1506
1528
  [key: string]: string | string[] | boolean | number;
@@ -3040,7 +3062,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3040
3062
  label: string | null;
3041
3063
  frequency: "weekly";
3042
3064
  isActive: boolean;
3065
+ kind: "similar_job" | "search" | "filters";
3066
+ anchorJob: {
3067
+ id: string;
3068
+ slug: string | null;
3069
+ title: string;
3070
+ } | null;
3043
3071
  filters: {
3072
+ query: string | null;
3044
3073
  jobFunctions: string[];
3045
3074
  seniorityLevels: string[];
3046
3075
  remoteOptions: string[];
@@ -3057,7 +3086,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3057
3086
  label: string | null;
3058
3087
  frequency: "weekly";
3059
3088
  isActive: boolean;
3089
+ kind: "similar_job" | "search" | "filters";
3090
+ anchorJob: {
3091
+ id: string;
3092
+ slug: string | null;
3093
+ title: string;
3094
+ } | null;
3060
3095
  filters: {
3096
+ query: string | null;
3061
3097
  jobFunctions: string[];
3062
3098
  seniorityLevels: string[];
3063
3099
  remoteOptions: string[];
@@ -3074,7 +3110,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3074
3110
  label: string | null;
3075
3111
  frequency: "weekly";
3076
3112
  isActive: boolean;
3113
+ kind: "similar_job" | "search" | "filters";
3114
+ anchorJob: {
3115
+ id: string;
3116
+ slug: string | null;
3117
+ title: string;
3118
+ } | null;
3077
3119
  filters: {
3120
+ query: string | null;
3078
3121
  jobFunctions: string[];
3079
3122
  seniorityLevels: string[];
3080
3123
  remoteOptions: string[];
@@ -3091,7 +3134,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3091
3134
  label: string | null;
3092
3135
  frequency: "weekly";
3093
3136
  isActive: boolean;
3137
+ kind: "similar_job" | "search" | "filters";
3138
+ anchorJob: {
3139
+ id: string;
3140
+ slug: string | null;
3141
+ title: string;
3142
+ } | null;
3094
3143
  filters: {
3144
+ query: string | null;
3095
3145
  jobFunctions: string[];
3096
3146
  seniorityLevels: string[];
3097
3147
  remoteOptions: string[];
@@ -3502,7 +3552,9 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3502
3552
  id: string;
3503
3553
  parentId: string | null;
3504
3554
  slug: string | null;
3555
+ canonicalSlug: string | null;
3505
3556
  name: string;
3557
+ displayName: string;
3506
3558
  placeType: string;
3507
3559
  countryCode: string | null;
3508
3560
  regionCode: string | null;
@@ -3580,7 +3632,14 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
3580
3632
  label: string | null;
3581
3633
  frequency: "weekly";
3582
3634
  isActive: boolean;
3635
+ kind: "similar_job" | "search" | "filters";
3636
+ anchorJob: {
3637
+ id: string;
3638
+ slug: string | null;
3639
+ title: string;
3640
+ } | null;
3583
3641
  filters: {
3642
+ query?: string;
3584
3643
  jobFunctions?: string[];
3585
3644
  seniorityLevels?: string[];
3586
3645
  remoteOptions?: string[];
@@ -4183,6 +4242,7 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
4183
4242
  [key: string]: string | number | boolean | string[];
4184
4243
  };
4185
4244
  objectReferences: components["schemas"]["ResolvedProfileObjectReference"][];
4245
+ lastActive: "today" | "this_week" | "this_month" | "last_3_months" | "over_3_months" | null;
4186
4246
  }>;
4187
4247
  places: {
4188
4248
  list(query?: TalentPlacesQuery, options?: FetchOptions): Promise<TalentPlacesListEnvelope>;
@@ -4219,4 +4279,4 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
4219
4279
  };
4220
4280
  type BoardSdk = ReturnType<typeof createBoardClient>;
4221
4281
 
4222
- export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type AddTalentListMemberBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, type AudienceAttribution, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BuiltInSignInMethod, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type CategoryListQuery, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMemberInvitePreview, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateAlertBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, 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, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentListMember, type TalentListMembersListEnvelope, type TalentListMembersQuery, type TalentListMembership, type TalentPlace, type TalentPlacesListEnvelope, type TalentPlacesQuery, 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 UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
4282
+ export { type AcceptCompanyMemberInviteBody, type AccessCheckoutBody, type AccessCheckoutSession, type AccessCheckoutSessionState, type AccessGrant, type AccessPortalBody, type AccessPortalSession, type AddApplicantNoteBody, type AddSourcedCandidateBody, type AddTalentListMemberBody, type Alert, type AlertBody, type Application, type ApplicationsListQuery, type ApplyAction, type ApplyApprovalPlan, type ApplyApprovalReceipt, type ApplyBody, type ApplyDecisionState, type ApplyIntent, type AudienceAttribution, type AvailableSignInMethods, Awaitable, BOARD_API_ERROR_CODES, type BindingStorage, type Block, type BlockStatus, type BlockUserBody, type BlockedUser, BlogPostsListQuery, BlogSearchBody, BlogSimilarQuery, type BoardAccessGrant, BoardApiError, type BoardApiErrorCode, type BoardAuthSession, BoardClient, BoardRequest, type BoardSdk, type BoardSitemapBucketSummary, type BoardSitemapIndex, type BoardUser, type BuiltInSignInMethod, type BulkMoveApplicantsBody, type BulkRejectApplicantsBody, type CandidateAvatar, type CandidateEducation, type CandidateExperience, type CandidateLanguage, type CandidateProfile, type CandidateSkill, type CategoryListQuery, type ClaimableCompany, CompaniesListQuery, CompaniesSearchBody, type CompanyBillingPortalBody, type CompanyBillingPortalSession, CompanyJobsListQuery, CompanyListEnvelope, CompanyMarketsListQuery, type CompanyMember, type CompanyMemberInvite, type CompanyMemberInviteAcceptance, type CompanyMemberInvitePreview, type CompanyMembership, CompanySimilarQuery, type ConfirmEmailChangeBody, type ConfirmWorkEmailBody, type ConsumeMagicLinkBody, type Conversation, type ConversationArchive, type ConversationDetail, type ConversationRef, type ConversationsListQuery, type ConvertSourcedCandidateBody, type CreateAlertBody, type CreateApplyApprovalBody, type CreateApplyIntentBody, type CreateBoardClientOptions, type CreateCompanyBody, type CreateCompanyMemberInviteBody, type CreateEducationBody, type CreateEmployerJobBody, type CreateExperienceBody, type CreateJobPostingInput, type CreatePipelineStageBody, type CreateTalentListBody, CustomFieldFilter, 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 JobAlertAnchorJob, type JobAlertConfirmation, type JobAlertDeletePreferenceInput, type JobAlertFiltersInput, type JobAlertFrequency, type JobAlertKind, type JobAlertManageQuery, type JobAlertManageResult, type JobAlertManageState, type JobAlertManageTokenInput, type JobAlertPreference, type JobAlertRemoteOption, type JobAlertResendResult, type JobAlertStoredFilters, type JobAlertSubscribeInput, type JobAlertSubscription, type JobAlertUpdatePreferenceInput, JobCardListEnvelope, JobCardSearchEnvelope, JobCollectionChoiceQuery, type JobPostingBillingOptions, type JobPostingBillingVerification, type JobPostingLogoResult, type JobPostingPlan, type JobPostingResult, JobsListQuery, JobsSearchBody, JobsSimilarQuery, ListEnvelope, type LocationResolveInput, type LocationSearchQuery, Logger, type LoginBody, type LogoutBody, type MarketingConsent, type MembershipCheckoutBody, type MembershipCheckoutSession, type MembershipCheckoutSessionState, type Message, type ModerationReport, type MoveApplicantStageBody, type NotificationPreference, type OAuthAuthorizationQuery, type OAuthAuthorizationUrl, type OAuthCompletion, type OAuthExchangeBody, type OAuthProvider, ObjectReferenceFilter, type Paginator, type PaywallOffer, type PaywallOfferListEnvelope, type PlacesListQuery, type Plan, type PlanListEnvelope, type PlansListQuery, type PreviewCompanyMemberInviteBody, type ProfileChoiceList, type ProfileChoiceQuery, type ProfileFieldEntity, type ProfileFieldValues, type ProfileObjectReferenceSelectionWrite, type ProfileObjectReferences, type PublicLocation, type PublicPlace, type PublicProfileFields, type PublicTaxonomyTerm, type ReadReceipt, type RecommendedJob, type RecommendedJobsListQuery, type RecommendedTalent, type RecommendedTalentListQuery, type RedirectResolution, type RefreshBody, type RegisterBody, RemoteOption, type RemotePermitTaxonomyEntry, type ReorderPipelineStagesBody, type ReplaceProfileObjectReferencesBody, type ReplyBody, type ReportBody, type RequestEmailChangeBody, type RequestMagicLinkBody, type ResetPasswordBody, type Resume, type ResumeUploadOptions, SDK_VERSION, SIGN_IN_REDIRECT_ERROR_CODES, SSO_LINK_PROOF_BINDING_TTL_MS, SalaryDetailQuery, type SalesLedPlan, type SalesLedPlanListEnvelope, type SaveJobBody, type SavedJob, type SavedJobsListQuery, SearchEnvelope, SearchSuggestQuery, type SendWorkEmailBody, Seniority, type SignInRedirectErrorCode, type SignInRole, type SitemapEntriesEnvelope, type SitemapEntriesQuery, type SitemapEntry, type SourcedCandidate, type SsoAuthorizationQuery, type SsoAuthorizationUrl, type SsoLinkProofBindingStore, type SsoLinkProofBody, type StartAboutApplicationBody, type StartConversationBody, StorageMode, type TalentAccess, type TalentAccessCheckoutBody, type TalentAccessCheckoutSession, type TalentAccessCheckoutSessionState, type TalentAccessClaim, type TalentAccessClaimBody, type TalentAccessUpgrade, type TalentAccessUpgradeBody, type TalentCandidateAccess, type TalentDirectoryEntry, type TalentDirectoryListEnvelope, type TalentDirectoryQuery, type TalentList, type TalentListFilters, type TalentListMember, type TalentListMembersListEnvelope, type TalentListMembersQuery, type TalentListMembership, type TalentPlace, type TalentPlacesListEnvelope, type TalentPlacesQuery, 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 UpdateProfileFieldValuesBody, type UpdateSkillsBody, type UpdateTalentListBody, type VerifyEmailBody, createBoardClient, isBoardApiError, isBoardPasswordRequired, isColdRule, isConflict, isForbidden, isFreeEmailWebsiteError, isNotFound, isOwnMessage, isRateLimited, isSafeApplicationUrl, isSignInMethodUnavailable, isSsoBrowserMismatch, isSsoRequired, isUnauthorized, isValidationError, lastOwnMessageId, paginate, parseOAuthCompletion, resolveApplyAction, resolveApplyDecision, ssoLinkProofBindingStore };
package/dist/index.js CHANGED
@@ -405,7 +405,7 @@ async function clearSession(storage) {
405
405
  }
406
406
 
407
407
  // src/version.ts
408
- var SDK_VERSION = "4.45.0";
408
+ var SDK_VERSION = "4.48.0";
409
409
 
410
410
  // src/client.ts
411
411
  function isRawBody(body) {
@@ -2493,11 +2493,15 @@ function meNamespace(client) {
2493
2493
  },
2494
2494
  /**
2495
2495
  * Company-owned saved searches over the talent directory. Each holds
2496
- * named filters and, optionally, saved people (`members`). Approved
2497
- * members share the same lists. Optional `job` links a list to one
2498
- * company job; pass `job: null` on update to unlink. Linking a list
2499
- * shortlists everyone saved to it onto that job; unlinking changes no
2500
- * pipeline.
2496
+ * named filters and saved people (`members`), with no size limit.
2497
+ * Approved members share the same lists. Optional `job` links a list
2498
+ * to one company job, and a job has at most one list; pass
2499
+ * `job: null` on update to unlink. Saving to a linked list is how a
2500
+ * sourced candidate is shortlisted onto the job, and removing takes
2501
+ * them off while they are still at Shortlisted, so the list and the
2502
+ * job agree. Linking a list shortlists everyone saved to it, saves the
2503
+ * sourced people already on the job, and folds in the job's previous
2504
+ * list. Unlinking changes neither side.
2501
2505
  */
2502
2506
  talentLists: {
2503
2507
  /**
@@ -2569,13 +2573,15 @@ function meNamespace(client) {
2569
2573
  );
2570
2574
  },
2571
2575
  /**
2572
- * People saved to a talent list (at most 500 per list).
2576
+ * People saved to a talent list. A list has no size limit.
2573
2577
  */
2574
2578
  members: {
2575
2579
  /**
2576
- * List the people saved to a list as directory cards, most
2577
- * recently saved first unless `sort` or a keyword (`q`) is set;
2578
- * with a keyword, best match first. Cards are redacted as in the
2580
+ * List the people saved to a list as directory cards, in the
2581
+ * public directory's order: best match first with a keyword
2582
+ * (`q`), otherwise by `sort` or the directory's default order. A
2583
+ * save or removal shows here within seconds; `memberCount` is
2584
+ * immediate. Cards are redacted as in the
2579
2585
  * public directory when the board sells profile unlocks, except
2580
2586
  * for candidates the company has unlocked. Runs the public
2581
2587
  * talent directory search, with the same filters, restricted to
@@ -2604,8 +2610,9 @@ function meNamespace(client) {
2604
2610
  * Save a candidate to a list. Idempotent: saving someone already
2605
2611
  * on it returns `created: false`. When the list is linked to a
2606
2612
  * job, the candidate is also shortlisted onto that job unless they
2607
- * already have a pipeline row there. A full list raises
2608
- * `talent_list_full` (409).
2613
+ * already have a pipeline row there; this is the way to shortlist
2614
+ * a sourced candidate. Lists have no size limit, so
2615
+ * `talent_list_full` is never raised.
2609
2616
  *
2610
2617
  * @example
2611
2618
  * await board.me.companies.talentLists.members.add('acme', listId, {
@@ -2621,8 +2628,11 @@ function meNamespace(client) {
2621
2628
  );
2622
2629
  },
2623
2630
  /**
2624
- * Remove a candidate from a list. Idempotent. Never changes a job
2625
- * pipeline, including the linked job's.
2631
+ * Remove a candidate from a list. Idempotent. On a list linked to
2632
+ * a job, also removes their pipeline row on that job while it is a
2633
+ * sourced row still at Shortlisted; anyone further along, or who
2634
+ * applied, keeps it (end that with a rejection). An unlinked list
2635
+ * changes no pipeline.
2626
2636
  */
2627
2637
  remove(slug, listId, candidateBoardUserId, options) {
2628
2638
  return client.fetch(
@@ -2638,15 +2648,21 @@ function meNamespace(client) {
2638
2648
  },
2639
2649
  /**
2640
2650
  * Per-job sourced membership — the unstaged kanban rail.
2641
- * Saving a candidate always writes here. Convert-on-drop creates a
2642
- * pipeline application with source `sourced` (hidden from the
2643
- * candidate until they apply themselves).
2651
+ *
2652
+ * @deprecated A job's sourced people are the people saved to its
2653
+ * talent list. Use `talentLists.members` on the list whose `jobId` is
2654
+ * the job: `add` shortlists, `remove` takes them off, and `list` with
2655
+ * `stage` reads pipeline columns. `add` and `remove` here forward to
2656
+ * those calls.
2644
2657
  */
2645
2658
  sourcedCandidates: {
2646
2659
  /**
2647
2660
  * List sourced candidates still on the rail for a job. Anyone who
2648
2661
  * already has a pipeline application for that job is omitted.
2649
2662
  *
2663
+ * @deprecated Use `talentLists.members.list` on the job's talent
2664
+ * list.
2665
+ *
2650
2666
  * @example
2651
2667
  * const { data } = await board.me.companies.sourcedCandidates.list(
2652
2668
  * 'acme',
@@ -2661,7 +2677,12 @@ function meNamespace(client) {
2661
2677
  },
2662
2678
  /**
2663
2679
  * Save a candidate onto a job's sourced rail. Idempotent: a second
2664
- * add for the same pair returns `created: false`.
2680
+ * add for the same pair returns `created: false`. Saves them to the
2681
+ * job's talent list (created, named after the job, when it has
2682
+ * none) and shortlists them onto the job.
2683
+ *
2684
+ * @deprecated Use `talentLists.members.add` on the job's talent
2685
+ * list.
2665
2686
  *
2666
2687
  * @example
2667
2688
  * const saved = await board.me.companies.sourcedCandidates.add(
@@ -2676,7 +2697,14 @@ function meNamespace(client) {
2676
2697
  body
2677
2698
  });
2678
2699
  },
2679
- /** Remove a sourced membership. Does not touch pipeline applications. */
2700
+ /**
2701
+ * Remove a sourced membership: the candidate leaves the job's talent
2702
+ * list, and their pipeline row on the job goes too while it is a
2703
+ * sourced row still at Shortlisted.
2704
+ *
2705
+ * @deprecated Use `talentLists.members.remove` on the job's talent
2706
+ * list.
2707
+ */
2680
2708
  remove(slug, sourcedId, options) {
2681
2709
  return client.fetch(
2682
2710
  `/me/companies/${encodeURIComponent(
@@ -2692,6 +2720,9 @@ function meNamespace(client) {
2692
2720
  * `review`. A board without a native pipeline raises
2693
2721
  * `sourced_convert_unavailable` (409).
2694
2722
  *
2723
+ * @deprecated Saving to the job's talent list already shortlists
2724
+ * the candidate; move them on the pipeline from there.
2725
+ *
2695
2726
  * @example
2696
2727
  * const result = await board.me.companies.sourcedCandidates.convert(
2697
2728
  * 'acme',
@@ -3892,9 +3923,10 @@ function talentNamespace(client) {
3892
3923
  * first, each with how many candidates the caller can see there (a
3893
3924
  * country counts every candidate in its cities). Anonymous callers get
3894
3925
  * counts of `public` profiles; a signed-in board user also counts
3895
- * `logged_in_only` ones. Pass a place's `slug` as `talent.list`'s
3896
- * `place` filter. With `q`, returns location search matches instead,
3897
- * ranked as `taxonomy.places.list` ranks them.
3926
+ * `logged_in_only` ones. Pass a place's `slug` (or its board-language
3927
+ * `canonicalSlug`) as `talent.list`'s `place` filter, and show its
3928
+ * board-language `displayName`. With `q`, returns location search
3929
+ * matches instead, ranked as `taxonomy.places.list` ranks them.
3898
3930
  *
3899
3931
  * Same access errors as `talent.list`. Returns an empty list until the
3900
3932
  * board's place counts are built.
@@ -3962,7 +3994,9 @@ function taxonomyNamespace(client) {
3962
3994
  /**
3963
3995
  * Without `query`: list every place used by a published job, with its
3964
3996
  * live job count (the locations directory). With `query.q` (≥2 chars):
3965
- * location autocomplete — the top name matches ranked.
3997
+ * location autocomplete — the top name matches ranked. Each place
3998
+ * carries its board-language `displayName` and `canonicalSlug`; link
3999
+ * with `canonicalSlug`.
3966
4000
  */
3967
4001
  list(query, options) {
3968
4002
  return client.fetch("/places", {