@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
1
|
+
import { S as Schemas } from './_spec-Dvlsj5V6.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Optional pagination metadata returned by Board API list operations.
|
|
@@ -111,9 +111,21 @@ type JobsListQuery = {
|
|
|
111
111
|
/**
|
|
112
112
|
* Widen a city or locality `location` to jobs placed in a city or
|
|
113
113
|
* locality within this many km of it (1–250, decimals allowed). Omit for
|
|
114
|
-
* jobs in the place itself. Ignored for region and country places.
|
|
114
|
+
* jobs in the place itself. Ignored for region and country places. For a
|
|
115
|
+
* place from `taxonomy.places.suggest()`, an omitted radius uses the
|
|
116
|
+
* place's own default distance (15 km neighbourhood, 25 km town, 50 km city).
|
|
115
117
|
*/
|
|
116
118
|
radius?: number;
|
|
119
|
+
/**
|
|
120
|
+
* With `location` and no `radius`: widen a city or locality to the market
|
|
121
|
+
* default distance (25 mi in the US, GB, LR and MM; 50 km elsewhere),
|
|
122
|
+
* computed from the resolved place. Regions and countries are not
|
|
123
|
+
* widened; an explicit `radius` wins. Saves resolving the place first to
|
|
124
|
+
* pick the radius. A place from `places.suggest` always uses its own
|
|
125
|
+
* default (15 km neighbourhood, 25 km town, 50 km city), with or without
|
|
126
|
+
* this flag.
|
|
127
|
+
*/
|
|
128
|
+
defaultRadius?: boolean;
|
|
117
129
|
/** Category slug seed (the `/jobs/[keyword]` page) — server resolves it to the English source name; unresolvable → 404. */
|
|
118
130
|
category?: string;
|
|
119
131
|
/** Skill slug seed (the `/jobs/skills/[skill]` page) — server-resolved; unresolvable → 404. */
|
|
@@ -121,6 +133,20 @@ type JobsListQuery = {
|
|
|
121
133
|
/** Sparse fieldset (Medusa-style `+field`). Only `'+description'` is supported — adds `description` to each card. */
|
|
122
134
|
fields?: string;
|
|
123
135
|
};
|
|
136
|
+
/**
|
|
137
|
+
* An opt-in capability token for `jobs.retrieve`. `apply-gateway-v1` selects
|
|
138
|
+
* the country-gated Apply shape (opaque Sponsored Apply).
|
|
139
|
+
*/
|
|
140
|
+
type JobCapability = 'apply-gateway-v1';
|
|
141
|
+
type JobRetrieveQuery = {
|
|
142
|
+
/**
|
|
143
|
+
* Capability opt-ins, sent as the `capabilities` query parameter. Same
|
|
144
|
+
* effect as the `x-cavuno-board-capabilities` header, but the response
|
|
145
|
+
* stays shared-cacheable under its own URL; the header form is never
|
|
146
|
+
* cached.
|
|
147
|
+
*/
|
|
148
|
+
capabilities?: JobCapability[];
|
|
149
|
+
};
|
|
124
150
|
type JobsSimilarQuery = {
|
|
125
151
|
/** How many similar jobs to return (1–20; default 5). */
|
|
126
152
|
limit?: number;
|
|
@@ -143,4 +169,4 @@ type ObjectReferenceFilter = {
|
|
|
143
169
|
*/
|
|
144
170
|
type JobsSearchBody = Schemas['PublicSearchJobsBody'];
|
|
145
171
|
|
|
146
|
-
export type { CustomFieldValues as C, EmploymentType as E, JobSort as J, ListEnvelope as L, ObjectReferenceFilter as O, PublicJob as P, RemoteOption as R, Seniority as S, CustomFieldFilter as a, JobCollectionChoiceQuery as b, JobsListQuery as c, JobCardListEnvelope as d,
|
|
172
|
+
export type { CustomFieldValues as C, EmploymentType as E, JobSort as J, ListEnvelope as L, ObjectReferenceFilter as O, PublicJob as P, RemoteOption as R, Seniority as S, CustomFieldFilter as a, JobCollectionChoiceQuery as b, JobsListQuery as c, JobCardListEnvelope as d, JobRetrieveQuery as e, JobsSearchBody as f, JobCardSearchEnvelope as g, JobsSimilarQuery as h, SearchEnvelope as i, CustomFieldValue as j, CustomFilterValue as k, EducationRequirement as l, JobCapability as m, JobCatalogPagination as n, JobCollectionChoiceList as o, JobCollectionFieldDefinition as p, JobCompany as q, JobCustomEmploymentType as r, OfficeLocation as s, OffsetPagination as t, PublicJobCard as u, RelatedSearch as v, RemotePermit as w, RemoteTimezone as x, ResolvedJobCollectionField as y, StorefrontPagination as z };
|
package/dist/seo-files.d.mts
CHANGED
package/dist/seo-files.d.ts
CHANGED
package/dist/seo.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
3
|
-
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-DhlbCKam.mjs';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-212hOj5L.mjs';
|
|
3
|
+
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-212hOj5L.mjs';
|
|
4
|
+
import './_spec-Dvlsj5V6.mjs';
|
|
5
|
+
import './board-CIbqqcEg.mjs';
|
|
6
|
+
import './jobs-NgZT_lvs.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Blog structured data on the `@cavuno/board` wire types, transcribed from
|
package/dist/seo.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-
|
|
2
|
-
import { e as JsonLdObject } from './breadcrumbs-
|
|
3
|
-
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-
|
|
4
|
-
import './_spec-
|
|
5
|
-
import './board-
|
|
6
|
-
import './jobs-
|
|
1
|
+
import { P as PublicBlogPostSummary, B as BlogAuthorEmbed } from './blog-WtDJZV-Z.js';
|
|
2
|
+
import { e as JsonLdObject } from './breadcrumbs-B0QBK24H.js';
|
|
3
|
+
export { A as ALL_COUNTRY_CODES, B as BreadcrumbItemInput, g as FaqItem, J as JobBreadcrumb, h as JsonLdBoard, N as NumberNotation, i as SENIORITY_ORDER, j as SalaryFaqEntry, k as SalaryJsonLdOptions, l as SalaryOccupationListOptions, b as buildJobBreadcrumbs, m as buildSalaryFaq, o as companyCategorySalaryJsonLd, p as companySalaryJsonLd, q as createBreadcrumbJsonLd, r as createJobPostingJsonLd, s as crossAxisSalaryJsonLd, t as faqJsonLd, c as formatSalaryStat, d as formatSalaryStatRange, u as itemListJsonLd, v as locationSalaryJsonLd, n as normalizeWebsiteUrl, w as skillSalaryJsonLd, x as sortBySeniority, y as titleSalaryJsonLd } from './breadcrumbs-B0QBK24H.js';
|
|
4
|
+
import './_spec-Dvlsj5V6.js';
|
|
5
|
+
import './board-BiKb5_ZM.js';
|
|
6
|
+
import './jobs-roZu2VmM.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Blog structured data on the `@cavuno/board` wire types, transcribed from
|
package/dist/server.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-Dvlsj5V6.mjs';
|
|
3
|
+
import './search-Dlo0GUG5.mjs';
|
|
4
|
+
import './jobs-NgZT_lvs.mjs';
|
|
5
|
+
import './board-CIbqqcEg.mjs';
|
|
6
|
+
import './seo-BDZfybrw.mjs';
|
|
7
|
+
import './blog-DhlbCKam.mjs';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/server.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.js';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-Dvlsj5V6.js';
|
|
3
|
+
import './search-DGuJBU-G.js';
|
|
4
|
+
import './jobs-roZu2VmM.js';
|
|
5
|
+
import './board-BiKb5_ZM.js';
|
|
6
|
+
import './seo-DcrK1vzk.js';
|
|
7
|
+
import './blog-WtDJZV-Z.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Session cookie codec — pure (no framework imports, no node imports) so it
|
package/dist/sitemap.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.mjs';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-Dvlsj5V6.mjs';
|
|
3
|
+
import './search-Dlo0GUG5.mjs';
|
|
4
|
+
import './jobs-NgZT_lvs.mjs';
|
|
5
|
+
import './board-CIbqqcEg.mjs';
|
|
6
|
+
import './seo-BDZfybrw.mjs';
|
|
7
|
+
import './blog-DhlbCKam.mjs';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Sitemap primitives — the pure XML + bucket-filename logic behind a board
|
package/dist/sitemap.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BoardSdk } from './index.js';
|
|
2
|
-
import './_spec-
|
|
3
|
-
import './search-
|
|
4
|
-
import './jobs-
|
|
5
|
-
import './board-
|
|
6
|
-
import './seo-
|
|
7
|
-
import './blog-
|
|
2
|
+
import './_spec-Dvlsj5V6.js';
|
|
3
|
+
import './search-DGuJBU-G.js';
|
|
4
|
+
import './jobs-roZu2VmM.js';
|
|
5
|
+
import './board-BiKb5_ZM.js';
|
|
6
|
+
import './seo-DcrK1vzk.js';
|
|
7
|
+
import './blog-WtDJZV-Z.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Sitemap primitives — the pure XML + bucket-filename logic behind a board
|
package/dist/suggest.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-Dlo0GUG5.mjs';
|
|
2
|
+
import './_spec-Dvlsj5V6.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/suggest` — framework-agnostic headless search-suggest
|
package/dist/suggest.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-
|
|
2
|
-
import './_spec-
|
|
1
|
+
import { h as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, g as SuggestResult } from './search-DGuJBU-G.js';
|
|
2
|
+
import './_spec-Dvlsj5V6.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* `@cavuno/board/suggest` — framework-agnostic headless search-suggest
|
package/package.json
CHANGED
|
@@ -20,9 +20,9 @@ widget uses `embed.jobs`.
|
|
|
20
20
|
|
|
21
21
|
`JobsListQuery` accepts `limit` (1–100), `cursor`, `offset`, `companyId`,
|
|
22
22
|
`companySlug`, `remoteOption`, `employmentType`, `seniority`, `location` with
|
|
23
|
-
`radius` in kilometres
|
|
24
|
-
are OR-matched. `offset` takes precedence over `cursor`, so
|
|
25
|
-
mode per request.
|
|
23
|
+
`radius` in kilometres or `defaultRadius`, `category`, and `skill`. Repeated
|
|
24
|
+
`seniority` values are OR-matched. `offset` takes precedence over `cursor`, so
|
|
25
|
+
choose one paging mode per request.
|
|
26
26
|
|
|
27
27
|
```ts snippet
|
|
28
28
|
const first = await board.jobs.list({
|
|
@@ -58,6 +58,24 @@ const page = await board.jobs.list({
|
|
|
58
58
|
});
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
### List a location page in one request
|
|
62
|
+
|
|
63
|
+
`defaultRadius: true` with a `location` and no `radius` widens a city or
|
|
64
|
+
locality to the market default distance: 25 miles (40.2336 km) in the US, GB,
|
|
65
|
+
LR and MM, 50 km elsewhere. Regions, countries and places without coordinates
|
|
66
|
+
are not widened, and an explicit `radius` wins. The server picks the distance
|
|
67
|
+
from the place it already resolves, so a location page can fetch its jobs in
|
|
68
|
+
parallel with `taxonomy.places.resolve` instead of after it. `jobs.search` takes the
|
|
69
|
+
same flag in `filters`.
|
|
70
|
+
|
|
71
|
+
```ts snippet
|
|
72
|
+
const nearby = await board.jobs.list({
|
|
73
|
+
location: 'houston-texas-united-states',
|
|
74
|
+
defaultRadius: true,
|
|
75
|
+
limit: 20,
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
61
79
|
## Search
|
|
62
80
|
|
|
63
81
|
`jobs.search` posts `JobsSearchBody`: free-text `query`, structured `filters`,
|
|
@@ -88,6 +106,18 @@ job.company?.slug;
|
|
|
88
106
|
const rail = await board.jobs.similar('senior-chef', { limit: 5 });
|
|
89
107
|
```
|
|
90
108
|
|
|
109
|
+
A starter that renders the country-gated Apply flow opts in per request with
|
|
110
|
+
`capabilities: ['apply-gateway-v1']`. The opt-in travels in the URL, so the
|
|
111
|
+
response stays shared-cacheable. The older `x-cavuno-board-capabilities`
|
|
112
|
+
header returns the same body but is never cached.
|
|
113
|
+
|
|
114
|
+
```ts snippet
|
|
115
|
+
const gated = await board.jobs.retrieve('senior-chef', {
|
|
116
|
+
capabilities: ['apply-gateway-v1'],
|
|
117
|
+
});
|
|
118
|
+
gated.applyAction; // 'gateway_external' | 'gateway_native' | …
|
|
119
|
+
```
|
|
120
|
+
|
|
91
121
|
## Surface candidate gating
|
|
92
122
|
|
|
93
123
|
On a gated board, `gatedCount` reports results withheld from the current
|
|
@@ -82,6 +82,19 @@ Pause with a concrete blocker when the board identifier or a required test crede
|
|
|
82
82
|
|
|
83
83
|
**Complete when:** doctor, direct API probes, implemented-surface checks, and the production-build probe all pass or each skipped credentialed check is reported.
|
|
84
84
|
|
|
85
|
+
## Reporting problems
|
|
86
|
+
|
|
87
|
+
When Cavuno itself gets in the way (a missing capability, unclear or wrong documentation, a surprising response, an unhelpful error, a bug or slow performance), report it, even if you found a workaround. `POST https://api.cavuno.com/v1/feedback` accepts [Agent Feedback Protocol v0.1](https://trybackloop.com/spec/) reports without credentials; the discovery document is at `https://api.cavuno.com/.well-known/agent-feedback`.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
curl https://api.cavuno.com/v1/feedback \
|
|
91
|
+
-X POST \
|
|
92
|
+
-H "Content-Type: application/json" \
|
|
93
|
+
-d '{ "type": "unclear_documentation", "goal": "What you were trying to do", "message": "What got in the way", "agent": { "name": "my-agent", "model": "model-name" } }'
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
`type`, `goal` and `message` are required; fill `agent.name` and `agent.model`. Up to 20 reports every 5 minutes. Never include credentials, `pk_…` keys, personal data or your user's private content. Send the report, then continue with the task.
|
|
97
|
+
|
|
85
98
|
## Cavuno SDK reference
|
|
86
99
|
|
|
87
100
|
For setup and API details beyond this workflow, use the [Cavuno Board SDK documentation](https://cavuno.com/docs/sdk).
|
package/skills/manifest.json
CHANGED