@cavuno/board 4.4.0 → 4.5.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 +28 -0
- package/README.md +93 -77
- package/dist/{_spec-COlkrizX.d.mts → _spec-BJah6GIZ.d.mts} +55 -0
- package/dist/{_spec-COlkrizX.d.ts → _spec-BJah6GIZ.d.ts} +55 -0
- package/dist/{blog-DO8Yn21_.d.mts → blog-4Owyo4U_.d.mts} +1 -1
- package/dist/{blog-CgA_ljHa.d.ts → blog-DJi_1n7W.d.ts} +1 -1
- package/dist/{board-JgFR-2UW.d.mts → board-CpR7o9bL.d.mts} +2 -2
- package/dist/{board-D51C3gB5.d.ts → board-KDx9U0nw.d.ts} +2 -2
- package/dist/{breadcrumbs-_QzN4nEk.d.ts → breadcrumbs-CJ-NpA-V.d.ts} +2 -2
- package/dist/{breadcrumbs-zAN2biAq.d.mts → breadcrumbs-DOJH_7nO.d.mts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/{chunk-2ETP5UH4.mjs → chunk-GC5QWN7Y.mjs} +16 -0
- package/dist/{chunk-YEAQ3JEI.mjs → chunk-VWGF4I5C.mjs} +143 -4
- 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/format.js +15 -2
- package/dist/format.mjs +2 -126
- package/dist/index.d.mts +75 -12
- package/dist/index.d.ts +75 -12
- package/dist/index.js +187 -1
- package/dist/index.mjs +172 -2
- package/dist/{jobs-DOF3QXdq.d.ts → jobs-Ay-V6Q6y.d.ts} +1 -1
- package/dist/{jobs-C1Mxty1n.d.mts → jobs-C27qlt6o.d.mts} +1 -1
- package/dist/{search-Cx_dsVUb.d.mts → search-CC-rlMgk.d.mts} +1 -1
- package/dist/{search-_QDaN6Um.d.ts → search-fG_K9J8x.d.ts} +1 -1
- package/dist/seo.d.mts +6 -6
- package/dist/seo.d.ts +6 -6
- package/dist/seo.js +16 -1
- package/dist/seo.mjs +1 -1
- package/dist/server.d.mts +5 -5
- package/dist/server.d.ts +5 -5
- package/dist/server.mjs +1 -1
- package/dist/sitemap.d.mts +5 -5
- package/dist/sitemap.d.ts +5 -5
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +1 -1
- package/skills/cavuno-board-account/SKILL.md +11 -1
- package/skills/cavuno-board-companies/SKILL.md +21 -0
- package/skills/cavuno-board-seo/SALARY.md +2 -1
- package/skills/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,34 @@
|
|
|
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.5.0 — 2026-08-21
|
|
7
|
+
|
|
8
|
+
- **Board-user account self-service**: signed-in board users manage their own
|
|
9
|
+
account over the API. New `board.me` verbs and `/v1/boards/{identifier}/me/*`
|
|
10
|
+
endpoints: `updatePassword`, `requestEmailChange` / `confirmEmailChange`
|
|
11
|
+
(verify-then-switch), and account deletion. The `board_user` resource now
|
|
12
|
+
exposes `hasPassword` so headless frontends can decide between change-password
|
|
13
|
+
and set-password flows.
|
|
14
|
+
- **Company team management**: `board.me.companies` gains members and invites —
|
|
15
|
+
list members, change a member's role (`admin` / `member`), remove a member,
|
|
16
|
+
create / list / revoke email invites (7-day links), accept an invite, and
|
|
17
|
+
`leave(slug)` (`DELETE .../me/companies/{slug}/membership`). A company always
|
|
18
|
+
keeps at least one admin: the API answers `409 last_admin` when an action
|
|
19
|
+
would strand it.
|
|
20
|
+
- **Analytics**: apply-clicks and job-visitors reporting can group by
|
|
21
|
+
first-touch channel, and apply-click rows carry `jobSlug`.
|
|
22
|
+
- **Company blocklist**: endpoints for blocking a company from automated
|
|
23
|
+
sourcing so imports and aggregation cannot reintroduce it.
|
|
24
|
+
- **Fix**: salary formatting falls back cleanly when the runtime lacks
|
|
25
|
+
`Intl.NumberFormat.formatRange`.
|
|
26
|
+
|
|
27
|
+
## 4.4.1 — 2026-08-10
|
|
28
|
+
|
|
29
|
+
- **SDK installation documentation**: The npm and GitHub README now presents
|
|
30
|
+
package installation as the recommended TypeScript SDK path, with CDN
|
|
31
|
+
installation as a separate option for static HTML and other no-build sites.
|
|
32
|
+
Links point to the canonical SDK installation guides on cavuno.com.
|
|
33
|
+
|
|
6
34
|
## 4.4.0 — 2026-08-10
|
|
7
35
|
|
|
8
36
|
- **Classic-script browser build**: `@cavuno/board` now ships a dependency-free
|
package/README.md
CHANGED
|
@@ -2,114 +2,130 @@
|
|
|
2
2
|
|
|
3
3
|
Build custom job boards and careers pages with Cavuno’s TypeScript SDK.
|
|
4
4
|
|
|
5
|
-
`@cavuno/board` is
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
`@cavuno/board` is the zero-dependency client for the Cavuno Board API. It
|
|
6
|
+
runs in browsers, Node.js 20 or newer, and Cloudflare Workers, with TypeScript
|
|
7
|
+
declarations generated from the API’s OpenAPI contract.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
[Documentation](https://cavuno.com/docs/sdk) ·
|
|
10
|
+
[Installing](https://cavuno.com/docs/sdk/installing) ·
|
|
11
|
+
[SDK reference](https://cavuno.com/docs/sdk/reference) ·
|
|
12
|
+
[API reference](https://cavuno.com/docs/api) ·
|
|
13
|
+
[Source](https://github.com/wollemiahq/cavuno-sdk)
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## Installation
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
other compatible coding agents. It teaches them how to wire a board correctly — client setup,
|
|
19
|
-
auth and session ownership, pagination, gating, error handling, and a
|
|
20
|
-
runtime smoke test:
|
|
21
|
-
|
|
22
|
-
Install the latest skills directly from the public SDK repository:
|
|
17
|
+
### Install as package
|
|
23
18
|
|
|
24
19
|
```bash
|
|
25
|
-
|
|
26
|
-
# Or install the complete Cavuno skill set:
|
|
27
|
-
npx skills add wollemiahq/cavuno-sdk --skill '*'
|
|
20
|
+
npm install @cavuno/board
|
|
28
21
|
```
|
|
29
22
|
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
The package includes ESM and CommonJS builds. ESM imports are tree-shakeable,
|
|
24
|
+
and helper packages such as `@cavuno/board/format` can be imported separately.
|
|
32
25
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
26
|
+
### Install via CDN
|
|
27
|
+
|
|
28
|
+
No package manager or build step? Follow the
|
|
29
|
+
[CDN installation guide](https://cavuno.com/docs/sdk/installing/cdn)
|
|
30
|
+
for a version-pinned build and its integrity hash. The CDN build is
|
|
31
|
+
the same SDK downloaded as one file; package imports remain the recommended
|
|
32
|
+
choice when they are available.
|
|
37
33
|
|
|
38
|
-
|
|
39
|
-
`cavuno-board-setup` skill and works surface by surface. Because the
|
|
40
|
-
skills live in your project and match your installed version, the agent
|
|
41
|
-
never works from stale docs.
|
|
34
|
+
See [Installing](https://cavuno.com/docs/sdk/installing) for every installation option.
|
|
42
35
|
|
|
43
|
-
## Quick start
|
|
36
|
+
## Quick start
|
|
44
37
|
|
|
45
38
|
```ts
|
|
46
39
|
import { createBoardClient } from '@cavuno/board';
|
|
47
40
|
|
|
48
41
|
const board = createBoardClient({
|
|
49
|
-
board:
|
|
42
|
+
board: 'pk_your_publishable_key',
|
|
50
43
|
});
|
|
51
44
|
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
const [context, jobs] = await Promise.all([
|
|
46
|
+
board.context(),
|
|
47
|
+
board.jobs.list({ limit: 20 }),
|
|
48
|
+
]);
|
|
55
49
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
q: 'acme',
|
|
59
|
-
limit: 10,
|
|
60
|
-
types: ['company', 'skill'],
|
|
61
|
-
});
|
|
62
|
-
// Or the headless controller (debounce / abort / stale-drop built in):
|
|
63
|
-
// import { createSuggestController } from '@cavuno/board/suggest';
|
|
64
|
-
// const suggest = createSuggestController(board);
|
|
65
|
-
// suggest.setQuery('acme');
|
|
50
|
+
console.log(context.name);
|
|
51
|
+
console.log(jobs.data);
|
|
66
52
|
```
|
|
67
53
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
`
|
|
54
|
+
A `pk_…` key identifies a board and is public by design. Get it from
|
|
55
|
+
**Settings → Developer → SDK** in Cavuno. The client connects to
|
|
56
|
+
`https://api.cavuno.com` by default.
|
|
71
57
|
|
|
72
|
-
|
|
73
|
-
|
|
58
|
+
The client exposes typed namespaces for jobs and search, companies, salaries,
|
|
59
|
+
blog, board-user authentication, saved jobs, applications, job alerts,
|
|
60
|
+
messaging, employer workflows, checkout, candidate access, and SEO data.
|
|
61
|
+
|
|
62
|
+
## Handle errors
|
|
63
|
+
|
|
64
|
+
Every non-2xx response throws a `BoardApiError` with the API status, code,
|
|
65
|
+
details, and request ID.
|
|
74
66
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
67
|
+
```ts
|
|
68
|
+
import { BoardApiError, isNotFound } from '@cavuno/board';
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
await board.jobs.retrieve('missing-job');
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if (isNotFound(error)) {
|
|
74
|
+
// Render your application's not-found state.
|
|
75
|
+
} else if (error instanceof BoardApiError) {
|
|
76
|
+
console.error(error.code, error.requestId);
|
|
77
|
+
}
|
|
78
78
|
}
|
|
79
|
-
const first500 = await paginate(board.companies.list, { limit: 100 })
|
|
80
|
-
.toArray({ limit: 500 });
|
|
81
79
|
```
|
|
82
80
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
See [Handle SDK errors](https://cavuno.com/docs/sdk/fundamentals/errors) for
|
|
82
|
+
the complete error contract and guards.
|
|
83
|
+
|
|
84
|
+
## Authentication
|
|
85
|
+
|
|
86
|
+
- A `pk_…` publishable key identifies the board and may be included in browser
|
|
87
|
+
code.
|
|
88
|
+
- Candidate and employer sessions use `board.auth.*`. Choose browser storage
|
|
89
|
+
deliberately; server-rendered applications should keep sessions in their
|
|
90
|
+
own httpOnly cookies.
|
|
91
|
+
- Operator and admin credentials must never be used with this SDK or exposed
|
|
92
|
+
to frontend code.
|
|
93
|
+
|
|
94
|
+
Read [Authentication and sessions](https://cavuno.com/docs/sdk/fundamentals/authentication-and-session-ownership)
|
|
95
|
+
before adding signed-in workflows.
|
|
86
96
|
|
|
87
|
-
##
|
|
97
|
+
## Make a request to a custom endpoint
|
|
88
98
|
|
|
89
|
-
|
|
99
|
+
For an endpoint without a namespace method, `board.client.fetch<T>(path, init)`
|
|
100
|
+
uses the same board base path, headers, bearer token, serialization, and hooks
|
|
101
|
+
as the rest of the client. Treat the generic response type as your
|
|
102
|
+
application’s assertion; custom responses are not generated from the public
|
|
103
|
+
OpenAPI contract.
|
|
90
104
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
Pluggable storage (`memory` in the browser, `nostore` on the server);
|
|
94
|
-
on SSR, keep the session in an httpOnly cookie your app owns and pass
|
|
95
|
-
the token per call. No auto-refresh on 401 — rotation is explicit.
|
|
96
|
-
- **No secret keys** — operator/admin credentials never touch this SDK.
|
|
105
|
+
See [`board.client.fetch()`](https://cavuno.com/docs/sdk/reference/top-level-methods#make-a-request-to-a-custom-endpoint)
|
|
106
|
+
for options and examples.
|
|
97
107
|
|
|
98
|
-
##
|
|
108
|
+
## Set up with a coding agent
|
|
109
|
+
|
|
110
|
+
The package includes version-matched Agent Skills for Codex, Claude Code,
|
|
111
|
+
Cursor, and other compatible coding agents:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npx @cavuno/board setup
|
|
115
|
+
```
|
|
99
116
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
117
|
+
Then ask your agent to set up the Cavuno board using the installed
|
|
118
|
+
`cavuno-board-setup` skill. See
|
|
119
|
+
[Set up with an agent](https://cavuno.com/docs/sdk/installing/agent)
|
|
120
|
+
for the review and verification workflow.
|
|
103
121
|
|
|
104
|
-
##
|
|
122
|
+
## Resources
|
|
105
123
|
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
- Clone-and-own TanStack Start + shadcn/ui template:
|
|
113
|
-
<https://github.com/wollemiahq/cavuno-tanstack-start-shadcn-job-board-template>
|
|
124
|
+
- [SDK guides and reference](https://cavuno.com/docs/sdk)
|
|
125
|
+
- [Board API documentation](https://cavuno.com/docs/api)
|
|
126
|
+
- [OpenAPI document](https://api.cavuno.com/v1/openapi.json)
|
|
127
|
+
- [Source](https://github.com/wollemiahq/cavuno-sdk)
|
|
128
|
+
- [Issues](https://github.com/wollemiahq/cavuno-sdk/issues)
|
|
129
|
+
- [TanStack Start + shadcn/ui job board template](https://github.com/wollemiahq/cavuno-tanstack-start-shadcn-job-board-template)
|
|
114
130
|
|
|
115
131
|
MIT © Wollemia
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
interface components {
|
|
2
2
|
schemas: {
|
|
3
|
+
AcceptCompanyMemberInviteBody: {
|
|
4
|
+
token: string;
|
|
5
|
+
};
|
|
3
6
|
AccessCheckoutBody: {
|
|
4
7
|
/**
|
|
5
8
|
* @description The offer tier to purchase (from `GET /paywall/offers/enabled`).
|
|
@@ -262,6 +265,8 @@ interface components {
|
|
|
262
265
|
email: string;
|
|
263
266
|
displayName: string | null;
|
|
264
267
|
emailVerified: boolean;
|
|
268
|
+
/** @description Whether the account has a password credential. False for OAuth/magic-link-only accounts; frontends use it to offer change-password vs set-password (the set flow is POST /auth/forgot-password). */
|
|
269
|
+
hasPassword: boolean;
|
|
265
270
|
};
|
|
266
271
|
BulkMoveApplicantsBody: {
|
|
267
272
|
applicationIds: string[];
|
|
@@ -404,6 +409,34 @@ interface components {
|
|
|
404
409
|
/** @description Source slug for the market. Use it as the `:market` segment of the market-scoped company browse. */
|
|
405
410
|
slug: string;
|
|
406
411
|
};
|
|
412
|
+
CompanyMember: {
|
|
413
|
+
id: string;
|
|
414
|
+
/** @enum {string} */
|
|
415
|
+
object: "company_member";
|
|
416
|
+
boardUserId: string;
|
|
417
|
+
displayName: string | null;
|
|
418
|
+
email: string;
|
|
419
|
+
/** @enum {string} */
|
|
420
|
+
role: "admin" | "member";
|
|
421
|
+
approvedBy: string | null;
|
|
422
|
+
/** Format: date-time */
|
|
423
|
+
createdAt: string;
|
|
424
|
+
};
|
|
425
|
+
CompanyMemberInvite: {
|
|
426
|
+
id: string;
|
|
427
|
+
/** @enum {string} */
|
|
428
|
+
object: "company_member_invite";
|
|
429
|
+
email: string;
|
|
430
|
+
/** Format: date-time */
|
|
431
|
+
createdAt: string;
|
|
432
|
+
/** Format: date-time */
|
|
433
|
+
expiresAt: string;
|
|
434
|
+
};
|
|
435
|
+
CompanyMemberInviteAcceptance: {
|
|
436
|
+
/** @enum {string} */
|
|
437
|
+
object: "company_member_invite_acceptance";
|
|
438
|
+
companySlug: string;
|
|
439
|
+
};
|
|
407
440
|
CompanyMembership: {
|
|
408
441
|
id: string;
|
|
409
442
|
/** @enum {string} */
|
|
@@ -558,6 +591,9 @@ interface components {
|
|
|
558
591
|
/** @description Live published-job count for this company on the board. */
|
|
559
592
|
jobCount: number;
|
|
560
593
|
};
|
|
594
|
+
ConfirmEmailChangeBody: {
|
|
595
|
+
token: string;
|
|
596
|
+
};
|
|
561
597
|
ConfirmWorkEmailBody: {
|
|
562
598
|
token: string;
|
|
563
599
|
};
|
|
@@ -618,6 +654,10 @@ interface components {
|
|
|
618
654
|
/** @description URL-friendly slug for the company. Auto-generated from `name` when omitted. */
|
|
619
655
|
slug?: string;
|
|
620
656
|
};
|
|
657
|
+
CreateCompanyMemberInviteBody: {
|
|
658
|
+
/** Format: email */
|
|
659
|
+
email: string;
|
|
660
|
+
};
|
|
621
661
|
CreateEducationBody: {
|
|
622
662
|
institutionName: string;
|
|
623
663
|
institutionUrl?: string;
|
|
@@ -1982,6 +2022,8 @@ interface components {
|
|
|
1982
2022
|
salaryCurrency: string | null;
|
|
1983
2023
|
salaryTimeframe: string | null;
|
|
1984
2024
|
isFeatured: boolean;
|
|
2025
|
+
/** @description True when this listing is a Forager CPC / partner-feed ad persisted on the board. */
|
|
2026
|
+
isSponsored: boolean;
|
|
1985
2027
|
/** @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. */
|
|
1986
2028
|
summary: string | null;
|
|
1987
2029
|
locationLabel: string | null;
|
|
@@ -2154,6 +2196,10 @@ interface components {
|
|
|
2154
2196
|
reason: "spam" | "harassment" | "misrepresentation" | "other";
|
|
2155
2197
|
freeText?: string;
|
|
2156
2198
|
};
|
|
2199
|
+
RequestEmailChangeBody: {
|
|
2200
|
+
/** Format: email */
|
|
2201
|
+
email: string;
|
|
2202
|
+
};
|
|
2157
2203
|
Resume: {
|
|
2158
2204
|
/** @enum {string} */
|
|
2159
2205
|
object: "resume";
|
|
@@ -2730,6 +2776,10 @@ interface components {
|
|
|
2730
2776
|
jobSearchStatusVisibleTo?: "everyone" | "employers_only";
|
|
2731
2777
|
openToRelocate?: boolean;
|
|
2732
2778
|
};
|
|
2779
|
+
UpdateCompanyMemberRoleBody: {
|
|
2780
|
+
/** @enum {string} */
|
|
2781
|
+
role: "admin" | "member";
|
|
2782
|
+
};
|
|
2733
2783
|
UpdateEducationBody: {
|
|
2734
2784
|
institutionName?: string;
|
|
2735
2785
|
institutionUrl?: string;
|
|
@@ -2775,6 +2825,11 @@ interface components {
|
|
|
2775
2825
|
channel: "messageEmails" | "applicationEmails";
|
|
2776
2826
|
subscribed: boolean;
|
|
2777
2827
|
};
|
|
2828
|
+
UpdatePasswordBody: {
|
|
2829
|
+
currentPassword: string;
|
|
2830
|
+
/** @description Minimum 8 characters. */
|
|
2831
|
+
newPassword: string;
|
|
2832
|
+
};
|
|
2778
2833
|
UpdatePipelineStageBody: {
|
|
2779
2834
|
label?: string;
|
|
2780
2835
|
hidden?: boolean;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
interface components {
|
|
2
2
|
schemas: {
|
|
3
|
+
AcceptCompanyMemberInviteBody: {
|
|
4
|
+
token: string;
|
|
5
|
+
};
|
|
3
6
|
AccessCheckoutBody: {
|
|
4
7
|
/**
|
|
5
8
|
* @description The offer tier to purchase (from `GET /paywall/offers/enabled`).
|
|
@@ -262,6 +265,8 @@ interface components {
|
|
|
262
265
|
email: string;
|
|
263
266
|
displayName: string | null;
|
|
264
267
|
emailVerified: boolean;
|
|
268
|
+
/** @description Whether the account has a password credential. False for OAuth/magic-link-only accounts; frontends use it to offer change-password vs set-password (the set flow is POST /auth/forgot-password). */
|
|
269
|
+
hasPassword: boolean;
|
|
265
270
|
};
|
|
266
271
|
BulkMoveApplicantsBody: {
|
|
267
272
|
applicationIds: string[];
|
|
@@ -404,6 +409,34 @@ interface components {
|
|
|
404
409
|
/** @description Source slug for the market. Use it as the `:market` segment of the market-scoped company browse. */
|
|
405
410
|
slug: string;
|
|
406
411
|
};
|
|
412
|
+
CompanyMember: {
|
|
413
|
+
id: string;
|
|
414
|
+
/** @enum {string} */
|
|
415
|
+
object: "company_member";
|
|
416
|
+
boardUserId: string;
|
|
417
|
+
displayName: string | null;
|
|
418
|
+
email: string;
|
|
419
|
+
/** @enum {string} */
|
|
420
|
+
role: "admin" | "member";
|
|
421
|
+
approvedBy: string | null;
|
|
422
|
+
/** Format: date-time */
|
|
423
|
+
createdAt: string;
|
|
424
|
+
};
|
|
425
|
+
CompanyMemberInvite: {
|
|
426
|
+
id: string;
|
|
427
|
+
/** @enum {string} */
|
|
428
|
+
object: "company_member_invite";
|
|
429
|
+
email: string;
|
|
430
|
+
/** Format: date-time */
|
|
431
|
+
createdAt: string;
|
|
432
|
+
/** Format: date-time */
|
|
433
|
+
expiresAt: string;
|
|
434
|
+
};
|
|
435
|
+
CompanyMemberInviteAcceptance: {
|
|
436
|
+
/** @enum {string} */
|
|
437
|
+
object: "company_member_invite_acceptance";
|
|
438
|
+
companySlug: string;
|
|
439
|
+
};
|
|
407
440
|
CompanyMembership: {
|
|
408
441
|
id: string;
|
|
409
442
|
/** @enum {string} */
|
|
@@ -558,6 +591,9 @@ interface components {
|
|
|
558
591
|
/** @description Live published-job count for this company on the board. */
|
|
559
592
|
jobCount: number;
|
|
560
593
|
};
|
|
594
|
+
ConfirmEmailChangeBody: {
|
|
595
|
+
token: string;
|
|
596
|
+
};
|
|
561
597
|
ConfirmWorkEmailBody: {
|
|
562
598
|
token: string;
|
|
563
599
|
};
|
|
@@ -618,6 +654,10 @@ interface components {
|
|
|
618
654
|
/** @description URL-friendly slug for the company. Auto-generated from `name` when omitted. */
|
|
619
655
|
slug?: string;
|
|
620
656
|
};
|
|
657
|
+
CreateCompanyMemberInviteBody: {
|
|
658
|
+
/** Format: email */
|
|
659
|
+
email: string;
|
|
660
|
+
};
|
|
621
661
|
CreateEducationBody: {
|
|
622
662
|
institutionName: string;
|
|
623
663
|
institutionUrl?: string;
|
|
@@ -1982,6 +2022,8 @@ interface components {
|
|
|
1982
2022
|
salaryCurrency: string | null;
|
|
1983
2023
|
salaryTimeframe: string | null;
|
|
1984
2024
|
isFeatured: boolean;
|
|
2025
|
+
/** @description True when this listing is a Forager CPC / partner-feed ad persisted on the board. */
|
|
2026
|
+
isSponsored: boolean;
|
|
1985
2027
|
/** @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. */
|
|
1986
2028
|
summary: string | null;
|
|
1987
2029
|
locationLabel: string | null;
|
|
@@ -2154,6 +2196,10 @@ interface components {
|
|
|
2154
2196
|
reason: "spam" | "harassment" | "misrepresentation" | "other";
|
|
2155
2197
|
freeText?: string;
|
|
2156
2198
|
};
|
|
2199
|
+
RequestEmailChangeBody: {
|
|
2200
|
+
/** Format: email */
|
|
2201
|
+
email: string;
|
|
2202
|
+
};
|
|
2157
2203
|
Resume: {
|
|
2158
2204
|
/** @enum {string} */
|
|
2159
2205
|
object: "resume";
|
|
@@ -2730,6 +2776,10 @@ interface components {
|
|
|
2730
2776
|
jobSearchStatusVisibleTo?: "everyone" | "employers_only";
|
|
2731
2777
|
openToRelocate?: boolean;
|
|
2732
2778
|
};
|
|
2779
|
+
UpdateCompanyMemberRoleBody: {
|
|
2780
|
+
/** @enum {string} */
|
|
2781
|
+
role: "admin" | "member";
|
|
2782
|
+
};
|
|
2733
2783
|
UpdateEducationBody: {
|
|
2734
2784
|
institutionName?: string;
|
|
2735
2785
|
institutionUrl?: string;
|
|
@@ -2775,6 +2825,11 @@ interface components {
|
|
|
2775
2825
|
channel: "messageEmails" | "applicationEmails";
|
|
2776
2826
|
subscribed: boolean;
|
|
2777
2827
|
};
|
|
2828
|
+
UpdatePasswordBody: {
|
|
2829
|
+
currentPassword: string;
|
|
2830
|
+
/** @description Minimum 8 characters. */
|
|
2831
|
+
newPassword: string;
|
|
2832
|
+
};
|
|
2778
2833
|
UpdatePipelineStageBody: {
|
|
2779
2834
|
label?: string;
|
|
2780
2835
|
hidden?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, m as RelatedSearch } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-BJah6GIZ.mjs';
|
|
2
|
+
import { L as ListEnvelope, m as RelatedSearch } from './jobs-C27qlt6o.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 { S as Schemas } from './_spec-
|
|
2
|
-
import { L as ListEnvelope, m as RelatedSearch } from './jobs-
|
|
1
|
+
import { S as Schemas } from './_spec-BJah6GIZ.js';
|
|
2
|
+
import { L as ListEnvelope, m as RelatedSearch } from './jobs-Ay-V6Q6y.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 { 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-KDx9U0nw.js';
|
|
2
|
+
import { P as PublicJob } from './jobs-Ay-V6Q6y.js';
|
|
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-CpR7o9bL.mjs';
|
|
2
|
+
import { P as PublicJob } from './jobs-C27qlt6o.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|