@cavuno/board 4.53.0 → 4.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/dist/{_spec-B4TxcV4W.d.mts → _spec-QzRtIJNE.d.mts} +75 -10
- package/dist/{_spec-B4TxcV4W.d.ts → _spec-QzRtIJNE.d.ts} +75 -10
- package/dist/{blog-BYuzCPFi.d.mts → blog-D32ONCap.d.mts} +1 -1
- package/dist/{blog-C1nsaLmM.d.ts → blog-DBYumoqv.d.ts} +1 -1
- package/dist/{board-BtipyMwh.d.ts → board-BXRsEJR8.d.ts} +6 -3
- package/dist/{board-j0KFqNBp.d.mts → board-Dc9RJzZs.d.mts} +6 -3
- package/dist/{breadcrumbs-BCEsjVMn.d.mts → breadcrumbs-CsG5emA0.d.mts} +2 -2
- package/dist/{breadcrumbs-BKpfMLqi.d.ts → breadcrumbs-DuT2G4a5.d.ts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/filters.d.mts +2 -2
- package/dist/filters.d.ts +2 -2
- package/dist/filters.js +2 -1
- package/dist/filters.mjs +2 -1
- package/dist/format.d.mts +4 -4
- package/dist/format.d.ts +4 -4
- package/dist/index.d.mts +74 -15
- package/dist/index.d.ts +74 -15
- package/dist/index.js +19 -2
- package/dist/index.mjs +19 -2
- package/dist/{jobs-BMJHIKTi.d.ts → jobs-BSc8fWRd.d.ts} +7 -1
- package/dist/{jobs-DKo4rx45.d.mts → jobs-Cu5SX_Yp.d.mts} +7 -1
- package/dist/{search-DVSEJ5aj.d.ts → search-Cc0D9AIG.d.ts} +1 -1
- package/dist/{search-DJQkMA5T.d.mts → search-D5GiEIK5.d.mts} +1 -1
- package/dist/{seo-CIOAZCuc.d.ts → seo-C0NRwuve.d.ts} +1 -1
- package/dist/{seo-D2oDCBT0.d.mts → seo-WA9kv-W8.d.mts} +1 -1
- package/dist/seo-files.d.mts +2 -2
- package/dist/seo-files.d.ts +2 -2
- package/dist/seo.d.mts +10 -6
- package/dist/seo.d.ts +10 -6
- package/dist/seo.js +1 -4
- package/dist/seo.mjs +1 -4
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/sitemap.d.mts +6 -6
- package/dist/sitemap.d.ts +6 -6
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/cavuno-board-filters/SKILL.md +4 -2
- package/skills/cavuno-board-talent-access/SKILL.md +4 -0
- package/skills/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,59 @@
|
|
|
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.55.0 — 2026-10-27
|
|
7
|
+
|
|
8
|
+
- Names now come in the board's language as well as English, so a starter
|
|
9
|
+
on a translated board can show and link them without its own lookups.
|
|
10
|
+
The English `name`/`term` and `slug` are unchanged, so filters keep working.
|
|
11
|
+
- Job `skills` and `categories` (on every job card and on job detail) and
|
|
12
|
+
company `markets` carry `displayName` and `canonicalSlug`.
|
|
13
|
+
- `relatedSearches` entries on the jobs and companies lists carry
|
|
14
|
+
`displayName` and `canonicalSlug`.
|
|
15
|
+
- Link with `canonicalSlug`; it equals `slug` when a term has no
|
|
16
|
+
translation.
|
|
17
|
+
- `remoteTimezones` entries on job detail carry `label`, the area or time
|
|
18
|
+
zone named in the board's language.
|
|
19
|
+
- `officeLocations[].displayName` names the city and region in the board's
|
|
20
|
+
language as well as the country (for example
|
|
21
|
+
"Krefeld, Nordrhein-Westfalen, Deutschland").
|
|
22
|
+
- Job cards carry `remotePermits`, the same `{ type, value }` remote scopes
|
|
23
|
+
as job detail. Continent, region and subregion entries (on cards and job
|
|
24
|
+
detail) carry an optional `code`, a UN M.49 area code that
|
|
25
|
+
`Intl.DisplayNames` with `type: 'region'` accepts (`150` for Europe), so a
|
|
26
|
+
client can name the area in any language. Build the card's remote label
|
|
27
|
+
from these and fall back to `remoteLocationLabel`.
|
|
28
|
+
- `listingJsonLd` links each job by its `links.public` URL when present, so
|
|
29
|
+
boards with translated URLs publish the URL a job lives at rather than a
|
|
30
|
+
redirect.
|
|
31
|
+
|
|
32
|
+
## 4.54.0 — 2026-10-27
|
|
33
|
+
|
|
34
|
+
- Jobs can be ordered nearest-first. `jobs.list`, `jobs.search`,
|
|
35
|
+
`companies.listJobs` and `embed.jobs` accept `sort: 'distance'` alongside a
|
|
36
|
+
`location` (and optional `radius`); jobs without a map point come last.
|
|
37
|
+
`sort: 'distance'` without a location that resolves to coordinates returns
|
|
38
|
+
400 `sort_distance_requires_location`. `JOB_SORTS` includes `'distance'`.
|
|
39
|
+
- Job cards carry `distanceKm`: kilometres from the search location, or
|
|
40
|
+
`null` when the request has no location or the job has no map point.
|
|
41
|
+
It is present on every sort, not only `distance`.
|
|
42
|
+
- `talent.list` and talent-list member queries accept `sort: 'distance'`
|
|
43
|
+
with a `place`.
|
|
44
|
+
- Candidates can share their stored resume with employers.
|
|
45
|
+
`board.me.resume.update({ shareWithEmployers })` turns it on or off at any
|
|
46
|
+
time without re-uploading, and `me.resume.upload` takes the same option
|
|
47
|
+
(applied only with `keepResumeOnFile: true`). `me.resume.retrieve` returns
|
|
48
|
+
the current `shareWithEmployers`.
|
|
49
|
+
- `talent.retrieve` returns `resumeUrl`, an expiring signed download URL, to
|
|
50
|
+
a signed-in approved employer on the board when the candidate shares their
|
|
51
|
+
resume and has one on file; `null` otherwise. Turning sharing off stops new
|
|
52
|
+
URLs; one already issued works until it expires. Directory cards never
|
|
53
|
+
include it.
|
|
54
|
+
- The jobs `location` filter can name a country or region that the board's
|
|
55
|
+
remote jobs are open to, and location search suggests those places.
|
|
56
|
+
- Category and location page responses include the board's own `metaTitle`
|
|
57
|
+
and `metaDescription` when it has set them, for page 1 with no filters.
|
|
58
|
+
|
|
6
59
|
## 4.53.0 — 2026-10-21
|
|
7
60
|
|
|
8
61
|
- Sponsored jobs (`isSponsored: true`) are being restricted to callers that
|
|
@@ -678,10 +678,14 @@ interface components {
|
|
|
678
678
|
companyCount: number;
|
|
679
679
|
};
|
|
680
680
|
CompanyMarketRef: {
|
|
681
|
-
/** @description
|
|
681
|
+
/** @description English source name of the market. */
|
|
682
682
|
name: string;
|
|
683
683
|
/** @description Source slug for the market. Use it as the `:market` segment of the market-scoped company browse. */
|
|
684
684
|
slug: string;
|
|
685
|
+
/** @description The slug of the market's page in the board language. Equals `slug` when the market has no translation. Link market chips with this slug; the market-scoped company browse resolves it too. */
|
|
686
|
+
canonicalSlug: string;
|
|
687
|
+
/** @description The market name in the board language, for the chip label. Equals `name` when the market has no translation. */
|
|
688
|
+
displayName: string;
|
|
685
689
|
};
|
|
686
690
|
CompanyMember: {
|
|
687
691
|
id: string;
|
|
@@ -1354,6 +1358,8 @@ interface components {
|
|
|
1354
1358
|
/** @enum {string} */
|
|
1355
1359
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
1356
1360
|
value: string;
|
|
1361
|
+
/** @description Ignored on input. Job reads add it to some entries; send it back or leave it out. */
|
|
1362
|
+
code?: string;
|
|
1357
1363
|
}[];
|
|
1358
1364
|
/** @description Where remote candidates must be timezone-compatible. Each entry mirrors the `remotePermits` shape (`world_region`, `continent`, `region`, `subregion`, `country`) plus `timezone` (specific IANA name with optional `plusMinus` ±N hours expansion) and `all` (every timezone: equivalent of `worldwide` for permits). The canonical `{type, value}` set is published at `GET /v1/taxonomies/remote-timezones`. **When omitted on POST**, the server auto-derives this from `remotePermits` (or `[{all,all}]` if neither was provided). **PATCH never auto-re-derives**: once set, only an explicit replacement updates the stored value, even when `remotePermits` changes. Pass `[]` to clear an existing constraint. */
|
|
1359
1365
|
remoteTimezones?: {
|
|
@@ -1427,6 +1433,8 @@ interface components {
|
|
|
1427
1433
|
remotePermits: {
|
|
1428
1434
|
type: string;
|
|
1429
1435
|
value: string;
|
|
1436
|
+
/** @description UN M.49 area code of a `continent`, `region` or `subregion` entry (e.g. `"150"` for Europe, `"019"` for the Americas, `"155"` for Western Europe). It is a code `Intl.DisplayNames` with `type: "region"` accepts, so a client can name the area in any language: `new Intl.DisplayNames(["de"], { type: "region" }).of("150")` is `"Europa"`. Absent for areas without a standard code (e.g. "Central Europe"), for `world_region` and `custom` entries, and for `country` and `subdivision` entries, whose `value` is already an ISO 3166-1 alpha-2 or ISO 3166-2 code. */
|
|
1437
|
+
code?: string;
|
|
1430
1438
|
}[];
|
|
1431
1439
|
/** @description Read-only: derived from `remotePermits`. */
|
|
1432
1440
|
remoteWorldwide: boolean | null;
|
|
@@ -1665,6 +1673,8 @@ interface components {
|
|
|
1665
1673
|
/** @enum {string} */
|
|
1666
1674
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
1667
1675
|
value: string;
|
|
1676
|
+
/** @description Ignored on input. Job reads add it to some entries; send it back or leave it out. */
|
|
1677
|
+
code?: string;
|
|
1668
1678
|
}[];
|
|
1669
1679
|
/** @description Where remote candidates must be timezone-compatible. Each entry mirrors the `remotePermits` shape (`world_region`, `continent`, `region`, `subregion`, `country`) plus `timezone` (specific IANA name with optional `plusMinus` ±N hours expansion) and `all` (every timezone: equivalent of `worldwide` for permits). The canonical `{type, value}` set is published at `GET /v1/taxonomies/remote-timezones`. **When omitted on POST**, the server auto-derives this from `remotePermits` (or `[{all,all}]` if neither was provided). **PATCH never auto-re-derives**: once set, only an explicit replacement updates the stored value, even when `remotePermits` changes. Pass `[]` to clear an existing constraint. */
|
|
1670
1680
|
remoteTimezones?: {
|
|
@@ -2709,6 +2719,8 @@ interface components {
|
|
|
2709
2719
|
remotePermits: {
|
|
2710
2720
|
type: string;
|
|
2711
2721
|
value: string;
|
|
2722
|
+
/** @description UN M.49 area code of a `continent`, `region` or `subregion` entry (e.g. `"150"` for Europe, `"019"` for the Americas, `"155"` for Western Europe). It is a code `Intl.DisplayNames` with `type: "region"` accepts, so a client can name the area in any language: `new Intl.DisplayNames(["de"], { type: "region" }).of("150")` is `"Europa"`. Absent for areas without a standard code (e.g. "Central Europe"), for `world_region` and `custom` entries, and for `country` and `subdivision` entries, whose `value` is already an ISO 3166-1 alpha-2 or ISO 3166-2 code. */
|
|
2723
|
+
code?: string;
|
|
2712
2724
|
}[];
|
|
2713
2725
|
/** @description Read-only: derived from `remotePermits`. `true` only when the authored selection is a single `{type:"worldwide"}` entry. */
|
|
2714
2726
|
remoteWorldwide: boolean | null;
|
|
@@ -2717,6 +2729,8 @@ interface components {
|
|
|
2717
2729
|
type: string;
|
|
2718
2730
|
value: string;
|
|
2719
2731
|
plusMinus?: number;
|
|
2732
|
+
/** @description Display name of the entry in the board language: the country, continent, region or subregion name ("Europa"), or the time zone name ("Mitteleuropäische Zeit"). A `world_region` shows its acronym ("EMEA"; the full English name on an English board), `all` the name of the world ("Welt"), and a group without a localized name its English `value`. Render this instead of `value`. */
|
|
2733
|
+
label: string;
|
|
2720
2734
|
}[];
|
|
2721
2735
|
/** @description Read-only: derived from `remoteTimezones`. UTC hour offsets used by the job-search index. */
|
|
2722
2736
|
remoteAllowedTzOffsets: number[];
|
|
@@ -2743,17 +2757,29 @@ interface components {
|
|
|
2743
2757
|
/** @description How often the candidate must be in-office over `inOfficePeriod`, or `null` if not specified. */
|
|
2744
2758
|
inOfficeFrequency: number | null;
|
|
2745
2759
|
company: components["schemas"]["JobCompany"];
|
|
2746
|
-
/** @description Physical office locations associated with the job. */
|
|
2760
|
+
/** @description Physical office locations associated with the job. Each `displayName` is in the board's language (city, region and country, each where a translation exists); `city`, `region` and `country` stay as stored. */
|
|
2747
2761
|
officeLocations: components["schemas"]["JobOfficeLocation"][];
|
|
2748
|
-
/** @description Resolved job categories
|
|
2762
|
+
/** @description Resolved job categories: same shape as the card; names joined server-side. Show `displayName` and link with `canonicalSlug` (board language); `name` and `slug` stay English. Guaranteed resolvable: every emitted slug resolves via `GET /v1/boards/:identifier/categories/:slug` — consumers never need to re-verify before linking. */
|
|
2749
2763
|
categories: {
|
|
2764
|
+
/** @description English source slug of the category. Accepted by the jobs `category` filter. */
|
|
2750
2765
|
slug: string;
|
|
2766
|
+
/** @description English source name of the category. */
|
|
2751
2767
|
name: string;
|
|
2768
|
+
/** @description The slug of the category's page in the board language. Equals `slug` when the category has no translation. Link chips with this slug. */
|
|
2769
|
+
canonicalSlug: string;
|
|
2770
|
+
/** @description The category name in the board language, for the chip label. Equals `name` when the category has no translation. */
|
|
2771
|
+
displayName: string;
|
|
2752
2772
|
}[];
|
|
2753
|
-
/** @description Resolved job skills
|
|
2773
|
+
/** @description Resolved job skills. Show `displayName` and link with `canonicalSlug` (board language); `name` and `slug` stay English. Guaranteed resolvable: every emitted slug resolves via `GET /v1/boards/:identifier/skills/:slug` — consumers never need to re-verify before linking. */
|
|
2754
2774
|
skills: {
|
|
2775
|
+
/** @description English source slug of the skill. Accepted by the jobs `skill` filter. */
|
|
2755
2776
|
slug: string;
|
|
2777
|
+
/** @description English source name of the skill. */
|
|
2756
2778
|
name: string;
|
|
2779
|
+
/** @description The slug of the skill's page in the board language. Equals `slug` when the skill has no translation. Link chips with this slug. */
|
|
2780
|
+
canonicalSlug: string;
|
|
2781
|
+
/** @description The skill name in the board language, for the chip label. Equals `name` when the skill has no translation. */
|
|
2782
|
+
displayName: string;
|
|
2757
2783
|
}[];
|
|
2758
2784
|
/** @description Place ancestor chain (country → region → city) for the breadcrumb. Link each entry with `canonicalSlug`; show `name`, which is in the board's language. `slug` stays the English source slug. */
|
|
2759
2785
|
placeHierarchy: {
|
|
@@ -2871,6 +2897,13 @@ interface components {
|
|
|
2871
2897
|
remoteWorldwide: boolean | null;
|
|
2872
2898
|
/** @description ISO 3166-1 alpha-2 codes the remote permit selection covers (derived expansion, mirroring the job detail field of the same name). Empty for worldwide/unconstrained and non-remote jobs. */
|
|
2873
2899
|
remoteWorkPermitCountryCodes: string[];
|
|
2900
|
+
/** @description The remote scopes the employer picked, with the same entries and order as the job detail field of the same name: `[{"type":"continent","value":"Europe","code":"150"},{"type":"country","value":"DE"}]`. Build the card label in the board language from it: name a `country` from its `value` and an area from its `code` with `Intl.DisplayNames`, and fall back to `remoteLocationLabel` for entries you cannot name. `[]` for non-remote jobs and for a remote job that declares no scope. */
|
|
2901
|
+
remotePermits: {
|
|
2902
|
+
type: string;
|
|
2903
|
+
value: string;
|
|
2904
|
+
/** @description UN M.49 area code of a `continent`, `region` or `subregion` entry (e.g. `"150"` for Europe, `"019"` for the Americas, `"155"` for Western Europe). It is a code `Intl.DisplayNames` with `type: "region"` accepts, so a client can name the area in any language: `new Intl.DisplayNames(["de"], { type: "region" }).of("150")` is `"Europa"`. Absent for areas without a standard code (e.g. "Central Europe"), for `world_region` and `custom` entries, and for `country` and `subdivision` entries, whose `value` is already an ISO 3166-1 alpha-2 or ISO 3166-2 code. */
|
|
2905
|
+
code?: string;
|
|
2906
|
+
}[];
|
|
2874
2907
|
salaryMin: number | null;
|
|
2875
2908
|
salaryMax: number | null;
|
|
2876
2909
|
salaryCurrency: string | null;
|
|
@@ -2881,6 +2914,8 @@ interface components {
|
|
|
2881
2914
|
/** @description Plain-text card teaser derived from the job description (HTML stripped, first sentence / word-boundary cut). `null` when there is nothing honest to show. Always present — independent of the `?fields=+description` opt-in for the long-form HTML body. Prefer this over requesting `+description` for list/card renders. */
|
|
2882
2915
|
summary: string | null;
|
|
2883
2916
|
locationLabel: string | null;
|
|
2917
|
+
/** @description Kilometres from the selected `location` to this job’s point. Computed at read time from the listing origin and the search hit — not stored. `null` when the listing has no origin or the job has no point. */
|
|
2918
|
+
distanceKm: number | null;
|
|
2884
2919
|
/** @description Embedded company summary, or `null` if none is attached. */
|
|
2885
2920
|
company: {
|
|
2886
2921
|
slug: string;
|
|
@@ -2891,15 +2926,27 @@ interface components {
|
|
|
2891
2926
|
[key: string]: string | string[] | boolean | number;
|
|
2892
2927
|
};
|
|
2893
2928
|
} | null;
|
|
2894
|
-
/** @description Job categories
|
|
2929
|
+
/** @description Job categories. Show `displayName` and link with `canonicalSlug` (board language); `name` and `slug` stay English. Guaranteed resolvable: every emitted slug resolves via `GET /v1/boards/:identifier/categories/:slug`. */
|
|
2895
2930
|
categories: {
|
|
2931
|
+
/** @description English source slug of the category. Accepted by the jobs `category` filter. */
|
|
2896
2932
|
slug: string;
|
|
2933
|
+
/** @description English source name of the category. */
|
|
2897
2934
|
name: string;
|
|
2935
|
+
/** @description The slug of the category's page in the board language. Equals `slug` when the category has no translation. Link chips with this slug. */
|
|
2936
|
+
canonicalSlug: string;
|
|
2937
|
+
/** @description The category name in the board language, for the chip label. Equals `name` when the category has no translation. */
|
|
2938
|
+
displayName: string;
|
|
2898
2939
|
}[];
|
|
2899
|
-
/** @description Job skills
|
|
2940
|
+
/** @description Job skills. Show `displayName` and link with `canonicalSlug` (board language); `name` and `slug` stay English. Guaranteed resolvable: every emitted slug resolves via `GET /v1/boards/:identifier/skills/:slug`. */
|
|
2900
2941
|
skills: {
|
|
2942
|
+
/** @description English source slug of the skill. Accepted by the jobs `skill` filter. */
|
|
2901
2943
|
slug: string;
|
|
2944
|
+
/** @description English source name of the skill. */
|
|
2902
2945
|
name: string;
|
|
2946
|
+
/** @description The slug of the skill's page in the board language. Equals `slug` when the skill has no translation. Link chips with this slug. */
|
|
2947
|
+
canonicalSlug: string;
|
|
2948
|
+
/** @description The skill name in the board language, for the chip label. Equals `name` when the skill has no translation. */
|
|
2949
|
+
displayName: string;
|
|
2903
2950
|
}[];
|
|
2904
2951
|
/** @description The job's custom-field values of the select, boolean, and number types, keyed by each field's `key`; select values are option `key`s. Resolve labels via the board's `customFields.job` definitions (see `GET /v1/boards/:identifier`). Values of fields no longer defined, and removed options, are omitted; text types are only on the full job (`PublicJob`). `{}` when none. */
|
|
2905
2952
|
customFieldValues: {
|
|
@@ -2978,10 +3025,10 @@ interface components {
|
|
|
2978
3025
|
/** @description Free-text search query matched against job title and description. Up to 200 characters. */
|
|
2979
3026
|
query?: string;
|
|
2980
3027
|
/**
|
|
2981
|
-
* @description Result ordering. `relevance` (default) ranks by search relevance with featured jobs first; `newest` orders by publish date
|
|
3028
|
+
* @description Result ordering. `relevance` (default) ranks by search relevance with featured jobs first; `newest` orders by publish date, `salary_high` by salary (no-salary jobs last), and `distance` nearest-first from `filters.location` (jobs without a point last). `distance` requires a location that resolves to coordinates (`sort_distance_requires_location` otherwise). Any explicit sort unpins featured jobs.
|
|
2982
3029
|
* @enum {string}
|
|
2983
3030
|
*/
|
|
2984
|
-
sort?: "relevance" | "newest" | "salary_high";
|
|
3031
|
+
sort?: "relevance" | "newest" | "salary_high" | "distance";
|
|
2985
3032
|
/** @description Optional faceted filters to narrow search results. Multi-value filters match jobs in any of the supplied values; range filters accept `gte` and `lte` bounds. */
|
|
2986
3033
|
filters?: {
|
|
2987
3034
|
/** @description Only return jobs at any of the given company IDs. Up to 10 values. */
|
|
@@ -3011,7 +3058,7 @@ interface components {
|
|
|
3011
3058
|
*/
|
|
3012
3059
|
lte?: string;
|
|
3013
3060
|
};
|
|
3014
|
-
/** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). Pass `radius` to widen a city or locality to nearby jobs. A place slug from `GET /places/suggest` returns jobs within `radius` km of that place, by default a distance that suits its size. Unresolvable slugs are ignored. */
|
|
3061
|
+
/** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). The slug can also name a country or region remote jobs on the board are open to, as `GET /places?q=` suggests. Pass `radius` to widen a city or locality to nearby jobs. A place slug from `GET /places/suggest` returns jobs within `radius` km of that place, by default a distance that suits its size. Unresolvable slugs are ignored. */
|
|
3015
3062
|
location?: string;
|
|
3016
3063
|
/** @description Widen a city or locality `location` to also return jobs placed in a city or locality within this many kilometres of the place (1–250; decimals allowed, e.g. `8.05` for 5 miles). Omit for jobs in the place itself. Ignored for region and country places, and without `location`. For a place from `GET /places/suggest`, an omitted `radius` uses the place's own default distance: 15 km for a neighbourhood, 25 km for a town, 50 km for a city. */
|
|
3017
3064
|
radius?: number;
|
|
@@ -3077,6 +3124,10 @@ interface components {
|
|
|
3077
3124
|
geo: components["schemas"]["TaxonomyGeo"];
|
|
3078
3125
|
/** @description The board's intro for this category or location page, as sanitized HTML. Absent when the page has none. Show it on page 1 with no filters. */
|
|
3079
3126
|
introHtml?: string;
|
|
3127
|
+
/** @description The board's `<title>` for this category or location page, to use as written in place of your own title on page 1 with no filters. Absent when the board has not set one. */
|
|
3128
|
+
metaTitle?: string;
|
|
3129
|
+
/** @description The board's meta description for this category or location page, to use as written on page 1 with no filters. Absent when the board has not set one. */
|
|
3130
|
+
metaDescription?: string;
|
|
3080
3131
|
/** @description Present, and `true`, when a place slug resolved to a place from `GET /boards/{identifier}/places/suggest` instead of one of the board's places; absent for every other resolution. Its location page lists the jobs within the place's own default distance (pass the slug as the jobs `location` with no `radius`). Index that page only when it lists at least 5 on-site or hybrid jobs: read `count` from `GET /boards/{identifier}/jobs?location={slug}&remoteOption=on_site&remoteOption=hybrid&limit=1`, in parallel with the page's own job read, and emit `noindex, follow` below 5. Remote jobs still list on the page and count in its headline; they only do not count toward indexing. A view with an explicit `radius` stays `noindex, follow`. Only suggested places need this read. */
|
|
3081
3132
|
suggested?: boolean;
|
|
3082
3133
|
/** @description The breadcrumb above a suggested place, country first: its country, its region and, for a neighbourhood or suburb (`geo.placeType` `locality`), its city. Present when `suggested` is `true`, absent otherwise. Render Jobs > each ancestor > the place (`displayName`), with the same BreadcrumbList JSON-LD as for the board's own places; link an ancestor to `/jobs/locations/:canonicalSlug` only when its `canonicalSlug` is not `null`. */
|
|
@@ -3338,6 +3389,8 @@ interface components {
|
|
|
3338
3389
|
parsedAt: string | null;
|
|
3339
3390
|
keepResumeOnFile: boolean | null;
|
|
3340
3391
|
hasResumeOnFile: boolean;
|
|
3392
|
+
/** @description When true, signed-in approved employers on this board receive an expiring `resumeUrl` on `GET /talent/{handle}`. Default false. Distinct from `keepResumeOnFile` (application downloads). */
|
|
3393
|
+
shareWithEmployers: boolean;
|
|
3341
3394
|
file: {
|
|
3342
3395
|
/** @description Short-lived signed download URL. */
|
|
3343
3396
|
url: string;
|
|
@@ -3616,11 +3669,15 @@ interface components {
|
|
|
3616
3669
|
StartConversationBody: {
|
|
3617
3670
|
candidateBoardUserId: string;
|
|
3618
3671
|
body: string;
|
|
3672
|
+
/** @description Approved company whose message credits to use. Omit to retain the default company. */
|
|
3673
|
+
companyId?: string;
|
|
3619
3674
|
/** @description Optional job id. When set, this send is from that job pipeline and may auto-advance Shortlisted to Contacted. */
|
|
3620
3675
|
job?: string;
|
|
3621
3676
|
} | {
|
|
3622
3677
|
candidateHandle: string;
|
|
3623
3678
|
body: string;
|
|
3679
|
+
/** @description Approved company whose message credits to use. Omit to retain the default company. */
|
|
3680
|
+
companyId?: string;
|
|
3624
3681
|
/** @description Optional job id. When set, this send is from that job pipeline and may auto-advance Shortlisted to Contacted. */
|
|
3625
3682
|
job?: string;
|
|
3626
3683
|
};
|
|
@@ -3715,6 +3772,8 @@ interface components {
|
|
|
3715
3772
|
displayName: string | null;
|
|
3716
3773
|
headline: string | null;
|
|
3717
3774
|
location: string | null;
|
|
3775
|
+
/** @description Kilometres from the selected `place` to this candidate’s home point. Computed at read time from the listing origin and the search hit — not stored. `null` when the listing has no origin or the candidate has no point. */
|
|
3776
|
+
distanceKm: number | null;
|
|
3718
3777
|
avatarUrl: string | null;
|
|
3719
3778
|
/** @description Plain-text card teaser derived from `bio` (HTML stripped, first sentence / word-boundary cut). `null` when there is nothing honest to show. Prefer this over `bio` for directory/card renders; cards still lead with `headline` when present. */
|
|
3720
3779
|
summary: string | null;
|
|
@@ -3769,7 +3828,7 @@ interface components {
|
|
|
3769
3828
|
openToRelocate?: boolean;
|
|
3770
3829
|
place?: string;
|
|
3771
3830
|
/** @enum {string} */
|
|
3772
|
-
sort?: "relevance" | "newest";
|
|
3831
|
+
sort?: "relevance" | "newest" | "distance";
|
|
3773
3832
|
seniority?: string;
|
|
3774
3833
|
permitCountry?: string;
|
|
3775
3834
|
interestedRole?: string;
|
|
@@ -3853,6 +3912,8 @@ interface components {
|
|
|
3853
3912
|
* @enum {string|null}
|
|
3854
3913
|
*/
|
|
3855
3914
|
lastActive: "today" | "this_week" | "this_month" | "last_3_months" | "over_3_months" | null;
|
|
3915
|
+
/** @description Expiring signed download URL for the candidate’s stored resume. Only returned to a signed-in approved employer on this board, and only when the candidate opted in to share it with employers and a file is on file; `null` otherwise. Turning sharing off stops new URLs; a URL already issued works until it expires. Never present on directory cards. */
|
|
3916
|
+
resumeUrl: string | null;
|
|
3856
3917
|
};
|
|
3857
3918
|
TalentUnlock: {
|
|
3858
3919
|
/** @enum {string} */
|
|
@@ -4161,6 +4222,10 @@ interface components {
|
|
|
4161
4222
|
label?: string;
|
|
4162
4223
|
hidden?: boolean;
|
|
4163
4224
|
};
|
|
4225
|
+
UpdateResumeBody: {
|
|
4226
|
+
/** @description When true, signed-in approved employers on this board receive an expiring `resumeUrl` on `GET /talent/{handle}`. Distinct from `keepResumeOnFile`. */
|
|
4227
|
+
shareWithEmployers: boolean;
|
|
4228
|
+
};
|
|
4164
4229
|
UpdateSkillsBody: {
|
|
4165
4230
|
skills: string[];
|
|
4166
4231
|
};
|
|
@@ -678,10 +678,14 @@ interface components {
|
|
|
678
678
|
companyCount: number;
|
|
679
679
|
};
|
|
680
680
|
CompanyMarketRef: {
|
|
681
|
-
/** @description
|
|
681
|
+
/** @description English source name of the market. */
|
|
682
682
|
name: string;
|
|
683
683
|
/** @description Source slug for the market. Use it as the `:market` segment of the market-scoped company browse. */
|
|
684
684
|
slug: string;
|
|
685
|
+
/** @description The slug of the market's page in the board language. Equals `slug` when the market has no translation. Link market chips with this slug; the market-scoped company browse resolves it too. */
|
|
686
|
+
canonicalSlug: string;
|
|
687
|
+
/** @description The market name in the board language, for the chip label. Equals `name` when the market has no translation. */
|
|
688
|
+
displayName: string;
|
|
685
689
|
};
|
|
686
690
|
CompanyMember: {
|
|
687
691
|
id: string;
|
|
@@ -1354,6 +1358,8 @@ interface components {
|
|
|
1354
1358
|
/** @enum {string} */
|
|
1355
1359
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
1356
1360
|
value: string;
|
|
1361
|
+
/** @description Ignored on input. Job reads add it to some entries; send it back or leave it out. */
|
|
1362
|
+
code?: string;
|
|
1357
1363
|
}[];
|
|
1358
1364
|
/** @description Where remote candidates must be timezone-compatible. Each entry mirrors the `remotePermits` shape (`world_region`, `continent`, `region`, `subregion`, `country`) plus `timezone` (specific IANA name with optional `plusMinus` ±N hours expansion) and `all` (every timezone: equivalent of `worldwide` for permits). The canonical `{type, value}` set is published at `GET /v1/taxonomies/remote-timezones`. **When omitted on POST**, the server auto-derives this from `remotePermits` (or `[{all,all}]` if neither was provided). **PATCH never auto-re-derives**: once set, only an explicit replacement updates the stored value, even when `remotePermits` changes. Pass `[]` to clear an existing constraint. */
|
|
1359
1365
|
remoteTimezones?: {
|
|
@@ -1427,6 +1433,8 @@ interface components {
|
|
|
1427
1433
|
remotePermits: {
|
|
1428
1434
|
type: string;
|
|
1429
1435
|
value: string;
|
|
1436
|
+
/** @description UN M.49 area code of a `continent`, `region` or `subregion` entry (e.g. `"150"` for Europe, `"019"` for the Americas, `"155"` for Western Europe). It is a code `Intl.DisplayNames` with `type: "region"` accepts, so a client can name the area in any language: `new Intl.DisplayNames(["de"], { type: "region" }).of("150")` is `"Europa"`. Absent for areas without a standard code (e.g. "Central Europe"), for `world_region` and `custom` entries, and for `country` and `subdivision` entries, whose `value` is already an ISO 3166-1 alpha-2 or ISO 3166-2 code. */
|
|
1437
|
+
code?: string;
|
|
1430
1438
|
}[];
|
|
1431
1439
|
/** @description Read-only: derived from `remotePermits`. */
|
|
1432
1440
|
remoteWorldwide: boolean | null;
|
|
@@ -1665,6 +1673,8 @@ interface components {
|
|
|
1665
1673
|
/** @enum {string} */
|
|
1666
1674
|
type: "worldwide" | "world_region" | "continent" | "region" | "subregion" | "subdivision" | "country" | "custom";
|
|
1667
1675
|
value: string;
|
|
1676
|
+
/** @description Ignored on input. Job reads add it to some entries; send it back or leave it out. */
|
|
1677
|
+
code?: string;
|
|
1668
1678
|
}[];
|
|
1669
1679
|
/** @description Where remote candidates must be timezone-compatible. Each entry mirrors the `remotePermits` shape (`world_region`, `continent`, `region`, `subregion`, `country`) plus `timezone` (specific IANA name with optional `plusMinus` ±N hours expansion) and `all` (every timezone: equivalent of `worldwide` for permits). The canonical `{type, value}` set is published at `GET /v1/taxonomies/remote-timezones`. **When omitted on POST**, the server auto-derives this from `remotePermits` (or `[{all,all}]` if neither was provided). **PATCH never auto-re-derives**: once set, only an explicit replacement updates the stored value, even when `remotePermits` changes. Pass `[]` to clear an existing constraint. */
|
|
1670
1680
|
remoteTimezones?: {
|
|
@@ -2709,6 +2719,8 @@ interface components {
|
|
|
2709
2719
|
remotePermits: {
|
|
2710
2720
|
type: string;
|
|
2711
2721
|
value: string;
|
|
2722
|
+
/** @description UN M.49 area code of a `continent`, `region` or `subregion` entry (e.g. `"150"` for Europe, `"019"` for the Americas, `"155"` for Western Europe). It is a code `Intl.DisplayNames` with `type: "region"` accepts, so a client can name the area in any language: `new Intl.DisplayNames(["de"], { type: "region" }).of("150")` is `"Europa"`. Absent for areas without a standard code (e.g. "Central Europe"), for `world_region` and `custom` entries, and for `country` and `subdivision` entries, whose `value` is already an ISO 3166-1 alpha-2 or ISO 3166-2 code. */
|
|
2723
|
+
code?: string;
|
|
2712
2724
|
}[];
|
|
2713
2725
|
/** @description Read-only: derived from `remotePermits`. `true` only when the authored selection is a single `{type:"worldwide"}` entry. */
|
|
2714
2726
|
remoteWorldwide: boolean | null;
|
|
@@ -2717,6 +2729,8 @@ interface components {
|
|
|
2717
2729
|
type: string;
|
|
2718
2730
|
value: string;
|
|
2719
2731
|
plusMinus?: number;
|
|
2732
|
+
/** @description Display name of the entry in the board language: the country, continent, region or subregion name ("Europa"), or the time zone name ("Mitteleuropäische Zeit"). A `world_region` shows its acronym ("EMEA"; the full English name on an English board), `all` the name of the world ("Welt"), and a group without a localized name its English `value`. Render this instead of `value`. */
|
|
2733
|
+
label: string;
|
|
2720
2734
|
}[];
|
|
2721
2735
|
/** @description Read-only: derived from `remoteTimezones`. UTC hour offsets used by the job-search index. */
|
|
2722
2736
|
remoteAllowedTzOffsets: number[];
|
|
@@ -2743,17 +2757,29 @@ interface components {
|
|
|
2743
2757
|
/** @description How often the candidate must be in-office over `inOfficePeriod`, or `null` if not specified. */
|
|
2744
2758
|
inOfficeFrequency: number | null;
|
|
2745
2759
|
company: components["schemas"]["JobCompany"];
|
|
2746
|
-
/** @description Physical office locations associated with the job. */
|
|
2760
|
+
/** @description Physical office locations associated with the job. Each `displayName` is in the board's language (city, region and country, each where a translation exists); `city`, `region` and `country` stay as stored. */
|
|
2747
2761
|
officeLocations: components["schemas"]["JobOfficeLocation"][];
|
|
2748
|
-
/** @description Resolved job categories
|
|
2762
|
+
/** @description Resolved job categories: same shape as the card; names joined server-side. Show `displayName` and link with `canonicalSlug` (board language); `name` and `slug` stay English. Guaranteed resolvable: every emitted slug resolves via `GET /v1/boards/:identifier/categories/:slug` — consumers never need to re-verify before linking. */
|
|
2749
2763
|
categories: {
|
|
2764
|
+
/** @description English source slug of the category. Accepted by the jobs `category` filter. */
|
|
2750
2765
|
slug: string;
|
|
2766
|
+
/** @description English source name of the category. */
|
|
2751
2767
|
name: string;
|
|
2768
|
+
/** @description The slug of the category's page in the board language. Equals `slug` when the category has no translation. Link chips with this slug. */
|
|
2769
|
+
canonicalSlug: string;
|
|
2770
|
+
/** @description The category name in the board language, for the chip label. Equals `name` when the category has no translation. */
|
|
2771
|
+
displayName: string;
|
|
2752
2772
|
}[];
|
|
2753
|
-
/** @description Resolved job skills
|
|
2773
|
+
/** @description Resolved job skills. Show `displayName` and link with `canonicalSlug` (board language); `name` and `slug` stay English. Guaranteed resolvable: every emitted slug resolves via `GET /v1/boards/:identifier/skills/:slug` — consumers never need to re-verify before linking. */
|
|
2754
2774
|
skills: {
|
|
2775
|
+
/** @description English source slug of the skill. Accepted by the jobs `skill` filter. */
|
|
2755
2776
|
slug: string;
|
|
2777
|
+
/** @description English source name of the skill. */
|
|
2756
2778
|
name: string;
|
|
2779
|
+
/** @description The slug of the skill's page in the board language. Equals `slug` when the skill has no translation. Link chips with this slug. */
|
|
2780
|
+
canonicalSlug: string;
|
|
2781
|
+
/** @description The skill name in the board language, for the chip label. Equals `name` when the skill has no translation. */
|
|
2782
|
+
displayName: string;
|
|
2757
2783
|
}[];
|
|
2758
2784
|
/** @description Place ancestor chain (country → region → city) for the breadcrumb. Link each entry with `canonicalSlug`; show `name`, which is in the board's language. `slug` stays the English source slug. */
|
|
2759
2785
|
placeHierarchy: {
|
|
@@ -2871,6 +2897,13 @@ interface components {
|
|
|
2871
2897
|
remoteWorldwide: boolean | null;
|
|
2872
2898
|
/** @description ISO 3166-1 alpha-2 codes the remote permit selection covers (derived expansion, mirroring the job detail field of the same name). Empty for worldwide/unconstrained and non-remote jobs. */
|
|
2873
2899
|
remoteWorkPermitCountryCodes: string[];
|
|
2900
|
+
/** @description The remote scopes the employer picked, with the same entries and order as the job detail field of the same name: `[{"type":"continent","value":"Europe","code":"150"},{"type":"country","value":"DE"}]`. Build the card label in the board language from it: name a `country` from its `value` and an area from its `code` with `Intl.DisplayNames`, and fall back to `remoteLocationLabel` for entries you cannot name. `[]` for non-remote jobs and for a remote job that declares no scope. */
|
|
2901
|
+
remotePermits: {
|
|
2902
|
+
type: string;
|
|
2903
|
+
value: string;
|
|
2904
|
+
/** @description UN M.49 area code of a `continent`, `region` or `subregion` entry (e.g. `"150"` for Europe, `"019"` for the Americas, `"155"` for Western Europe). It is a code `Intl.DisplayNames` with `type: "region"` accepts, so a client can name the area in any language: `new Intl.DisplayNames(["de"], { type: "region" }).of("150")` is `"Europa"`. Absent for areas without a standard code (e.g. "Central Europe"), for `world_region` and `custom` entries, and for `country` and `subdivision` entries, whose `value` is already an ISO 3166-1 alpha-2 or ISO 3166-2 code. */
|
|
2905
|
+
code?: string;
|
|
2906
|
+
}[];
|
|
2874
2907
|
salaryMin: number | null;
|
|
2875
2908
|
salaryMax: number | null;
|
|
2876
2909
|
salaryCurrency: string | null;
|
|
@@ -2881,6 +2914,8 @@ interface components {
|
|
|
2881
2914
|
/** @description Plain-text card teaser derived from the job description (HTML stripped, first sentence / word-boundary cut). `null` when there is nothing honest to show. Always present — independent of the `?fields=+description` opt-in for the long-form HTML body. Prefer this over requesting `+description` for list/card renders. */
|
|
2882
2915
|
summary: string | null;
|
|
2883
2916
|
locationLabel: string | null;
|
|
2917
|
+
/** @description Kilometres from the selected `location` to this job’s point. Computed at read time from the listing origin and the search hit — not stored. `null` when the listing has no origin or the job has no point. */
|
|
2918
|
+
distanceKm: number | null;
|
|
2884
2919
|
/** @description Embedded company summary, or `null` if none is attached. */
|
|
2885
2920
|
company: {
|
|
2886
2921
|
slug: string;
|
|
@@ -2891,15 +2926,27 @@ interface components {
|
|
|
2891
2926
|
[key: string]: string | string[] | boolean | number;
|
|
2892
2927
|
};
|
|
2893
2928
|
} | null;
|
|
2894
|
-
/** @description Job categories
|
|
2929
|
+
/** @description Job categories. Show `displayName` and link with `canonicalSlug` (board language); `name` and `slug` stay English. Guaranteed resolvable: every emitted slug resolves via `GET /v1/boards/:identifier/categories/:slug`. */
|
|
2895
2930
|
categories: {
|
|
2931
|
+
/** @description English source slug of the category. Accepted by the jobs `category` filter. */
|
|
2896
2932
|
slug: string;
|
|
2933
|
+
/** @description English source name of the category. */
|
|
2897
2934
|
name: string;
|
|
2935
|
+
/** @description The slug of the category's page in the board language. Equals `slug` when the category has no translation. Link chips with this slug. */
|
|
2936
|
+
canonicalSlug: string;
|
|
2937
|
+
/** @description The category name in the board language, for the chip label. Equals `name` when the category has no translation. */
|
|
2938
|
+
displayName: string;
|
|
2898
2939
|
}[];
|
|
2899
|
-
/** @description Job skills
|
|
2940
|
+
/** @description Job skills. Show `displayName` and link with `canonicalSlug` (board language); `name` and `slug` stay English. Guaranteed resolvable: every emitted slug resolves via `GET /v1/boards/:identifier/skills/:slug`. */
|
|
2900
2941
|
skills: {
|
|
2942
|
+
/** @description English source slug of the skill. Accepted by the jobs `skill` filter. */
|
|
2901
2943
|
slug: string;
|
|
2944
|
+
/** @description English source name of the skill. */
|
|
2902
2945
|
name: string;
|
|
2946
|
+
/** @description The slug of the skill's page in the board language. Equals `slug` when the skill has no translation. Link chips with this slug. */
|
|
2947
|
+
canonicalSlug: string;
|
|
2948
|
+
/** @description The skill name in the board language, for the chip label. Equals `name` when the skill has no translation. */
|
|
2949
|
+
displayName: string;
|
|
2903
2950
|
}[];
|
|
2904
2951
|
/** @description The job's custom-field values of the select, boolean, and number types, keyed by each field's `key`; select values are option `key`s. Resolve labels via the board's `customFields.job` definitions (see `GET /v1/boards/:identifier`). Values of fields no longer defined, and removed options, are omitted; text types are only on the full job (`PublicJob`). `{}` when none. */
|
|
2905
2952
|
customFieldValues: {
|
|
@@ -2978,10 +3025,10 @@ interface components {
|
|
|
2978
3025
|
/** @description Free-text search query matched against job title and description. Up to 200 characters. */
|
|
2979
3026
|
query?: string;
|
|
2980
3027
|
/**
|
|
2981
|
-
* @description Result ordering. `relevance` (default) ranks by search relevance with featured jobs first; `newest` orders by publish date
|
|
3028
|
+
* @description Result ordering. `relevance` (default) ranks by search relevance with featured jobs first; `newest` orders by publish date, `salary_high` by salary (no-salary jobs last), and `distance` nearest-first from `filters.location` (jobs without a point last). `distance` requires a location that resolves to coordinates (`sort_distance_requires_location` otherwise). Any explicit sort unpins featured jobs.
|
|
2982
3029
|
* @enum {string}
|
|
2983
3030
|
*/
|
|
2984
|
-
sort?: "relevance" | "newest" | "salary_high";
|
|
3031
|
+
sort?: "relevance" | "newest" | "salary_high" | "distance";
|
|
2985
3032
|
/** @description Optional faceted filters to narrow search results. Multi-value filters match jobs in any of the supplied values; range filters accept `gte` and `lte` bounds. */
|
|
2986
3033
|
filters?: {
|
|
2987
3034
|
/** @description Only return jobs at any of the given company IDs. Up to 10 values. */
|
|
@@ -3011,7 +3058,7 @@ interface components {
|
|
|
3011
3058
|
*/
|
|
3012
3059
|
lte?: string;
|
|
3013
3060
|
};
|
|
3014
|
-
/** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). Pass `radius` to widen a city or locality to nearby jobs. A place slug from `GET /places/suggest` returns jobs within `radius` km of that place, by default a distance that suits its size. Unresolvable slugs are ignored. */
|
|
3061
|
+
/** @description Only return jobs in the place with this slug, including the places inside it (a region includes its cities). The slug can also name a country or region remote jobs on the board are open to, as `GET /places?q=` suggests. Pass `radius` to widen a city or locality to nearby jobs. A place slug from `GET /places/suggest` returns jobs within `radius` km of that place, by default a distance that suits its size. Unresolvable slugs are ignored. */
|
|
3015
3062
|
location?: string;
|
|
3016
3063
|
/** @description Widen a city or locality `location` to also return jobs placed in a city or locality within this many kilometres of the place (1–250; decimals allowed, e.g. `8.05` for 5 miles). Omit for jobs in the place itself. Ignored for region and country places, and without `location`. For a place from `GET /places/suggest`, an omitted `radius` uses the place's own default distance: 15 km for a neighbourhood, 25 km for a town, 50 km for a city. */
|
|
3017
3064
|
radius?: number;
|
|
@@ -3077,6 +3124,10 @@ interface components {
|
|
|
3077
3124
|
geo: components["schemas"]["TaxonomyGeo"];
|
|
3078
3125
|
/** @description The board's intro for this category or location page, as sanitized HTML. Absent when the page has none. Show it on page 1 with no filters. */
|
|
3079
3126
|
introHtml?: string;
|
|
3127
|
+
/** @description The board's `<title>` for this category or location page, to use as written in place of your own title on page 1 with no filters. Absent when the board has not set one. */
|
|
3128
|
+
metaTitle?: string;
|
|
3129
|
+
/** @description The board's meta description for this category or location page, to use as written on page 1 with no filters. Absent when the board has not set one. */
|
|
3130
|
+
metaDescription?: string;
|
|
3080
3131
|
/** @description Present, and `true`, when a place slug resolved to a place from `GET /boards/{identifier}/places/suggest` instead of one of the board's places; absent for every other resolution. Its location page lists the jobs within the place's own default distance (pass the slug as the jobs `location` with no `radius`). Index that page only when it lists at least 5 on-site or hybrid jobs: read `count` from `GET /boards/{identifier}/jobs?location={slug}&remoteOption=on_site&remoteOption=hybrid&limit=1`, in parallel with the page's own job read, and emit `noindex, follow` below 5. Remote jobs still list on the page and count in its headline; they only do not count toward indexing. A view with an explicit `radius` stays `noindex, follow`. Only suggested places need this read. */
|
|
3081
3132
|
suggested?: boolean;
|
|
3082
3133
|
/** @description The breadcrumb above a suggested place, country first: its country, its region and, for a neighbourhood or suburb (`geo.placeType` `locality`), its city. Present when `suggested` is `true`, absent otherwise. Render Jobs > each ancestor > the place (`displayName`), with the same BreadcrumbList JSON-LD as for the board's own places; link an ancestor to `/jobs/locations/:canonicalSlug` only when its `canonicalSlug` is not `null`. */
|
|
@@ -3338,6 +3389,8 @@ interface components {
|
|
|
3338
3389
|
parsedAt: string | null;
|
|
3339
3390
|
keepResumeOnFile: boolean | null;
|
|
3340
3391
|
hasResumeOnFile: boolean;
|
|
3392
|
+
/** @description When true, signed-in approved employers on this board receive an expiring `resumeUrl` on `GET /talent/{handle}`. Default false. Distinct from `keepResumeOnFile` (application downloads). */
|
|
3393
|
+
shareWithEmployers: boolean;
|
|
3341
3394
|
file: {
|
|
3342
3395
|
/** @description Short-lived signed download URL. */
|
|
3343
3396
|
url: string;
|
|
@@ -3616,11 +3669,15 @@ interface components {
|
|
|
3616
3669
|
StartConversationBody: {
|
|
3617
3670
|
candidateBoardUserId: string;
|
|
3618
3671
|
body: string;
|
|
3672
|
+
/** @description Approved company whose message credits to use. Omit to retain the default company. */
|
|
3673
|
+
companyId?: string;
|
|
3619
3674
|
/** @description Optional job id. When set, this send is from that job pipeline and may auto-advance Shortlisted to Contacted. */
|
|
3620
3675
|
job?: string;
|
|
3621
3676
|
} | {
|
|
3622
3677
|
candidateHandle: string;
|
|
3623
3678
|
body: string;
|
|
3679
|
+
/** @description Approved company whose message credits to use. Omit to retain the default company. */
|
|
3680
|
+
companyId?: string;
|
|
3624
3681
|
/** @description Optional job id. When set, this send is from that job pipeline and may auto-advance Shortlisted to Contacted. */
|
|
3625
3682
|
job?: string;
|
|
3626
3683
|
};
|
|
@@ -3715,6 +3772,8 @@ interface components {
|
|
|
3715
3772
|
displayName: string | null;
|
|
3716
3773
|
headline: string | null;
|
|
3717
3774
|
location: string | null;
|
|
3775
|
+
/** @description Kilometres from the selected `place` to this candidate’s home point. Computed at read time from the listing origin and the search hit — not stored. `null` when the listing has no origin or the candidate has no point. */
|
|
3776
|
+
distanceKm: number | null;
|
|
3718
3777
|
avatarUrl: string | null;
|
|
3719
3778
|
/** @description Plain-text card teaser derived from `bio` (HTML stripped, first sentence / word-boundary cut). `null` when there is nothing honest to show. Prefer this over `bio` for directory/card renders; cards still lead with `headline` when present. */
|
|
3720
3779
|
summary: string | null;
|
|
@@ -3769,7 +3828,7 @@ interface components {
|
|
|
3769
3828
|
openToRelocate?: boolean;
|
|
3770
3829
|
place?: string;
|
|
3771
3830
|
/** @enum {string} */
|
|
3772
|
-
sort?: "relevance" | "newest";
|
|
3831
|
+
sort?: "relevance" | "newest" | "distance";
|
|
3773
3832
|
seniority?: string;
|
|
3774
3833
|
permitCountry?: string;
|
|
3775
3834
|
interestedRole?: string;
|
|
@@ -3853,6 +3912,8 @@ interface components {
|
|
|
3853
3912
|
* @enum {string|null}
|
|
3854
3913
|
*/
|
|
3855
3914
|
lastActive: "today" | "this_week" | "this_month" | "last_3_months" | "over_3_months" | null;
|
|
3915
|
+
/** @description Expiring signed download URL for the candidate’s stored resume. Only returned to a signed-in approved employer on this board, and only when the candidate opted in to share it with employers and a file is on file; `null` otherwise. Turning sharing off stops new URLs; a URL already issued works until it expires. Never present on directory cards. */
|
|
3916
|
+
resumeUrl: string | null;
|
|
3856
3917
|
};
|
|
3857
3918
|
TalentUnlock: {
|
|
3858
3919
|
/** @enum {string} */
|
|
@@ -4161,6 +4222,10 @@ interface components {
|
|
|
4161
4222
|
label?: string;
|
|
4162
4223
|
hidden?: boolean;
|
|
4163
4224
|
};
|
|
4225
|
+
UpdateResumeBody: {
|
|
4226
|
+
/** @description When true, signed-in approved employers on this board receive an expiring `resumeUrl` on `GET /talent/{handle}`. Distinct from `keepResumeOnFile`. */
|
|
4227
|
+
shareWithEmployers: boolean;
|
|
4228
|
+
};
|
|
4164
4229
|
UpdateSkillsBody: {
|
|
4165
4230
|
skills: string[];
|
|
4166
4231
|
};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-QzRtIJNE.js';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-BSc8fWRd.js';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* A market (sector) a company operates in — English name + source slug, plus
|
|
7
|
+
* its board-language `displayName` and the `canonicalSlug` its page lives at.
|
|
8
|
+
*/
|
|
6
9
|
type CompanyMarketRef = Schemas['CompanyMarketRef'];
|
|
7
10
|
/** The company DETAIL shape — `PublicCompany` plus `markets` (detail-only). */
|
|
8
11
|
type PublicCompanyDetail = Schemas['CompanyPublicDetail'];
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-QzRtIJNE.mjs';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-Cu5SX_Yp.mjs';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* A market (sector) a company operates in — English name + source slug, plus
|
|
7
|
+
* its board-language `displayName` and the `canonicalSlug` its page lives at.
|
|
8
|
+
*/
|
|
6
9
|
type CompanyMarketRef = Schemas['CompanyMarketRef'];
|
|
7
10
|
/** The company DETAIL shape — `PublicCompany` plus `markets` (detail-only). */
|
|
8
11
|
type PublicCompanyDetail = Schemas['CompanyPublicDetail'];
|
|
@@ -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-
|
|
2
|
-
import { P as PublicJob } from './jobs-
|
|
1
|
+
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-Dc9RJzZs.mjs';
|
|
2
|
+
import { P as PublicJob } from './jobs-Cu5SX_Yp.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|