@cavuno/board 4.64.0 → 4.66.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 +57 -0
- package/dist/{_spec-D1Qg_Twd.d.mts → _spec-DBI6azWs.d.mts} +96 -2
- package/dist/{_spec-D1Qg_Twd.d.ts → _spec-DBI6azWs.d.ts} +96 -2
- package/dist/{blog-Dp2jAVVM.d.ts → blog--VKuBIdw.d.ts} +1 -1
- package/dist/{blog-e0YbZBjg.d.mts → blog-Bx-rjH4V.d.mts} +1 -1
- package/dist/{board-Cc3wbTKI.d.mts → board-BsUhxdjL.d.mts} +2 -2
- package/dist/{board-BeNZLOYC.d.ts → board-USJ9ZZab.d.ts} +2 -2
- package/dist/{breadcrumbs-C5WjB8jm.d.mts → breadcrumbs-BVN_gIJq.d.mts} +2 -2
- package/dist/{breadcrumbs-BOFeIYEX.d.ts → breadcrumbs-maV86vZP.d.ts} +2 -2
- package/dist/browser/cavuno-board.global.min.js +1 -1
- package/dist/{chunk-H3YIWHXR.mjs → chunk-R62XFNS7.mjs} +1 -0
- package/dist/chunk-RDHHRDKN.mjs +6 -0
- package/dist/doctor.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 +46 -18
- package/dist/index.d.ts +46 -18
- package/dist/index.js +19 -1
- package/dist/index.mjs +22 -5
- package/dist/{jobs-D04ngjCP.d.ts → jobs-Dyj1HZ8W.d.ts} +1 -1
- package/dist/{jobs-CClqlUld.d.mts → jobs-qoVMh_Zd.d.mts} +1 -1
- package/dist/mcp.d.mts +52 -0
- package/dist/mcp.d.ts +52 -0
- package/dist/mcp.js +150 -0
- package/dist/mcp.mjs +128 -0
- package/dist/{search-BtrwcLkc.d.mts → search-CrXCM8Hq.d.mts} +1 -1
- package/dist/{search-DZeNdYN6.d.ts → search-DPHLf8pI.d.ts} +1 -1
- package/dist/{seo-DLoyZRTo.d.ts → seo-BDwe8PwT.d.ts} +1 -1
- package/dist/{seo-LfpgbdnO.d.mts → seo-DRVgmTCQ.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 +22 -7
- package/dist/seo.d.ts +22 -7
- package/dist/seo.js +12 -3
- package/dist/seo.mjs +12 -3
- package/dist/server.d.mts +6 -6
- package/dist/server.d.ts +6 -6
- package/dist/server.mjs +1 -1
- package/dist/sitemap.d.mts +6 -6
- package/dist/sitemap.d.ts +6 -6
- package/dist/sitemap.mjs +1 -1
- package/dist/skills.js +1 -1
- package/dist/suggest.d.mts +2 -2
- package/dist/suggest.d.ts +2 -2
- package/package.json +13 -2
- package/skills/cavuno-board-filters/SKILL.md +12 -4
- package/skills/cavuno-board-mcp/SKILL.md +80 -0
- package/skills/cavuno-board-post-a-job/SKILL.md +54 -5
- package/skills/cavuno-board-seo/BLOG.md +13 -8
- package/skills/manifest.json +8 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,63 @@
|
|
|
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.66.0 — 2026-11-11
|
|
7
|
+
|
|
8
|
+
- Embedded checkout for paid job postings: send `checkoutUiMode:
|
|
9
|
+
'embedded_page'` to `board.jobPosting.submit` and a paid plan returns
|
|
10
|
+
`status: 'embedded_checkout'` with the `clientSecret`, publishable key and
|
|
11
|
+
connected account to mount Stripe Embedded Checkout. `hosted_page` stays
|
|
12
|
+
the default.
|
|
13
|
+
- New `board.jobPosting.getCheckout(sessionId)` reads a posting's checkout
|
|
14
|
+
outcome: `awaiting_payment`, `processing`, `paid`, `payment_failed` or
|
|
15
|
+
`canceled`, with `jobStatus` and, once live, `jobUrl`. It answers
|
|
16
|
+
`GET /boards/{identifier}/job-postings/checkout/{sessionId}`, and an unknown
|
|
17
|
+
session returns `job_posting_checkout_not_found`.
|
|
18
|
+
- Categories carry `totalJobCount`, the published jobs on the category or any
|
|
19
|
+
subcategory, each job once. `board.taxonomy.categories.list` accepts
|
|
20
|
+
`sort: 'totalJobCount'`, which also lists a parent with no jobs of its own.
|
|
21
|
+
A parent category is listed while any subcategory has published jobs.
|
|
22
|
+
- `GET`, `PUT` and `DELETE /sdk-frontend` register the URL your own frontend
|
|
23
|
+
serves the board on, so board links, auth emails, OAuth completion and
|
|
24
|
+
checkout returns point at it.
|
|
25
|
+
- `GET /contacts`, `GET /contacts/{id}`, `GET /contacts/{id}/emails` and
|
|
26
|
+
`GET /contacts/{id}/activity` read the board's contacts, their emails and
|
|
27
|
+
their activity.
|
|
28
|
+
- `GET /domains/{id}/dns` checks a domain's live DNS records.
|
|
29
|
+
- `GET /settings` and `PATCH /settings` take `mcpEnabled` and
|
|
30
|
+
`mcpDisabledTools`, to switch the board's MCP server off or leave out
|
|
31
|
+
individual tools.
|
|
32
|
+
- `GET /taxonomies/retag` and `POST /taxonomies/retag` re-tag live jobs (or,
|
|
33
|
+
for markets, companies with live jobs) against a list the board manages,
|
|
34
|
+
once every 24 hours per list. `/taxonomies/settings` takes
|
|
35
|
+
`listDescription`, one sentence on what each list means.
|
|
36
|
+
|
|
37
|
+
## 4.65.0 — 2026-11-09
|
|
38
|
+
|
|
39
|
+
- Board MCP server: every board on a plan with API access serves a public,
|
|
40
|
+
read-only MCP server that AI assistants can use to search its jobs and
|
|
41
|
+
companies. The Board API answers it at `POST /boards/{identifier}/mcp`,
|
|
42
|
+
with a setup page at `GET /boards/{identifier}/mcp/docs`, an MCP Server
|
|
43
|
+
Card at `GET /boards/{identifier}/mcp/server-card` and an AI Catalog at
|
|
44
|
+
`GET /boards/{identifier}/mcp/ai-catalog`.
|
|
45
|
+
- New entry point `@cavuno/board/mcp` with `createMcpHandler({ board })`,
|
|
46
|
+
which serves the board's MCP server on your own domain. Mount it at
|
|
47
|
+
`/mcp`, `/mcp/*` and `/.well-known/ai-catalog.json`; any other path
|
|
48
|
+
below `/mcp` answers 404.
|
|
49
|
+
- `board.context()` returns `features.mcp`, true when the board serves its
|
|
50
|
+
MCP server, so a frontend can link to its setup page.
|
|
51
|
+
- `GET /subscribers/count` returns `subscribers`, the count shown on the
|
|
52
|
+
dashboard: unique people who currently receive job alerts, job matches
|
|
53
|
+
or both.
|
|
54
|
+
- A marketing suppression's `reason` can be `spam_report`.
|
|
55
|
+
- `GET /boards/{identifier}/blog/posts` returns `count`, the total published
|
|
56
|
+
posts in the list across every page, for the whole blog, one tag or one
|
|
57
|
+
author. Pass it as `totalPosts` to `createAuthorProfileJsonLd`.
|
|
58
|
+
- `createBlogArticleJsonLd` takes `authorProfileUrl`, the first author's
|
|
59
|
+
profile page URL. The Article `author` then carries the same `@id` and
|
|
60
|
+
`url` as the `Person` that `createAuthorProfileJsonLd` declares on that
|
|
61
|
+
page.
|
|
62
|
+
|
|
6
63
|
## 4.64.0 — 2026-11-05
|
|
7
64
|
|
|
8
65
|
- Tip jar: tippers can cover the card fee. `board.tipJar.get` returns
|
|
@@ -225,6 +225,26 @@ interface components {
|
|
|
225
225
|
/** @description The board-access grant. Send it as the `X-Board-Access` header on subsequent content reads to pass the password wall. */
|
|
226
226
|
token: string;
|
|
227
227
|
};
|
|
228
|
+
/** @description An AI Catalog listing the board's MCP Server Card, for discovery from the board's domain alone. */
|
|
229
|
+
BoardAiCatalog: {
|
|
230
|
+
/**
|
|
231
|
+
* @description The AI Catalog format version.
|
|
232
|
+
* @enum {string}
|
|
233
|
+
*/
|
|
234
|
+
specVersion: "1.0";
|
|
235
|
+
/** @description One entry: the board's MCP server. */
|
|
236
|
+
entries: {
|
|
237
|
+
/** @description The server's catalog identifier, `urn:air:<host>:mcp:jobs`, where `<host>` is the board's public host without a leading `www.`. */
|
|
238
|
+
identifier: string;
|
|
239
|
+
/**
|
|
240
|
+
* @description The entry is an MCP Server Card.
|
|
241
|
+
* @enum {string}
|
|
242
|
+
*/
|
|
243
|
+
type: "application/mcp-server-card+json";
|
|
244
|
+
/** @description Where to fetch the Server Card: `/mcp/server-card` on the board's own host. */
|
|
245
|
+
url: string;
|
|
246
|
+
}[];
|
|
247
|
+
};
|
|
228
248
|
BoardAuthConsumeMagicLinkBody: {
|
|
229
249
|
token: string;
|
|
230
250
|
};
|
|
@@ -408,6 +428,40 @@ interface components {
|
|
|
408
428
|
definition: components["schemas"]["CustomFieldDefinition"];
|
|
409
429
|
};
|
|
410
430
|
BoardJobFormField: components["schemas"]["BoardFormBuiltinField"] | components["schemas"]["BoardJobFormCustomField"] | components["schemas"]["BoardJobFormCollectionField"];
|
|
431
|
+
/** @description An MCP Server Card (SEP-2127): what an assistant needs to find and connect to the server before it connects. It lists no tools; `tools/list` on the server does. */
|
|
432
|
+
BoardMcpServerCard: {
|
|
433
|
+
/** @description The Server Card JSON Schema this document follows: `https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json`. */
|
|
434
|
+
$schema: string;
|
|
435
|
+
/** @description The server's name in reverse-DNS form, from the board's public host: `jobs.example.com` is `com.example.jobs/jobs`. A leading `www.` is dropped. */
|
|
436
|
+
name: string;
|
|
437
|
+
/** @description The server version, the same one `initialize` reports in `serverInfo`. */
|
|
438
|
+
version: string;
|
|
439
|
+
/** @description The board name, cut to 100 characters. */
|
|
440
|
+
title?: string;
|
|
441
|
+
/** @description What the server does, in at most 100 characters. */
|
|
442
|
+
description: string;
|
|
443
|
+
/** @description The server's setup page on the board's host, `/mcp/docs`. */
|
|
444
|
+
websiteUrl: string;
|
|
445
|
+
/** @description The board's square app icons when it has them, otherwise its logo. Absent when the board has neither. */
|
|
446
|
+
icons?: {
|
|
447
|
+
/** @description Absolute URL of the icon image. */
|
|
448
|
+
src: string;
|
|
449
|
+
/** @description The image type, when known (`image/png`). */
|
|
450
|
+
mimeType?: string;
|
|
451
|
+
/** @description The pixel sizes, when known (`512x512`). */
|
|
452
|
+
sizes?: string[];
|
|
453
|
+
}[];
|
|
454
|
+
/** @description Where to connect: one Streamable HTTP endpoint. */
|
|
455
|
+
remotes: {
|
|
456
|
+
/**
|
|
457
|
+
* @description The transport: stateless Streamable HTTP.
|
|
458
|
+
* @enum {string}
|
|
459
|
+
*/
|
|
460
|
+
type: "streamable-http";
|
|
461
|
+
/** @description The server URL, `/mcp` on the board's own host. */
|
|
462
|
+
url: string;
|
|
463
|
+
}[];
|
|
464
|
+
};
|
|
411
465
|
BoardProfileFormCollectionField: {
|
|
412
466
|
/**
|
|
413
467
|
* @description discriminator enum property added by openapi-typescript
|
|
@@ -1160,6 +1214,11 @@ interface components {
|
|
|
1160
1214
|
}[];
|
|
1161
1215
|
};
|
|
1162
1216
|
colorMode?: string;
|
|
1217
|
+
/**
|
|
1218
|
+
* @description How a paid plan is checked out. `hosted_page` (the default) returns `status: checkout` with a Stripe-hosted `checkoutUrl`. `embedded_page` returns `status: embedded_checkout` with a client secret to mount Stripe Embedded Checkout on your own page; cards complete in place, and payment methods that need a redirect return to the board origin's `/post/success`.
|
|
1219
|
+
* @enum {string}
|
|
1220
|
+
*/
|
|
1221
|
+
checkoutUiMode?: "hosted_page" | "embedded_page";
|
|
1163
1222
|
};
|
|
1164
1223
|
CreatePipelineStageBody: {
|
|
1165
1224
|
/** @description The job whose pipeline gains the stage. */
|
|
@@ -1992,6 +2051,24 @@ interface components {
|
|
|
1992
2051
|
object: "job_posting_billing_verification";
|
|
1993
2052
|
success: boolean;
|
|
1994
2053
|
};
|
|
2054
|
+
JobPostingCheckoutStatus: {
|
|
2055
|
+
/** @enum {string} */
|
|
2056
|
+
object: "job_posting_checkout_status";
|
|
2057
|
+
/**
|
|
2058
|
+
* @description `awaiting_payment` until Stripe confirms the payment to Cavuno, usually within seconds (poll briefly), `processing` while a delayed payment such as a bank debit clears (days), `paid` once it has, `payment_failed` when that delayed payment failed (the job stays a draft until a new checkout is paid), `canceled` when the checkout expired unpaid.
|
|
2059
|
+
* @enum {string}
|
|
2060
|
+
*/
|
|
2061
|
+
status: "awaiting_payment" | "processing" | "paid" | "payment_failed" | "canceled";
|
|
2062
|
+
jobId: string;
|
|
2063
|
+
jobTitle: string;
|
|
2064
|
+
/**
|
|
2065
|
+
* @description `published` once the job is live, `pending_approval` while the board reviews it, `unpublished` otherwise (before payment, or taken down).
|
|
2066
|
+
* @enum {string}
|
|
2067
|
+
*/
|
|
2068
|
+
jobStatus: "published" | "pending_approval" | "unpublished";
|
|
2069
|
+
/** @description `published` only: the job's public URL on the board. */
|
|
2070
|
+
jobUrl: string | null;
|
|
2071
|
+
};
|
|
1995
2072
|
JobPostingLogo: {
|
|
1996
2073
|
/** @enum {string} */
|
|
1997
2074
|
object: "job_posting_logo";
|
|
@@ -2031,6 +2108,19 @@ interface components {
|
|
|
2031
2108
|
status: "checkout";
|
|
2032
2109
|
checkoutUrl: string;
|
|
2033
2110
|
jobId: string;
|
|
2111
|
+
} | {
|
|
2112
|
+
/** @enum {string} */
|
|
2113
|
+
object: "job_posting_result";
|
|
2114
|
+
/** @enum {string} */
|
|
2115
|
+
status: "embedded_checkout";
|
|
2116
|
+
/** @description The Checkout Session client secret for `stripe.initEmbeddedCheckout`. The session expires after 24 hours unless paid. */
|
|
2117
|
+
clientSecret: string;
|
|
2118
|
+
sessionId: string;
|
|
2119
|
+
/** @description The board's connected Stripe account; pass it as `stripeAccount` to `loadStripe`. */
|
|
2120
|
+
stripeAccountId: string;
|
|
2121
|
+
/** @description The Stripe publishable key for `loadStripe`. */
|
|
2122
|
+
publishableKey: string;
|
|
2123
|
+
jobId: string;
|
|
2034
2124
|
} | {
|
|
2035
2125
|
/** @enum {string} */
|
|
2036
2126
|
object: "job_posting_result";
|
|
@@ -2219,7 +2309,7 @@ interface components {
|
|
|
2219
2309
|
status: "granted" | "withdrawn";
|
|
2220
2310
|
source: string;
|
|
2221
2311
|
/** @enum {string|null} */
|
|
2222
|
-
reason: "person_request" | "operator_request" | "account_deleted" | null;
|
|
2312
|
+
reason: "person_request" | "operator_request" | "account_deleted" | "spam_report" | null;
|
|
2223
2313
|
/** Format: date-time */
|
|
2224
2314
|
grantedAt: string | null;
|
|
2225
2315
|
/** Format: date-time */
|
|
@@ -2826,6 +2916,8 @@ interface components {
|
|
|
2826
2916
|
contactPage: boolean;
|
|
2827
2917
|
/** @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. */
|
|
2828
2918
|
placeSuggestions: boolean;
|
|
2919
|
+
/** @description Whether the board serves its public MCP server, which AI assistants connect to at `/mcp` on the board's own host, with a setup page for job seekers at `/mcp/docs`. `true` on a paid board that is not password-protected and has not turned the server off. Show a link to `/mcp/docs` (for example in the footer) only when `true`. */
|
|
2920
|
+
mcp: boolean;
|
|
2829
2921
|
};
|
|
2830
2922
|
/**
|
|
2831
2923
|
* @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`.
|
|
@@ -3506,8 +3598,10 @@ interface components {
|
|
|
3506
3598
|
canonicalSlug: string;
|
|
3507
3599
|
/** @description Board-language name with source-name fallback. */
|
|
3508
3600
|
displayName: string;
|
|
3509
|
-
/** @description Live published-job count for this term on the board. Maintained as jobs publish and expire — not a tally of the current list page. */
|
|
3601
|
+
/** @description Live published-job count for this term on the board. Maintained as jobs publish and expire — not a tally of the current list page. For a category, only jobs tagged with the category itself, so a parent whose jobs all sit on its children has `0`; see `totalJobCount`. */
|
|
3510
3602
|
jobCount: number;
|
|
3603
|
+
/** @description Live jobs on this category or any descendant, each job once. Present on categories; equals `jobCount` for a category with no children. Absent on skills. */
|
|
3604
|
+
totalJobCount?: number;
|
|
3511
3605
|
};
|
|
3512
3606
|
PublicVerifyBoardPasswordBody: {
|
|
3513
3607
|
/** @description The board password. */
|
|
@@ -225,6 +225,26 @@ interface components {
|
|
|
225
225
|
/** @description The board-access grant. Send it as the `X-Board-Access` header on subsequent content reads to pass the password wall. */
|
|
226
226
|
token: string;
|
|
227
227
|
};
|
|
228
|
+
/** @description An AI Catalog listing the board's MCP Server Card, for discovery from the board's domain alone. */
|
|
229
|
+
BoardAiCatalog: {
|
|
230
|
+
/**
|
|
231
|
+
* @description The AI Catalog format version.
|
|
232
|
+
* @enum {string}
|
|
233
|
+
*/
|
|
234
|
+
specVersion: "1.0";
|
|
235
|
+
/** @description One entry: the board's MCP server. */
|
|
236
|
+
entries: {
|
|
237
|
+
/** @description The server's catalog identifier, `urn:air:<host>:mcp:jobs`, where `<host>` is the board's public host without a leading `www.`. */
|
|
238
|
+
identifier: string;
|
|
239
|
+
/**
|
|
240
|
+
* @description The entry is an MCP Server Card.
|
|
241
|
+
* @enum {string}
|
|
242
|
+
*/
|
|
243
|
+
type: "application/mcp-server-card+json";
|
|
244
|
+
/** @description Where to fetch the Server Card: `/mcp/server-card` on the board's own host. */
|
|
245
|
+
url: string;
|
|
246
|
+
}[];
|
|
247
|
+
};
|
|
228
248
|
BoardAuthConsumeMagicLinkBody: {
|
|
229
249
|
token: string;
|
|
230
250
|
};
|
|
@@ -408,6 +428,40 @@ interface components {
|
|
|
408
428
|
definition: components["schemas"]["CustomFieldDefinition"];
|
|
409
429
|
};
|
|
410
430
|
BoardJobFormField: components["schemas"]["BoardFormBuiltinField"] | components["schemas"]["BoardJobFormCustomField"] | components["schemas"]["BoardJobFormCollectionField"];
|
|
431
|
+
/** @description An MCP Server Card (SEP-2127): what an assistant needs to find and connect to the server before it connects. It lists no tools; `tools/list` on the server does. */
|
|
432
|
+
BoardMcpServerCard: {
|
|
433
|
+
/** @description The Server Card JSON Schema this document follows: `https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json`. */
|
|
434
|
+
$schema: string;
|
|
435
|
+
/** @description The server's name in reverse-DNS form, from the board's public host: `jobs.example.com` is `com.example.jobs/jobs`. A leading `www.` is dropped. */
|
|
436
|
+
name: string;
|
|
437
|
+
/** @description The server version, the same one `initialize` reports in `serverInfo`. */
|
|
438
|
+
version: string;
|
|
439
|
+
/** @description The board name, cut to 100 characters. */
|
|
440
|
+
title?: string;
|
|
441
|
+
/** @description What the server does, in at most 100 characters. */
|
|
442
|
+
description: string;
|
|
443
|
+
/** @description The server's setup page on the board's host, `/mcp/docs`. */
|
|
444
|
+
websiteUrl: string;
|
|
445
|
+
/** @description The board's square app icons when it has them, otherwise its logo. Absent when the board has neither. */
|
|
446
|
+
icons?: {
|
|
447
|
+
/** @description Absolute URL of the icon image. */
|
|
448
|
+
src: string;
|
|
449
|
+
/** @description The image type, when known (`image/png`). */
|
|
450
|
+
mimeType?: string;
|
|
451
|
+
/** @description The pixel sizes, when known (`512x512`). */
|
|
452
|
+
sizes?: string[];
|
|
453
|
+
}[];
|
|
454
|
+
/** @description Where to connect: one Streamable HTTP endpoint. */
|
|
455
|
+
remotes: {
|
|
456
|
+
/**
|
|
457
|
+
* @description The transport: stateless Streamable HTTP.
|
|
458
|
+
* @enum {string}
|
|
459
|
+
*/
|
|
460
|
+
type: "streamable-http";
|
|
461
|
+
/** @description The server URL, `/mcp` on the board's own host. */
|
|
462
|
+
url: string;
|
|
463
|
+
}[];
|
|
464
|
+
};
|
|
411
465
|
BoardProfileFormCollectionField: {
|
|
412
466
|
/**
|
|
413
467
|
* @description discriminator enum property added by openapi-typescript
|
|
@@ -1160,6 +1214,11 @@ interface components {
|
|
|
1160
1214
|
}[];
|
|
1161
1215
|
};
|
|
1162
1216
|
colorMode?: string;
|
|
1217
|
+
/**
|
|
1218
|
+
* @description How a paid plan is checked out. `hosted_page` (the default) returns `status: checkout` with a Stripe-hosted `checkoutUrl`. `embedded_page` returns `status: embedded_checkout` with a client secret to mount Stripe Embedded Checkout on your own page; cards complete in place, and payment methods that need a redirect return to the board origin's `/post/success`.
|
|
1219
|
+
* @enum {string}
|
|
1220
|
+
*/
|
|
1221
|
+
checkoutUiMode?: "hosted_page" | "embedded_page";
|
|
1163
1222
|
};
|
|
1164
1223
|
CreatePipelineStageBody: {
|
|
1165
1224
|
/** @description The job whose pipeline gains the stage. */
|
|
@@ -1992,6 +2051,24 @@ interface components {
|
|
|
1992
2051
|
object: "job_posting_billing_verification";
|
|
1993
2052
|
success: boolean;
|
|
1994
2053
|
};
|
|
2054
|
+
JobPostingCheckoutStatus: {
|
|
2055
|
+
/** @enum {string} */
|
|
2056
|
+
object: "job_posting_checkout_status";
|
|
2057
|
+
/**
|
|
2058
|
+
* @description `awaiting_payment` until Stripe confirms the payment to Cavuno, usually within seconds (poll briefly), `processing` while a delayed payment such as a bank debit clears (days), `paid` once it has, `payment_failed` when that delayed payment failed (the job stays a draft until a new checkout is paid), `canceled` when the checkout expired unpaid.
|
|
2059
|
+
* @enum {string}
|
|
2060
|
+
*/
|
|
2061
|
+
status: "awaiting_payment" | "processing" | "paid" | "payment_failed" | "canceled";
|
|
2062
|
+
jobId: string;
|
|
2063
|
+
jobTitle: string;
|
|
2064
|
+
/**
|
|
2065
|
+
* @description `published` once the job is live, `pending_approval` while the board reviews it, `unpublished` otherwise (before payment, or taken down).
|
|
2066
|
+
* @enum {string}
|
|
2067
|
+
*/
|
|
2068
|
+
jobStatus: "published" | "pending_approval" | "unpublished";
|
|
2069
|
+
/** @description `published` only: the job's public URL on the board. */
|
|
2070
|
+
jobUrl: string | null;
|
|
2071
|
+
};
|
|
1995
2072
|
JobPostingLogo: {
|
|
1996
2073
|
/** @enum {string} */
|
|
1997
2074
|
object: "job_posting_logo";
|
|
@@ -2031,6 +2108,19 @@ interface components {
|
|
|
2031
2108
|
status: "checkout";
|
|
2032
2109
|
checkoutUrl: string;
|
|
2033
2110
|
jobId: string;
|
|
2111
|
+
} | {
|
|
2112
|
+
/** @enum {string} */
|
|
2113
|
+
object: "job_posting_result";
|
|
2114
|
+
/** @enum {string} */
|
|
2115
|
+
status: "embedded_checkout";
|
|
2116
|
+
/** @description The Checkout Session client secret for `stripe.initEmbeddedCheckout`. The session expires after 24 hours unless paid. */
|
|
2117
|
+
clientSecret: string;
|
|
2118
|
+
sessionId: string;
|
|
2119
|
+
/** @description The board's connected Stripe account; pass it as `stripeAccount` to `loadStripe`. */
|
|
2120
|
+
stripeAccountId: string;
|
|
2121
|
+
/** @description The Stripe publishable key for `loadStripe`. */
|
|
2122
|
+
publishableKey: string;
|
|
2123
|
+
jobId: string;
|
|
2034
2124
|
} | {
|
|
2035
2125
|
/** @enum {string} */
|
|
2036
2126
|
object: "job_posting_result";
|
|
@@ -2219,7 +2309,7 @@ interface components {
|
|
|
2219
2309
|
status: "granted" | "withdrawn";
|
|
2220
2310
|
source: string;
|
|
2221
2311
|
/** @enum {string|null} */
|
|
2222
|
-
reason: "person_request" | "operator_request" | "account_deleted" | null;
|
|
2312
|
+
reason: "person_request" | "operator_request" | "account_deleted" | "spam_report" | null;
|
|
2223
2313
|
/** Format: date-time */
|
|
2224
2314
|
grantedAt: string | null;
|
|
2225
2315
|
/** Format: date-time */
|
|
@@ -2826,6 +2916,8 @@ interface components {
|
|
|
2826
2916
|
contactPage: boolean;
|
|
2827
2917
|
/** @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. */
|
|
2828
2918
|
placeSuggestions: boolean;
|
|
2919
|
+
/** @description Whether the board serves its public MCP server, which AI assistants connect to at `/mcp` on the board's own host, with a setup page for job seekers at `/mcp/docs`. `true` on a paid board that is not password-protected and has not turned the server off. Show a link to `/mcp/docs` (for example in the footer) only when `true`. */
|
|
2920
|
+
mcp: boolean;
|
|
2829
2921
|
};
|
|
2830
2922
|
/**
|
|
2831
2923
|
* @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`.
|
|
@@ -3506,8 +3598,10 @@ interface components {
|
|
|
3506
3598
|
canonicalSlug: string;
|
|
3507
3599
|
/** @description Board-language name with source-name fallback. */
|
|
3508
3600
|
displayName: string;
|
|
3509
|
-
/** @description Live published-job count for this term on the board. Maintained as jobs publish and expire — not a tally of the current list page. */
|
|
3601
|
+
/** @description Live published-job count for this term on the board. Maintained as jobs publish and expire — not a tally of the current list page. For a category, only jobs tagged with the category itself, so a parent whose jobs all sit on its children has `0`; see `totalJobCount`. */
|
|
3510
3602
|
jobCount: number;
|
|
3603
|
+
/** @description Live jobs on this category or any descendant, each job once. Present on categories; equals `jobCount` for a category with no children. Absent on skills. */
|
|
3604
|
+
totalJobCount?: number;
|
|
3511
3605
|
};
|
|
3512
3606
|
PublicVerifyBoardPasswordBody: {
|
|
3513
3607
|
/** @description The board password. */
|
|
@@ -1,5 +1,5 @@
|
|
|
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-DBI6azWs.mjs';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-qoVMh_Zd.mjs';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
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-DBI6azWs.js';
|
|
2
|
+
import { L as ListEnvelope, v as RelatedSearch, b as CustomFieldFilter, O as ObjectReferenceFilter, a as JobCapability } from './jobs-Dyj1HZ8W.js';
|
|
3
3
|
|
|
4
4
|
type PublicCompany = Schemas['CompanyPublic'];
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PublicBoard, a as CompanyCategorySalary, b as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './board-
|
|
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-BsUhxdjL.mjs';
|
|
2
|
+
import { P as PublicJob } from './jobs-qoVMh_Zd.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-USJ9ZZab.js';
|
|
2
|
+
import { P as PublicJob } from './jobs-Dyj1HZ8W.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Wire enum for `salaryTimeframe`. Defined here (not re-exported from any
|