@cavuno/board 4.59.1 → 4.61.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 (37) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/{_spec-DZV8ME1P.d.mts → _spec-B6YOcfhm.d.mts} +152 -0
  3. package/dist/{_spec-DZV8ME1P.d.ts → _spec-B6YOcfhm.d.ts} +152 -0
  4. package/dist/{blog-BfVuJQvO.d.mts → blog-BazgjIMl.d.mts} +1 -1
  5. package/dist/{blog-CLVfmknV.d.ts → blog-Iz3vKyol.d.ts} +1 -1
  6. package/dist/{board-Cl6cfS-a.d.ts → board-Bd7H1jwl.d.ts} +2 -2
  7. package/dist/{board-gmV8MoLW.d.mts → board-BwOeOQ6v.d.mts} +2 -2
  8. package/dist/{breadcrumbs-BOM71gXT.d.mts → breadcrumbs-DxlE86G-.d.mts} +2 -2
  9. package/dist/{breadcrumbs-dTn6GsKo.d.ts → breadcrumbs-pccdTbvQ.d.ts} +2 -2
  10. package/dist/browser/cavuno-board.global.min.js +1 -1
  11. package/dist/filters.d.mts +2 -2
  12. package/dist/filters.d.ts +2 -2
  13. package/dist/format.d.mts +4 -4
  14. package/dist/format.d.ts +4 -4
  15. package/dist/index.d.mts +201 -13
  16. package/dist/index.d.ts +201 -13
  17. package/dist/index.js +154 -2
  18. package/dist/index.mjs +154 -2
  19. package/dist/{jobs-Di0L5sM1.d.ts → jobs-BwxCoTRJ.d.ts} +1 -1
  20. package/dist/{jobs-DfMyFAYs.d.mts → jobs-DrDmqiBb.d.mts} +1 -1
  21. package/dist/{search-1pxkvj_I.d.mts → search-CbGEG89W.d.mts} +1 -1
  22. package/dist/{search-BPnMYVa7.d.ts → search-D4Uo2bRh.d.ts} +1 -1
  23. package/dist/{seo-DFPj-7Rl.d.ts → seo-CnqvU41p.d.ts} +1 -1
  24. package/dist/{seo-CJtLrGD_.d.mts → seo-DiJBveAA.d.mts} +1 -1
  25. package/dist/seo-files.d.mts +2 -2
  26. package/dist/seo-files.d.ts +2 -2
  27. package/dist/seo.d.mts +6 -6
  28. package/dist/seo.d.ts +6 -6
  29. package/dist/server.d.mts +6 -6
  30. package/dist/server.d.ts +6 -6
  31. package/dist/sitemap.d.mts +6 -6
  32. package/dist/sitemap.d.ts +6 -6
  33. package/dist/suggest.d.mts +2 -2
  34. package/dist/suggest.d.ts +2 -2
  35. package/package.json +2 -2
  36. package/skills/cavuno-board-job-alerts/SKILL.md +31 -0
  37. package/skills/manifest.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,41 @@
3
3
  This changelog records changes that affect Board API compatibility, exported
4
4
  types, runtime behavior, or supported integration patterns.
5
5
 
6
+ ## 4.61.0 — 2026-11-04
7
+
8
+ - `board.context()` carries `verification.experience` and
9
+ `verification.education`: whether workers can get those profile items
10
+ verified on the board.
11
+ - Email-domain verification of profile items:
12
+ `board.me.profile.submitEmailDomainVerification` emails a code and a link
13
+ to an address at the item's domain, and
14
+ `board.me.profile.confirmEmailDomainVerification` (code) or
15
+ `board.auth.verifyItemEmail` (link token) confirms it. New exported types:
16
+ `ItemEmailDomainVerification`, `SubmitItemEmailDomainVerificationBody`,
17
+ `ConfirmItemEmailDomainVerificationBody` and
18
+ `ConfirmItemEmailDomainVerificationLinkBody`.
19
+ - `board.me.profile.listVerifications` and
20
+ `board.me.companies.listVerifications` no longer list items whose type the
21
+ board has switched verification off for.
22
+ - Job alert digests on your own site: `board.jobAlerts.recordClick` records a
23
+ visitor opening a job from a digest email, using the params
24
+ `parseJobAlertClickParams(url)` reads from the job link. Spread
25
+ `parseJobAlertUnsubscribeParams(url)` into `board.jobAlerts.unsubscribe` to
26
+ record which digest the subscriber unsubscribed from.
27
+
28
+ ## 4.60.0 — 2026-11-03
29
+
30
+ - Profile item verification. `board.me.profile.listVerifications` and
31
+ `submitVerification` list the verification status of the items on my
32
+ profile and ask for one to be checked; `board.me.companies` has the same
33
+ pair for a company I manage.
34
+ - Public talent and company profiles carry an optional `verification` badge
35
+ on items the board has verified.
36
+ - New operator operations for item verification (list, read, the review
37
+ queue and decisions), company routing rules (create, read, update,
38
+ delete, reorder and preview), `deleteCustomObjectRecord` and
39
+ `startJobFormCustomFieldAiFill`.
40
+
6
41
  ## 4.59.1 — 2026-11-02
7
42
 
8
43
  - The board context's `contact` carries `tiktokUrl` and `youtubeUrl` next to
@@ -917,6 +917,16 @@ interface components {
917
917
  ConfirmEmailChangeBody: {
918
918
  token: string;
919
919
  };
920
+ ConfirmItemEmailDomainVerificationBody: {
921
+ /** @description The item: `experience:{id}`, `education:{id}`, `ref:{fieldKey}:{recordId}` or `ref:{fieldKey}:{recordId}:{entryKey}`. */
922
+ itemKey: string;
923
+ /** @description The 6-digit code from the email. */
924
+ code: string;
925
+ };
926
+ ConfirmItemEmailDomainVerificationLinkBody: {
927
+ /** @description The `token` query parameter of the emailed `/auth/verify-item-email` link. */
928
+ token: string;
929
+ };
920
930
  ConfirmWorkEmailBody: {
921
931
  token: string;
922
932
  };
@@ -1002,6 +1012,8 @@ interface components {
1002
1012
  instagramUrl?: string | null;
1003
1013
  /** @description Canonical market slugs assigned to the company. Pass an empty array to clear all markets. */
1004
1014
  markets?: string[];
1015
+ /** @description Makes this company a subsidiary of another company in the same account: the parent company's `id`. Groups are one level deep, so the parent cannot itself be a subsidiary, and a company with subsidiaries cannot get a parent. A subsidiary may use its parent's website domain (or a path on it); it is then not filled in automatically from the website, and shows the parent's logo until it has its own. Changing it changes the public company page, so confirm with the operator first. `null` or `""` means not set. */
1016
+ parentCompanyId?: string | null;
1005
1017
  /** @description The company's display name. */
1006
1018
  name: string;
1007
1019
  /** @description URL-friendly slug for the company. Auto-generated from `name` when omitted. */
@@ -1771,6 +1783,115 @@ interface components {
1771
1783
  handle: string;
1772
1784
  available: boolean;
1773
1785
  };
1786
+ ItemEmailDomainVerification: {
1787
+ /** @enum {string} */
1788
+ object: "item_email_domain_verification";
1789
+ itemKey: string;
1790
+ /** @description The domain of the address the code and link were sent to. */
1791
+ emailDomain: string;
1792
+ /** @description False when an email for this item went out less than a minute ago; nothing new was sent. */
1793
+ sent: boolean;
1794
+ /** @description Seconds until another email can be sent for this item. */
1795
+ retryAfterSeconds: number;
1796
+ /** Format: date-time */
1797
+ codeExpiresAt: string;
1798
+ /** Format: date-time */
1799
+ linkExpiresAt: string;
1800
+ };
1801
+ ItemVerification: {
1802
+ id: string;
1803
+ /** @enum {string} */
1804
+ object: "item_verification";
1805
+ itemKey: string;
1806
+ /**
1807
+ * @description `changed`: a checked field was edited after verification. `lapsed`: past its expiry or re-check date (see `lapseReason`).
1808
+ * @enum {string}
1809
+ */
1810
+ status: "unverified" | "pending" | "needs_info" | "verified" | "rejected" | "unable_to_verify" | "changed" | "lapsed" | "revoked";
1811
+ /** @enum {string|null} */
1812
+ lapseReason: "expired" | "recheck_due" | null;
1813
+ /**
1814
+ * @description Why the last team decision went the way it did.
1815
+ * @enum {string|null}
1816
+ */
1817
+ reasonCode: "details_mismatch" | "not_found_in_register" | "document_unreadable" | "document_expired" | "suspected_fraud" | "issuer_unreachable" | "other" | null;
1818
+ /** Format: date-time */
1819
+ verifiedAt: string | null;
1820
+ /**
1821
+ * Format: date-time
1822
+ * @description When a verified item lapses. `null` when it never does.
1823
+ */
1824
+ expiresAt: string | null;
1825
+ hasProof: boolean;
1826
+ /** @description The email domain the worker confirmed, while verified by email domain; otherwise `null`. Show it with the item: the item's name is what the worker typed. */
1827
+ verifiedDomain: string | null;
1828
+ /** Format: date-time */
1829
+ updatedAt: string;
1830
+ };
1831
+ /** @description Present on a public profile read when this entry is verified. */
1832
+ ItemVerificationBadge: {
1833
+ /**
1834
+ * @description The item was verified by the board.
1835
+ * @enum {string}
1836
+ */
1837
+ status: "verified";
1838
+ /** @description The email domain the worker confirmed, when it was verified by email domain; otherwise `null`. Show it with the badge: the item's name is what the worker typed. */
1839
+ verifiedDomain: string | null;
1840
+ };
1841
+ /** @description Item verification (each filled-in entry, or the selection when the field has no repeatable entries, is verified on its own). Absent means off. */
1842
+ ItemVerificationConfig: {
1843
+ /** @description Keys of this field's `valueDefinitions` or `entryDefinitions` the verification covers. Editing any of them, or changing the selected entry, removes verification. */
1844
+ checkedFieldKeys: string[];
1845
+ /** @description How long a verification holds. */
1846
+ validity: {
1847
+ /**
1848
+ * @description Never lapses.
1849
+ * @enum {string}
1850
+ */
1851
+ kind: "never";
1852
+ } | {
1853
+ /**
1854
+ * @description Lapses after the date in one of the item’s fields.
1855
+ * @enum {string}
1856
+ */
1857
+ kind: "expiry_field";
1858
+ /** @description A `date` field of this definition; the verification holds through that day (UTC). */
1859
+ fieldKey: string;
1860
+ } | {
1861
+ /**
1862
+ * @description Lapses a number of months after it was verified.
1863
+ * @enum {string}
1864
+ */
1865
+ kind: "recheck";
1866
+ /** @description Months between checks, 1 to 120. */
1867
+ months: number;
1868
+ };
1869
+ /**
1870
+ * @description `team`: the board team verifies in the dashboard or through the Operator API. `email_domain`: the worker confirms an address at the item’s domain.
1871
+ * @enum {string}
1872
+ */
1873
+ verifiedBy: "team" | "email_domain";
1874
+ /** @description Required when `verifiedBy` is `email_domain`; absent otherwise. */
1875
+ domainSource?: {
1876
+ /**
1877
+ * @description Take the domain from one of the item’s fields.
1878
+ * @enum {string}
1879
+ */
1880
+ from: "field";
1881
+ /** @description A `url` or `short_text` field of this definition holding the website. */
1882
+ fieldKey: string;
1883
+ } | {
1884
+ /**
1885
+ * @description Accept any of a fixed list of domains.
1886
+ * @enum {string}
1887
+ */
1888
+ from: "list";
1889
+ /** @description Bare domains, for example `example.org`. Subdomains also pass. */
1890
+ domains: string[];
1891
+ };
1892
+ /** @description Unverified items show "Not verified" to employers and staff. Nothing is blocked. */
1893
+ required: boolean;
1894
+ };
1774
1895
  JobCollectionChoiceList: {
1775
1896
  data: {
1776
1897
  id: string;
@@ -2526,6 +2647,7 @@ interface components {
2526
2647
  descriptionFieldKey?: string;
2527
2648
  valueDefinitions?: components["schemas"]["ScalarProfileCustomFieldDefinition"][];
2528
2649
  entryDefinitions?: components["schemas"]["ScalarProfileCustomFieldDefinition"][];
2650
+ verification?: components["schemas"]["ItemVerificationConfig"];
2529
2651
  };
2530
2652
  ProfileObjectReferenceSelectionWrite: {
2531
2653
  fieldKey: string;
@@ -2686,6 +2808,13 @@ interface components {
2686
2808
  /** @description Whether posting a job on this board requires an active membership. When `true`, render the join gate in place of the anonymous post form: the platform rejects a create from a company with no contributing assignment (`membership_required`). Absent board config defaults to `false`. This flag is board policy and is safe to read anonymously; a signed-in employer's own standing rides their company billing options. */
2687
2809
  requiresMembership: boolean;
2688
2810
  };
2811
+ /** @description Whether profile item verification is switched on for the built-in experience and education items. */
2812
+ verification: {
2813
+ /** @description Whether workers can get the experience entries on their profile verified on this board. When `false`, hide verification controls for experience items. Absent board config defaults to `false`. */
2814
+ experience: boolean;
2815
+ /** @description Whether workers can get the education entries on their profile verified on this board. When `false`, hide verification controls for education items. Absent board config defaults to `false`. */
2816
+ education: boolean;
2817
+ };
2689
2818
  /** @description Sign-in options per role: the built-in methods and SSO connections switched on for that role. Render the sign-in page from this instead of hard-coding providers; any other method is refused with `board_auth_method_unavailable`. */
2690
2819
  signIn: {
2691
2820
  candidate: components["schemas"]["BoardRoleSignIn"];
@@ -2986,6 +3115,15 @@ interface components {
2986
3115
  /** @description Configured collection references resolved to current live names, logos, and public record details. Archived collections and records are omitted. */
2987
3116
  resolvedCollectionFields: components["schemas"]["ResolvedJobCollectionField"][];
2988
3117
  };
3118
+ PublicJobAlertClickReceipt: {
3119
+ /** @enum {string} */
3120
+ object: "job_alert_click";
3121
+ /**
3122
+ * @description Always `accepted`. The click is recorded after the response, and only when the alert and the job belong to this board and the visitor is not a crawler, so the response does not reveal either.
3123
+ * @enum {string}
3124
+ */
3125
+ status: "accepted";
3126
+ };
2989
3127
  PublicJobAlertConfirmation: {
2990
3128
  /** @enum {string} */
2991
3129
  object: "job_alert_confirmation";
@@ -3706,7 +3844,9 @@ interface components {
3706
3844
  values: {
3707
3845
  [key: string]: string | number | boolean | string[];
3708
3846
  };
3847
+ verification?: components["schemas"]["ItemVerificationBadge"];
3709
3848
  }[];
3849
+ verification?: components["schemas"]["ItemVerificationBadge"] & unknown;
3710
3850
  };
3711
3851
  Resume: {
3712
3852
  /** @enum {string} */
@@ -4013,6 +4153,16 @@ interface components {
4013
4153
  /** @description Optional job id. When set, this send is from that job pipeline and may auto-advance Shortlisted to Contacted. */
4014
4154
  job?: string;
4015
4155
  };
4156
+ SubmitItemEmailDomainVerificationBody: {
4157
+ /** @description The item: `experience:{id}`, `education:{id}`, `ref:{fieldKey}:{recordId}` or `ref:{fieldKey}:{recordId}:{entryKey}`. */
4158
+ itemKey: string;
4159
+ /** @description An address at the item's domain or a subdomain of it, for example a work email at the company's website domain. Personal email providers are refused. Only its domain is stored. */
4160
+ email: string;
4161
+ };
4162
+ SubmitMyItemVerificationBody: {
4163
+ /** @description The item: `experience:{id}`, `education:{id}`, `ref:{fieldKey}:{recordId}` or `ref:{fieldKey}:{recordId}:{entryKey}`. */
4164
+ itemKey: string;
4165
+ };
4016
4166
  SuggestResult: {
4017
4167
  /** @enum {string} */
4018
4168
  object: "suggest_result";
@@ -4211,6 +4361,7 @@ interface components {
4211
4361
  description: string | null;
4212
4362
  /** @description Skills the candidate applied in this role. */
4213
4363
  experienceSkills: string[];
4364
+ verification?: components["schemas"]["ItemVerificationBadge"] & unknown;
4214
4365
  }[];
4215
4366
  education: {
4216
4367
  institutionName: string;
@@ -4224,6 +4375,7 @@ interface components {
4224
4375
  startDate: string | null;
4225
4376
  endDate: string | null;
4226
4377
  description: string | null;
4378
+ verification?: components["schemas"]["ItemVerificationBadge"] & unknown;
4227
4379
  }[];
4228
4380
  skills: {
4229
4381
  name: string;
@@ -917,6 +917,16 @@ interface components {
917
917
  ConfirmEmailChangeBody: {
918
918
  token: string;
919
919
  };
920
+ ConfirmItemEmailDomainVerificationBody: {
921
+ /** @description The item: `experience:{id}`, `education:{id}`, `ref:{fieldKey}:{recordId}` or `ref:{fieldKey}:{recordId}:{entryKey}`. */
922
+ itemKey: string;
923
+ /** @description The 6-digit code from the email. */
924
+ code: string;
925
+ };
926
+ ConfirmItemEmailDomainVerificationLinkBody: {
927
+ /** @description The `token` query parameter of the emailed `/auth/verify-item-email` link. */
928
+ token: string;
929
+ };
920
930
  ConfirmWorkEmailBody: {
921
931
  token: string;
922
932
  };
@@ -1002,6 +1012,8 @@ interface components {
1002
1012
  instagramUrl?: string | null;
1003
1013
  /** @description Canonical market slugs assigned to the company. Pass an empty array to clear all markets. */
1004
1014
  markets?: string[];
1015
+ /** @description Makes this company a subsidiary of another company in the same account: the parent company's `id`. Groups are one level deep, so the parent cannot itself be a subsidiary, and a company with subsidiaries cannot get a parent. A subsidiary may use its parent's website domain (or a path on it); it is then not filled in automatically from the website, and shows the parent's logo until it has its own. Changing it changes the public company page, so confirm with the operator first. `null` or `""` means not set. */
1016
+ parentCompanyId?: string | null;
1005
1017
  /** @description The company's display name. */
1006
1018
  name: string;
1007
1019
  /** @description URL-friendly slug for the company. Auto-generated from `name` when omitted. */
@@ -1771,6 +1783,115 @@ interface components {
1771
1783
  handle: string;
1772
1784
  available: boolean;
1773
1785
  };
1786
+ ItemEmailDomainVerification: {
1787
+ /** @enum {string} */
1788
+ object: "item_email_domain_verification";
1789
+ itemKey: string;
1790
+ /** @description The domain of the address the code and link were sent to. */
1791
+ emailDomain: string;
1792
+ /** @description False when an email for this item went out less than a minute ago; nothing new was sent. */
1793
+ sent: boolean;
1794
+ /** @description Seconds until another email can be sent for this item. */
1795
+ retryAfterSeconds: number;
1796
+ /** Format: date-time */
1797
+ codeExpiresAt: string;
1798
+ /** Format: date-time */
1799
+ linkExpiresAt: string;
1800
+ };
1801
+ ItemVerification: {
1802
+ id: string;
1803
+ /** @enum {string} */
1804
+ object: "item_verification";
1805
+ itemKey: string;
1806
+ /**
1807
+ * @description `changed`: a checked field was edited after verification. `lapsed`: past its expiry or re-check date (see `lapseReason`).
1808
+ * @enum {string}
1809
+ */
1810
+ status: "unverified" | "pending" | "needs_info" | "verified" | "rejected" | "unable_to_verify" | "changed" | "lapsed" | "revoked";
1811
+ /** @enum {string|null} */
1812
+ lapseReason: "expired" | "recheck_due" | null;
1813
+ /**
1814
+ * @description Why the last team decision went the way it did.
1815
+ * @enum {string|null}
1816
+ */
1817
+ reasonCode: "details_mismatch" | "not_found_in_register" | "document_unreadable" | "document_expired" | "suspected_fraud" | "issuer_unreachable" | "other" | null;
1818
+ /** Format: date-time */
1819
+ verifiedAt: string | null;
1820
+ /**
1821
+ * Format: date-time
1822
+ * @description When a verified item lapses. `null` when it never does.
1823
+ */
1824
+ expiresAt: string | null;
1825
+ hasProof: boolean;
1826
+ /** @description The email domain the worker confirmed, while verified by email domain; otherwise `null`. Show it with the item: the item's name is what the worker typed. */
1827
+ verifiedDomain: string | null;
1828
+ /** Format: date-time */
1829
+ updatedAt: string;
1830
+ };
1831
+ /** @description Present on a public profile read when this entry is verified. */
1832
+ ItemVerificationBadge: {
1833
+ /**
1834
+ * @description The item was verified by the board.
1835
+ * @enum {string}
1836
+ */
1837
+ status: "verified";
1838
+ /** @description The email domain the worker confirmed, when it was verified by email domain; otherwise `null`. Show it with the badge: the item's name is what the worker typed. */
1839
+ verifiedDomain: string | null;
1840
+ };
1841
+ /** @description Item verification (each filled-in entry, or the selection when the field has no repeatable entries, is verified on its own). Absent means off. */
1842
+ ItemVerificationConfig: {
1843
+ /** @description Keys of this field's `valueDefinitions` or `entryDefinitions` the verification covers. Editing any of them, or changing the selected entry, removes verification. */
1844
+ checkedFieldKeys: string[];
1845
+ /** @description How long a verification holds. */
1846
+ validity: {
1847
+ /**
1848
+ * @description Never lapses.
1849
+ * @enum {string}
1850
+ */
1851
+ kind: "never";
1852
+ } | {
1853
+ /**
1854
+ * @description Lapses after the date in one of the item’s fields.
1855
+ * @enum {string}
1856
+ */
1857
+ kind: "expiry_field";
1858
+ /** @description A `date` field of this definition; the verification holds through that day (UTC). */
1859
+ fieldKey: string;
1860
+ } | {
1861
+ /**
1862
+ * @description Lapses a number of months after it was verified.
1863
+ * @enum {string}
1864
+ */
1865
+ kind: "recheck";
1866
+ /** @description Months between checks, 1 to 120. */
1867
+ months: number;
1868
+ };
1869
+ /**
1870
+ * @description `team`: the board team verifies in the dashboard or through the Operator API. `email_domain`: the worker confirms an address at the item’s domain.
1871
+ * @enum {string}
1872
+ */
1873
+ verifiedBy: "team" | "email_domain";
1874
+ /** @description Required when `verifiedBy` is `email_domain`; absent otherwise. */
1875
+ domainSource?: {
1876
+ /**
1877
+ * @description Take the domain from one of the item’s fields.
1878
+ * @enum {string}
1879
+ */
1880
+ from: "field";
1881
+ /** @description A `url` or `short_text` field of this definition holding the website. */
1882
+ fieldKey: string;
1883
+ } | {
1884
+ /**
1885
+ * @description Accept any of a fixed list of domains.
1886
+ * @enum {string}
1887
+ */
1888
+ from: "list";
1889
+ /** @description Bare domains, for example `example.org`. Subdomains also pass. */
1890
+ domains: string[];
1891
+ };
1892
+ /** @description Unverified items show "Not verified" to employers and staff. Nothing is blocked. */
1893
+ required: boolean;
1894
+ };
1774
1895
  JobCollectionChoiceList: {
1775
1896
  data: {
1776
1897
  id: string;
@@ -2526,6 +2647,7 @@ interface components {
2526
2647
  descriptionFieldKey?: string;
2527
2648
  valueDefinitions?: components["schemas"]["ScalarProfileCustomFieldDefinition"][];
2528
2649
  entryDefinitions?: components["schemas"]["ScalarProfileCustomFieldDefinition"][];
2650
+ verification?: components["schemas"]["ItemVerificationConfig"];
2529
2651
  };
2530
2652
  ProfileObjectReferenceSelectionWrite: {
2531
2653
  fieldKey: string;
@@ -2686,6 +2808,13 @@ interface components {
2686
2808
  /** @description Whether posting a job on this board requires an active membership. When `true`, render the join gate in place of the anonymous post form: the platform rejects a create from a company with no contributing assignment (`membership_required`). Absent board config defaults to `false`. This flag is board policy and is safe to read anonymously; a signed-in employer's own standing rides their company billing options. */
2687
2809
  requiresMembership: boolean;
2688
2810
  };
2811
+ /** @description Whether profile item verification is switched on for the built-in experience and education items. */
2812
+ verification: {
2813
+ /** @description Whether workers can get the experience entries on their profile verified on this board. When `false`, hide verification controls for experience items. Absent board config defaults to `false`. */
2814
+ experience: boolean;
2815
+ /** @description Whether workers can get the education entries on their profile verified on this board. When `false`, hide verification controls for education items. Absent board config defaults to `false`. */
2816
+ education: boolean;
2817
+ };
2689
2818
  /** @description Sign-in options per role: the built-in methods and SSO connections switched on for that role. Render the sign-in page from this instead of hard-coding providers; any other method is refused with `board_auth_method_unavailable`. */
2690
2819
  signIn: {
2691
2820
  candidate: components["schemas"]["BoardRoleSignIn"];
@@ -2986,6 +3115,15 @@ interface components {
2986
3115
  /** @description Configured collection references resolved to current live names, logos, and public record details. Archived collections and records are omitted. */
2987
3116
  resolvedCollectionFields: components["schemas"]["ResolvedJobCollectionField"][];
2988
3117
  };
3118
+ PublicJobAlertClickReceipt: {
3119
+ /** @enum {string} */
3120
+ object: "job_alert_click";
3121
+ /**
3122
+ * @description Always `accepted`. The click is recorded after the response, and only when the alert and the job belong to this board and the visitor is not a crawler, so the response does not reveal either.
3123
+ * @enum {string}
3124
+ */
3125
+ status: "accepted";
3126
+ };
2989
3127
  PublicJobAlertConfirmation: {
2990
3128
  /** @enum {string} */
2991
3129
  object: "job_alert_confirmation";
@@ -3706,7 +3844,9 @@ interface components {
3706
3844
  values: {
3707
3845
  [key: string]: string | number | boolean | string[];
3708
3846
  };
3847
+ verification?: components["schemas"]["ItemVerificationBadge"];
3709
3848
  }[];
3849
+ verification?: components["schemas"]["ItemVerificationBadge"] & unknown;
3710
3850
  };
3711
3851
  Resume: {
3712
3852
  /** @enum {string} */
@@ -4013,6 +4153,16 @@ interface components {
4013
4153
  /** @description Optional job id. When set, this send is from that job pipeline and may auto-advance Shortlisted to Contacted. */
4014
4154
  job?: string;
4015
4155
  };
4156
+ SubmitItemEmailDomainVerificationBody: {
4157
+ /** @description The item: `experience:{id}`, `education:{id}`, `ref:{fieldKey}:{recordId}` or `ref:{fieldKey}:{recordId}:{entryKey}`. */
4158
+ itemKey: string;
4159
+ /** @description An address at the item's domain or a subdomain of it, for example a work email at the company's website domain. Personal email providers are refused. Only its domain is stored. */
4160
+ email: string;
4161
+ };
4162
+ SubmitMyItemVerificationBody: {
4163
+ /** @description The item: `experience:{id}`, `education:{id}`, `ref:{fieldKey}:{recordId}` or `ref:{fieldKey}:{recordId}:{entryKey}`. */
4164
+ itemKey: string;
4165
+ };
4016
4166
  SuggestResult: {
4017
4167
  /** @enum {string} */
4018
4168
  object: "suggest_result";
@@ -4211,6 +4361,7 @@ interface components {
4211
4361
  description: string | null;
4212
4362
  /** @description Skills the candidate applied in this role. */
4213
4363
  experienceSkills: string[];
4364
+ verification?: components["schemas"]["ItemVerificationBadge"] & unknown;
4214
4365
  }[];
4215
4366
  education: {
4216
4367
  institutionName: string;
@@ -4224,6 +4375,7 @@ interface components {
4224
4375
  startDate: string | null;
4225
4376
  endDate: string | null;
4226
4377
  description: string | null;
4378
+ verification?: components["schemas"]["ItemVerificationBadge"] & unknown;
4227
4379
  }[];
4228
4380
  skills: {
4229
4381
  name: string;
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-DZV8ME1P.mjs';
1
+ import { S as Schemas } from './_spec-B6YOcfhm.mjs';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-DZV8ME1P.js';
1
+ import { S as Schemas } from './_spec-B6YOcfhm.js';
2
2
 
3
3
  /** Author shape embedded on posts (no `object` discriminator). */
4
4
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-DZV8ME1P.js';
2
- import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-Di0L5sM1.js';
1
+ import { S as Schemas } from './_spec-B6YOcfhm.js';
2
+ import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-BwxCoTRJ.js';
3
3
 
4
4
  type PublicCompany = Schemas['CompanyPublic'];
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-DZV8ME1P.mjs';
2
- import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-DfMyFAYs.mjs';
1
+ import { S as Schemas } from './_spec-B6YOcfhm.mjs';
2
+ import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-DrDmqiBb.mjs';
3
3
 
4
4
  type PublicCompany = Schemas['CompanyPublic'];
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-gmV8MoLW.mjs';
2
- import { P as PublicJob } from './jobs-DfMyFAYs.mjs';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-BwOeOQ6v.mjs';
2
+ import { P as PublicJob } from './jobs-DrDmqiBb.mjs';
3
3
 
4
4
  /**
5
5
  * Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
@@ -1,5 +1,5 @@
1
- import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-Cl6cfS-a.js';
2
- import { P as PublicJob } from './jobs-Di0L5sM1.js';
1
+ import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-Bd7H1jwl.js';
2
+ import { P as PublicJob } from './jobs-BwxCoTRJ.js';
3
3
 
4
4
  /**
5
5
  * Wire enum for `salaryTimeframe`. Defined here (not re-exported from any