@cavuno/board 4.48.0 → 4.50.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 +30 -0
- package/README.md +19 -0
- package/dist/{_spec-Fw9b79TI.d.mts → _spec-Dvlsj5V6.d.mts} +12 -2
- package/dist/{_spec-Fw9b79TI.d.ts → _spec-Dvlsj5V6.d.ts} +12 -2
- package/dist/{blog-Dlyky5Eo.d.mts → blog-DhlbCKam.d.mts} +1 -1
- package/dist/{blog-DldIXX6n.d.ts → blog-WtDJZV-Z.d.ts} +1 -1
- package/dist/{board-B1Ueww2w.d.ts → board-BiKb5_ZM.d.ts} +2 -2
- package/dist/{board-DkwbMZdt.d.mts → board-CIbqqcEg.d.mts} +2 -2
- package/dist/{breadcrumbs-Bj8SieZi.d.mts → breadcrumbs-212hOj5L.d.mts} +2 -2
- package/dist/{breadcrumbs-CzFiddAt.d.ts → breadcrumbs-B0QBK24H.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/format.d.mts +4 -4
- package/dist/format.d.ts +4 -4
- package/dist/index.d.mts +60 -15
- package/dist/index.d.ts +60 -15
- package/dist/index.js +43 -4
- package/dist/index.mjs +43 -4
- package/dist/{jobs-rnatMRvm.d.ts → jobs-NgZT_lvs.d.mts} +29 -3
- package/dist/{jobs-oSTStcbC.d.mts → jobs-roZu2VmM.d.ts} +29 -3
- package/dist/{search-CKvtGE6t.d.ts → search-DGuJBU-G.d.ts} +1 -1
- package/dist/{search-uiAE7AFt.d.mts → search-Dlo0GUG5.d.mts} +1 -1
- package/dist/{seo-Cz0544dX.d.mts → seo-BDZfybrw.d.mts} +1 -1
- package/dist/{seo-C2WvBFEi.d.ts → seo-DcrK1vzk.d.ts} +1 -1
- package/dist/seo-files.d.mts +2 -2
- package/dist/seo-files.d.ts +2 -2
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- 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-jobs/SKILL.md +33 -3
- package/skills/cavuno-board-setup/SKILL.md +13 -0
- package/skills/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,36 @@
|
|
|
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.50.0 — 2026-10-19
|
|
7
|
+
|
|
8
|
+
- New `board.taxonomy.places.suggest({ q, near, limit })`
|
|
9
|
+
(`GET /places/suggest`): suggests any town, city or neighbourhood by name,
|
|
10
|
+
not only places the board's jobs use, on boards where place search is on.
|
|
11
|
+
Pass `near` (`{ lat, lng }`, the visitor's approximate location) to rank
|
|
12
|
+
nearby places first. Each result is a `PublicPlace` with `jobCount` 0. Its
|
|
13
|
+
`slug` resolves with `board.taxonomy.places.resolve()` and works as the jobs
|
|
14
|
+
`location` filter, which then searches a radius around the place; without
|
|
15
|
+
`radius` that is 15 km for a neighbourhood, 25 km for a town and 50 km for a
|
|
16
|
+
city. A suggested place's `id` is not a `locationId` for job posting or
|
|
17
|
+
profiles. Where place search is off, `suggest` returns an empty list.
|
|
18
|
+
- The board context has `features.placeSuggestions`: `true` where suggestions
|
|
19
|
+
are on. Check it before calling `suggest`.
|
|
20
|
+
- A jobs, search or talent request whose `location` is a suggested place
|
|
21
|
+
returns 503 `locations_unavailable` when the place cannot be looked up
|
|
22
|
+
right now.
|
|
23
|
+
- Removing an employer pipeline stage that still holds applicants returns 422
|
|
24
|
+
`employer_ats_unprocessable`; move the applicants to another stage first.
|
|
25
|
+
|
|
26
|
+
## 4.49.0 — 2026-10-17
|
|
27
|
+
|
|
28
|
+
- The generated API types include `submitAgentFeedback` (`POST /v1/feedback`):
|
|
29
|
+
coding agents can report anything in the Board API or SDK that got in their
|
|
30
|
+
way, as an Agent Feedback Protocol v0.1 report. No credentials are needed;
|
|
31
|
+
the discovery document is at
|
|
32
|
+
`https://api.cavuno.com/.well-known/agent-feedback`.
|
|
33
|
+
- The README and the `cavuno-board-setup` skill explain how to report a
|
|
34
|
+
problem.
|
|
35
|
+
|
|
6
36
|
## 4.48.0 — 2026-10-15
|
|
7
37
|
|
|
8
38
|
- Each `placeHierarchy` entry on `board.jobs.retrieve()` has a
|
package/README.md
CHANGED
|
@@ -119,6 +119,25 @@ Then ask your agent to set up the Cavuno board using the installed
|
|
|
119
119
|
[Set up with an agent](https://cavuno.com/docs/sdk/installing/agent)
|
|
120
120
|
for the review and verification workflow.
|
|
121
121
|
|
|
122
|
+
## Reporting problems
|
|
123
|
+
|
|
124
|
+
Coding agents (and people) can report anything in the Board API or SDK that
|
|
125
|
+
got in the way: a missing capability, unclear documentation, a surprising
|
|
126
|
+
response or an unhelpful error. Send an
|
|
127
|
+
[Agent Feedback Protocol v0.1](https://trybackloop.com/spec/) report to
|
|
128
|
+
`POST https://api.cavuno.com/v1/feedback`; no credentials are needed, and the
|
|
129
|
+
discovery document is at `https://api.cavuno.com/.well-known/agent-feedback`.
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
curl https://api.cavuno.com/v1/feedback \
|
|
133
|
+
-X POST \
|
|
134
|
+
-H "Content-Type: application/json" \
|
|
135
|
+
-d '{ "type": "missing_capability", "goal": "What you were trying to do", "message": "What got in the way", "agent": { "name": "my-agent", "model": "model-name" } }'
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
`type`, `goal` and `message` are required. Up to 20 reports every 5 minutes.
|
|
139
|
+
Never include credentials or personal data.
|
|
140
|
+
|
|
122
141
|
## Resources
|
|
123
142
|
|
|
124
143
|
- [SDK guides and reference](https://cavuno.com/docs/sdk)
|
|
@@ -2009,6 +2009,8 @@ interface components {
|
|
|
2009
2009
|
avgSalaryMin: number;
|
|
2010
2010
|
avgSalaryMax: number;
|
|
2011
2011
|
jobCount: number;
|
|
2012
|
+
/** @description ISO 4217 code of the amounts: the board's salary currency (USD unless the board set another). */
|
|
2013
|
+
currency?: string;
|
|
2012
2014
|
}[];
|
|
2013
2015
|
};
|
|
2014
2016
|
LocationTitlesIndex: {
|
|
@@ -2023,6 +2025,8 @@ interface components {
|
|
|
2023
2025
|
avgSalaryMin: number;
|
|
2024
2026
|
avgSalaryMax: number;
|
|
2025
2027
|
jobCount: number;
|
|
2028
|
+
/** @description ISO 4217 code of the amounts: the board's salary currency (USD unless the board set another). */
|
|
2029
|
+
currency?: string;
|
|
2026
2030
|
}[];
|
|
2027
2031
|
};
|
|
2028
2032
|
MarketSuggestion: {
|
|
@@ -2425,6 +2429,8 @@ interface components {
|
|
|
2425
2429
|
messaging: boolean;
|
|
2426
2430
|
/** @description Whether the board's public contact form is live. Matches `enabled` on `GET /v1/boards/{identifier}/contact`, so chrome can decide whether to link to the contact page from this context alone. When `false`, `POST /contact` rejects. */
|
|
2427
2431
|
contactPage: boolean;
|
|
2432
|
+
/** @description Whether `GET /v1/boards/{identifier}/places/suggest` suggests any place on this board (cities, towns and suburbs beyond the board's own places). When `false` it returns an empty list: offer only the board's places (`GET /places?q=`) and do not call it. */
|
|
2433
|
+
placeSuggestions: boolean;
|
|
2428
2434
|
};
|
|
2429
2435
|
/**
|
|
2430
2436
|
* @description How the operator charges employers for the candidate directory. `paid_messaging` leaves profiles fully visible and spends a credit on a first cold message; `paid_unlocks_and_messaging` also redacts directory cards and gates the opaque `/p/{id}` profile route behind an unlock credit. `null` means the operator has not chosen explicitly, in which case infer it from the published `talent_access` plans: any plan granting profile unlocks means `paid_unlocks_and_messaging`, otherwise `paid_messaging`. The paywall is inert regardless when the board publishes no talent plan. An anonymous viewer has no entitlement read to derive this from, so it ships here rather than only on `me/talent-access`.
|
|
@@ -2948,10 +2954,12 @@ interface components {
|
|
|
2948
2954
|
*/
|
|
2949
2955
|
lte?: string;
|
|
2950
2956
|
};
|
|
2951
|
-
/** @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. Unresolvable slugs are ignored. */
|
|
2957
|
+
/** @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. */
|
|
2952
2958
|
location?: string;
|
|
2953
|
-
/** @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`. */
|
|
2959
|
+
/** @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. */
|
|
2954
2960
|
radius?: number;
|
|
2961
|
+
/** @description When `true` and `radius` is omitted, widen a city or locality `location` to the market default distance, computed from the resolved place: 25 miles (40.2336 km) in the US, GB, LR and MM, 50 km elsewhere. Regions, countries and places without coordinates are not widened. An explicit `radius` wins. A place from `places/suggest` always uses its own default (15 km neighbourhood, 25 km town, 50 km city), with or without `defaultRadius`. */
|
|
2962
|
+
defaultRadius?: boolean;
|
|
2955
2963
|
/** @description Public custom job fields. Clauses are AND-matched; values within a clause are OR-matched. Up to 10 clauses and 10 values per clause. */
|
|
2956
2964
|
customFields?: {
|
|
2957
2965
|
key: string;
|
|
@@ -3295,6 +3303,8 @@ interface components {
|
|
|
3295
3303
|
avgSalaryMin: number;
|
|
3296
3304
|
avgSalaryMax: number;
|
|
3297
3305
|
jobCount: number;
|
|
3306
|
+
/** @description ISO 4217 code of the amounts: the board's salary currency (USD unless the board set another). */
|
|
3307
|
+
currency?: string;
|
|
3298
3308
|
};
|
|
3299
3309
|
SalarySkillIndexItem: {
|
|
3300
3310
|
/** @enum {string} */
|
|
@@ -2009,6 +2009,8 @@ interface components {
|
|
|
2009
2009
|
avgSalaryMin: number;
|
|
2010
2010
|
avgSalaryMax: number;
|
|
2011
2011
|
jobCount: number;
|
|
2012
|
+
/** @description ISO 4217 code of the amounts: the board's salary currency (USD unless the board set another). */
|
|
2013
|
+
currency?: string;
|
|
2012
2014
|
}[];
|
|
2013
2015
|
};
|
|
2014
2016
|
LocationTitlesIndex: {
|
|
@@ -2023,6 +2025,8 @@ interface components {
|
|
|
2023
2025
|
avgSalaryMin: number;
|
|
2024
2026
|
avgSalaryMax: number;
|
|
2025
2027
|
jobCount: number;
|
|
2028
|
+
/** @description ISO 4217 code of the amounts: the board's salary currency (USD unless the board set another). */
|
|
2029
|
+
currency?: string;
|
|
2026
2030
|
}[];
|
|
2027
2031
|
};
|
|
2028
2032
|
MarketSuggestion: {
|
|
@@ -2425,6 +2429,8 @@ interface components {
|
|
|
2425
2429
|
messaging: boolean;
|
|
2426
2430
|
/** @description Whether the board's public contact form is live. Matches `enabled` on `GET /v1/boards/{identifier}/contact`, so chrome can decide whether to link to the contact page from this context alone. When `false`, `POST /contact` rejects. */
|
|
2427
2431
|
contactPage: boolean;
|
|
2432
|
+
/** @description Whether `GET /v1/boards/{identifier}/places/suggest` suggests any place on this board (cities, towns and suburbs beyond the board's own places). When `false` it returns an empty list: offer only the board's places (`GET /places?q=`) and do not call it. */
|
|
2433
|
+
placeSuggestions: boolean;
|
|
2428
2434
|
};
|
|
2429
2435
|
/**
|
|
2430
2436
|
* @description How the operator charges employers for the candidate directory. `paid_messaging` leaves profiles fully visible and spends a credit on a first cold message; `paid_unlocks_and_messaging` also redacts directory cards and gates the opaque `/p/{id}` profile route behind an unlock credit. `null` means the operator has not chosen explicitly, in which case infer it from the published `talent_access` plans: any plan granting profile unlocks means `paid_unlocks_and_messaging`, otherwise `paid_messaging`. The paywall is inert regardless when the board publishes no talent plan. An anonymous viewer has no entitlement read to derive this from, so it ships here rather than only on `me/talent-access`.
|
|
@@ -2948,10 +2954,12 @@ interface components {
|
|
|
2948
2954
|
*/
|
|
2949
2955
|
lte?: string;
|
|
2950
2956
|
};
|
|
2951
|
-
/** @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. Unresolvable slugs are ignored. */
|
|
2957
|
+
/** @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. */
|
|
2952
2958
|
location?: string;
|
|
2953
|
-
/** @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`. */
|
|
2959
|
+
/** @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. */
|
|
2954
2960
|
radius?: number;
|
|
2961
|
+
/** @description When `true` and `radius` is omitted, widen a city or locality `location` to the market default distance, computed from the resolved place: 25 miles (40.2336 km) in the US, GB, LR and MM, 50 km elsewhere. Regions, countries and places without coordinates are not widened. An explicit `radius` wins. A place from `places/suggest` always uses its own default (15 km neighbourhood, 25 km town, 50 km city), with or without `defaultRadius`. */
|
|
2962
|
+
defaultRadius?: boolean;
|
|
2955
2963
|
/** @description Public custom job fields. Clauses are AND-matched; values within a clause are OR-matched. Up to 10 clauses and 10 values per clause. */
|
|
2956
2964
|
customFields?: {
|
|
2957
2965
|
key: string;
|
|
@@ -3295,6 +3303,8 @@ interface components {
|
|
|
3295
3303
|
avgSalaryMin: number;
|
|
3296
3304
|
avgSalaryMax: number;
|
|
3297
3305
|
jobCount: number;
|
|
3306
|
+
/** @description ISO 4217 code of the amounts: the board's salary currency (USD unless the board set another). */
|
|
3307
|
+
currency?: string;
|
|
3298
3308
|
};
|
|
3299
3309
|
SalarySkillIndexItem: {
|
|
3300
3310
|
/** @enum {string} */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope,
|
|
1
|
+
import { S as Schemas } from './_spec-Dvlsj5V6.js';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-roZu2VmM.js';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/** A market (sector) a company operates in — name + its source slug. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope,
|
|
1
|
+
import { S as Schemas } from './_spec-Dvlsj5V6.mjs';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, a as CustomFieldFilter, O as ObjectReferenceFilter } from './jobs-NgZT_lvs.mjs';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/** A market (sector) a company operates in — name + its source slug. */
|
|
@@ -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-CIbqqcEg.mjs';
|
|
2
|
+
import { P as PublicJob } from './jobs-NgZT_lvs.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-
|
|
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-BiKb5_ZM.js';
|
|
2
|
+
import { P as PublicJob } from './jobs-roZu2VmM.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|