Cavuno CLI
Manage Cavuno from the terminal with pipeable commands and exit codes
A
JInstall
The CLI is published to the npm registry as cavuno. Install it globally with your preferred package manager, or run it once with npx. View the source or report an issue on GitHub.
npm install --global cavuno
npx cavuno --help
Authentication
Set two environment variables. Mint a key in the Cavuno dashboard under Settings → Developer → API keys. The plaintext secret is shown once at creation — copy it to your secrets manager immediately.
export CAVUNO_API_KEY='cavuno_live_xxxxxxxxxxxxxxxx_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'export CAVUNO_API_URL='https://api.cavuno.com/v1'cavuno usage get
The CLI fails fast at startup if CAVUNO_API_KEY is missing or doesn’t match the cavuno_live_* format — you don’t wait on a 401 round-trip to see the error.
Global flags
| Flag | Purpose |
|---|---|
--api-url <url> | Override CAVUNO_API_URL for this invocation |
--format <json|table> | Output format. Default json (pipe-friendly) |
--help | Print help for the command or subcommand |
--version | Print the CLI version |
Output formats
The default json output is the API response body verbatim — pipe it into jq for scripts. The optional table format pretty-prints key fields for terminal viewing.
cavuno jobs list --status published --format table
Exit codes
The CLI exits with a stable code per error class. Scripts can branch on these without parsing stderr.
| Code | Reason |
|---|---|
0 | Success |
1 | Authentication failure — missing or malformed CAVUNO_API_KEY, 401 auth_unauthenticated |
2 | Validation error — 400 validation_bad_request, missing required CLI flag |
3 | Authorization failure — 403 auth_forbidden |
4 | Resource not found — 404 *_not_found |
5 | Plan / quota — 409 jobs_quota_exceeded, 403 jobs_plan_cannot_publish |
6 | Rate limited — 429 rate_limited (Retry-After printed) |
7 | State conflict — 409 jobs_already_published, jobs_not_published, jobs_already_archived |
10 | Unknown server error — 500 or unmapped |
11 | Network error — DNS failure, connection refused, timeout |
Failure messages on stderr include the API code, message, validation issues (when present), Retry-After (on 429), and X-Request-Id (when present). Echo the request ID when filing support tickets.
jobs
Manage jobs in the authenticated account.
cavuno jobs list
List jobs (paginated).
Maps to GET /v1/jobs (POST /v1/jobs/search when --search, --skills, or --categories is set)
Synopsis
cavuno jobs list [options]
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | Filter by status (draft|published|expired|archived) |
--company-id <id> | no | Filter by company ID |
--search <query> | no | Free-text search; routes through POST /v1/jobs/search |
--skills <slugs> | no | Comma-separated canonical skill slugs |
--categories <slugs> | no | Comma-separated canonical category slugs |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor from previous response |
Examples
# All jobs (first page)cavuno jobs list
# Published onlycavuno jobs list --status published --limit 100
# Published jobs at a single companycavuno jobs list --status published --company-id k17abc...
cavuno jobs get
Fetch a single job by ID (enriched with description, company, places).
Maps to GET /v1/jobs/:id
Synopsis
cavuno jobs get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Job ID |
Examples
cavuno jobs get k17abc...
cavuno jobs get k17abc... | jq -r .title
cavuno jobs create
Create a draft job.
Maps to POST /v1/jobs
Synopsis
cavuno jobs create [options]
Options
| Flag | Required | Description |
|---|---|---|
--title <title> | yes | Job title (required) |
--description <text> | no | Description (markdown/HTML) |
--slug <slug> | no | URL slug; auto-derived from title if omitted |
--company-id <id> | no | Company ID (must belong to your account) |
--application-url <url> | no | Application URL or `mailto:`/email |
--employment-type <type> | no | full_time|part_time|contract|internship|temporary|volunteer|other |
--remote-option <opt> | no | on_site|hybrid|remote |
--seniority <level> | no | entry_level|associate|mid_level|senior|lead|principal|director|executive |
--remote-sponsorship <opt> | no | yes|no|unknown — visa sponsorship for remote candidates |
--remote-permits <json> | no | JSON array, e.g. '[{"type":"country","value":"US"}]' — work-permit scope |
--remote-timezones <json> | no | JSON array, e.g. '[{"type":"all","value":"all"}]' — timezone constraint (auto-derived from --remote-permits when omitted) |
--office-locations <json> | no | JSON array, e.g. '[{"city":"Berlin","country":"DE"}]' — required for on_site/hybrid |
--in-office-period <opt> | no | per_week|per_month|per_year — denominator for --in-office-frequency (hybrid) |
--in-office-frequency <n> | no | In-office count per period (hybrid) |
--salary-min <n> | no | Minimum salary |
--salary-max <n> | no | Maximum salary |
--salary-currency <code> | no | ISO 4217 currency (e.g. USD, EUR, GBP) |
--salary-timeframe <opt> | no | per_year|per_month|per_week|per_day|per_hour |
--education-requirements <list> | no | Comma-separated values: high_school,associate_degree,bachelor_degree,professional_certificate,postgraduate_degree,no_requirements |
--skills <slugs> | no | Comma-separated canonical skill slugs |
--categories <slugs> | no | Comma-separated canonical category slugs |
--experience-months <n> | no | Minimum experience required, in months |
--experience-in-place-of-education | no | Allow equivalent experience to substitute for education |
--is-featured | no | Mark as a featured job on the public board |
--expires-at <iso> | no | Expiry as ISO 8601 datetime (defaults to 30 days from creation when omitted) |
Examples
# Minimalcavuno jobs create --title "Senior Backend Engineer"
# Common remote-only casecavuno jobs create \--title "Senior Platform Engineer" \--description "We’re hiring..." \--employment-type full_time \--remote-option remote \--seniority senior \--company-id k18acme...
# Hybrid role (requires --office-locations)cavuno jobs create \--title "Staff Engineer" \--remote-option hybrid \--in-office-period per_week \--in-office-frequency 2 \--office-locations '[{"city":"Berlin","country":"DE"}]'
# Capture the new IDNEW_ID=$(cavuno jobs create --title "Test" | jq -r .id)
cavuno jobs update
Update fields on an existing job.
Maps to PATCH /v1/jobs/:id
Synopsis
cavuno jobs update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Job ID |
Options
| Flag | Required | Description |
|---|---|---|
--title <title> | no | 1–200 chars |
--description <text> | no | Description (markdown/HTML) |
--slug <slug> | no | |
--company-id <id> | no | Company ID (must belong to your account) |
--application-url <url> | no | Application URL or `mailto:`/email |
--employment-type <type> | no | |
--remote-option <opt> | no | on_site|hybrid|remote |
--seniority <level> | no | |
--remote-sponsorship <opt> | no | yes|no|unknown |
--remote-permits <json> | no | JSON array; pass `[]` to clear |
--remote-timezones <json> | no | JSON array; pass `[]` to clear (PATCH never auto-re-derives) |
--office-locations <json> | no | JSON array; required when --remote-option is on_site/hybrid |
--in-office-period <opt> | no | per_week|per_month|per_year |
--in-office-frequency <n> | no | Hybrid in-office count per period |
--salary-min <n> | no | Minimum salary |
--salary-max <n> | no | Maximum salary |
--salary-currency <code> | no | ISO 4217 currency (e.g. USD, EUR, GBP) |
--salary-timeframe <opt> | no | per_year|per_month|per_week|per_day|per_hour |
--education-requirements <list> | no | Comma-separated list |
--skills <slugs> | no | Comma-separated canonical skill slugs; pass an empty value to clear |
--categories <slugs> | no | Comma-separated canonical category slugs; pass an empty value to clear |
--experience-months <n> | no | Minimum experience required, in months |
--experience-in-place-of-education <bool> | no | true|false (string accepted; PATCH semantics — explicit value required) |
--is-featured <bool> | no | true|false (string accepted; PATCH semantics — explicit value required) |
--expires-at <iso> | no | ISO 8601 datetime (parsed to epoch ms); pass `null` to clear |
Examples
# Renamecavuno jobs update k17abc... --title "Renamed role"
# Re-author the remote-permit set + sponsorshipcavuno jobs update k17abc... \--remote-permits '[{"type":"country","value":"US"}]' \--remote-sponsorship yes
# Clear an existing expirycavuno jobs update k17abc... --expires-at null
# Mark as featuredcavuno jobs update k17abc... --is-featured true
cavuno jobs publish
Publish a job (draft or expired → published).
Maps to POST /v1/jobs/:id/publish
Synopsis
cavuno jobs publish <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Job ID |
Options
| Flag | Required | Description |
|---|---|---|
--expires-at <iso> | no | Optional ISO 8601 expiry timestamp |
Examples
cavuno jobs publish k17abc...
cavuno jobs publish k17abc... --expires-at 2026-12-31T23:59:59Z
cavuno jobs pause
Pause a published job (transition to draft).
Maps to POST /v1/jobs/:id/pause
Synopsis
cavuno jobs pause <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Job ID |
Examples
cavuno jobs pause k17abc...
cavuno jobs expire
Expire a published job immediately (sets expiresAt = now).
Maps to POST /v1/jobs/:id/expire
Synopsis
cavuno jobs expire <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Job ID |
Examples
cavuno jobs expire k17abc...
cavuno jobs duplicate
Duplicate a job (creates a new draft copy).
Maps to POST /v1/jobs/:id/duplicate
Synopsis
cavuno jobs duplicate <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Job ID |
Examples
cavuno jobs duplicate k17abc...
NEW_ID=$(cavuno jobs duplicate k17abc... | jq -r .id)
cavuno jobs delete
Hard-delete a job. Irreversible.
Maps to DELETE /v1/jobs/:id
Synopsis
cavuno jobs delete <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Job ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno jobs delete k17abc... --yes
cavuno jobs batch
Run a batch of job operations. Pass JSON via --file or stdin. Exit 0 on HTTP 200 even if some rows fail — inspect the body.
Maps to POST /v1/jobs/batch
Synopsis
cavuno jobs batch [options]
Options
| Flag | Required | Description |
|---|---|---|
--file <path> | no | JSON file body (otherwise read stdin) |
Examples
cavuno jobs batch --file ops.json
echo '{"operations":[]}' | cavuno jobs batch
usage
Inspect actionable product capacity (jobs, subscribers, seats).
cavuno usage get
Show used, limit, and remaining capacity for active jobs, confirmed subscribers, and team seats.
Maps to GET /v1/usage
Synopsis
cavuno usage get
Examples
cavuno usage get
me
Show the authenticated operator identity (Board, role, permissions, scopes).
cavuno me get
Retrieve the current Board, actor type, live role/permissions, and credential scopes.
Maps to GET /v1/me
Synopsis
cavuno me get
Examples
cavuno me get
companies
Manage companies in the authenticated account.
cavuno companies list
List companies (paginated).
Maps to GET /v1/companies
Synopsis
cavuno companies list [options]
Options
| Flag | Required | Description |
|---|---|---|
--search <query> | no | Substring search on name |
--markets <slugs> | no | Comma-separated canonical market slugs |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno companies list
cavuno companies list --search acme --limit 10
cavuno companies get
Fetch a single company by ID.
Maps to GET /v1/companies/:id
Synopsis
cavuno companies get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Company ID |
Examples
cavuno companies get k18acme...
cavuno companies create
Create a company.
Maps to POST /v1/companies
Synopsis
cavuno companies create [options]
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | yes | Company name (required) |
--slug <slug> | no | URL slug; auto-derived from --name if omitted |
--website <url> | no | Website URL |
--summary <text> | no | Short summary (≤280 chars) |
--description <text> | no | Long-form description (≤25,000 chars) |
--x-url <handle-or-url> | no | X (Twitter) handle or profile URL |
--linkedin-url <url-or-path> | no | LinkedIn company page URL or path |
--facebook-url <url-or-path> | no | Facebook company page URL or path |
--markets <slugs> | no | Comma-separated canonical market slugs |
Examples
cavuno companies create --name "Acme Corp"
cavuno companies create \--name "Acme Corp" \--website https://acme.com \--summary "World-class widgets"
cavuno companies update
Update a company (partial).
Maps to PATCH /v1/companies/:id
Synopsis
cavuno companies update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Company ID |
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | no | New name |
--slug <slug> | no | New URL slug |
--website <url> | no | New website URL |
--summary <text> | no | New summary |
--description <text> | no | New long-form description |
--x-url <handle-or-url> | no | New X handle or profile URL |
--linkedin-url <url-or-path> | no | New LinkedIn URL or path |
--facebook-url <url-or-path> | no | New Facebook URL or path |
--markets <slugs> | no | Comma-separated canonical market slugs; pass an empty string to clear |
Examples
cavuno companies update k18acme... --name "Acme, Inc."
cavuno companies update k18acme... --website https://acme.io
cavuno companies delete
Delete a company and cascade-delete its jobs.
Maps to DELETE /v1/companies/:id
Synopsis
cavuno companies delete <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Company ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno companies delete k18acme... --yes
cavuno companies upload-logo
Upload or replace a company logo.
Maps to POST /v1/companies/:id/logo
Synopsis
cavuno companies upload-logo <id> <file>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Company ID |
file | yes | Path to a PNG, JPEG, WebP, or GIF logo file |
Examples
cavuno companies upload-logo k18acme... ./acme-logo.png
cavuno companies delete-logo
Delete a company logo.
Maps to DELETE /v1/companies/:id/logo
Synopsis
cavuno companies delete-logo <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Company ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno companies delete-logo k18acme... --yes
cavuno companies find-by-domain
Resolve a company by website domain (uses search endpoint).
Maps to POST /v1/companies/search
Synopsis
cavuno companies find-by-domain <domain>
Arguments
| Name | Required | Description |
|---|---|---|
domain | yes | Website domain (e.g. acme.com) |
Examples
cavuno companies find-by-domain acme.com
cavuno companies find-or-create
Resolve to an existing company by domain or create one.
Maps to POST /v1/companies/find-or-create
Synopsis
cavuno companies find-or-create [options]
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | yes | Company name |
--website <url> | no | Website URL (used for dedup) |
Examples
cavuno companies find-or-create --name "Acme Corp" --website acme.com
cavuno companies search
Search companies by name and market.
Maps to POST /v1/companies/search
Synopsis
cavuno companies search [query] [options]
Arguments
| Name | Required | Description |
|---|---|---|
query | no | Free-text query |
Options
| Flag | Required | Description |
|---|---|---|
--markets <slugs> | no | Comma-separated canonical market slugs |
--limit <n> | no | Page size 1-100 (default 25) |
Examples
cavuno companies search "acme" --limit 10
cavuno companies block
Block a company: archive live jobs and stop automated re-import (backfill, import, API bulk).
Maps to POST /v1/companies/:id/block
Synopsis
cavuno companies block <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Company ID |
Options
| Flag | Required | Description |
|---|---|---|
--reason <text> | no | Optional free-text reason |
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno companies block k18acme... --yes
cavuno companies block k18acme... --reason "legal request" --yes
cavuno companies unblock
Unblock a company so automated sourcing can add jobs again. Does not republish archived jobs.
Maps to POST /v1/companies/:id/unblock
Synopsis
cavuno companies unblock <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Company ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno companies unblock k18acme... --yes
cavuno companies list-jobs
List jobs at a company (any status, optional filter).
Maps to GET /v1/companies/:id/jobs
Synopsis
cavuno companies list-jobs <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Company ID |
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | Filter by status (draft|published|expired|archived) |
--limit <n> | no | Page size 1-100 (default 50) |
Examples
cavuno companies list-jobs k18acme... --status published
cavuno companies batch
Run a batch of company operations. Pass JSON via --file or stdin. Exit 0 on HTTP 200 even if some rows fail — inspect the body.
Maps to POST /v1/companies/batch
Synopsis
cavuno companies batch [options]
Options
| Flag | Required | Description |
|---|---|---|
--file <path> | no | JSON file body (otherwise read stdin) |
Examples
cavuno companies batch --file ops.json
blog
Manage blog posts, authors, and tags.
cavuno blog posts list
List posts (paginated).
Maps to GET /v1/blog/posts
Synopsis
cavuno blog posts list [options]
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | Filter by status (draft|scheduled|published) |
--limit <n> | no | Page size 1-100 |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno blog posts list --status draft
cavuno blog posts get
Fetch a post by ID (includes html).
Maps to GET /v1/blog/posts/:id
Synopsis
cavuno blog posts get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Post ID |
Examples
cavuno blog posts get k97...
cavuno blog posts create
Create a post (defaults to draft).
Maps to POST /v1/blog/posts
Synopsis
cavuno blog posts create [options]
Options
| Flag | Required | Description |
|---|---|---|
--title <title> | yes | Post title (required) |
--slug <slug> | no | URL slug; auto-derived from --title |
--html <html> | no | Rich-text HTML body (sanitized server-side) |
--custom-excerpt <text> | no | Excerpt |
--status <status> | no | draft|scheduled|published |
--published-at <iso> | no | ISO datetime (required for scheduled) |
--featured | no | Mark as featured |
--author-ids <ids> | no | Comma-separated author IDs |
--tag-ids <ids> | no | Comma-separated tag IDs |
--cover-media-id <id> | no | Cover image media id from `cavuno media upload --purpose blog_image` |
--og-image-media-id <id> | no | OG image media id from `cavuno media upload --purpose blog_image` |
--feature-image-alt <text> | no | Feature image alt text |
--feature-image-caption <text> | no | Feature image caption |
--seo-title <text> | no | SEO meta title |
--seo-description <text> | no | SEO meta description |
--canonical-url <url> | no | Canonical URL |
Examples
cavuno blog posts create --title "Hiring trends"
cavuno blog posts update
Update a post (partial). Status changes use publish/unpublish.
Maps to PATCH /v1/blog/posts/:id
Synopsis
cavuno blog posts update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Post ID |
Options
| Flag | Required | Description |
|---|---|---|
--title <title> | no | |
--slug <slug> | no | |
--html <html> | no | |
--custom-excerpt <text> | no | |
--featured | no | |
--author-ids <ids> | no | Comma-separated author IDs |
--tag-ids <ids> | no | Comma-separated tag IDs |
--feature-image-alt <text> | no | Feature image alt text |
--feature-image-caption <text> | no | Feature image caption |
--seo-title <text> | no | SEO meta title |
--seo-description <text> | no | SEO meta description |
--canonical-url <url> | no | Canonical URL |
Examples
cavuno blog posts update k97... --title "New"
cavuno blog posts publish
Publish a post.
Maps to POST /v1/blog/posts/:id/publish
Synopsis
cavuno blog posts publish <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Post ID |
Examples
cavuno blog posts publish k97...
cavuno blog posts unpublish
Unpublish a post.
Maps to POST /v1/blog/posts/:id/unpublish
Synopsis
cavuno blog posts unpublish <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Post ID |
Examples
cavuno blog posts unpublish k97...
cavuno blog posts toggle-featured
Toggle featured on a post.
Maps to POST /v1/blog/posts/:id/toggle-featured
Synopsis
cavuno blog posts toggle-featured <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Post ID |
Examples
cavuno blog posts toggle-featured k97...
cavuno blog posts search
Title search across all statuses (includes drafts).
Maps to POST /v1/blog/posts/search
Synopsis
cavuno blog posts search <query> [options]
Arguments
| Name | Required | Description |
|---|---|---|
query | yes | Search query |
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | Narrow to one status |
--limit <n> | no | Page size 1-100 |
Examples
cavuno blog posts search "hiring"
cavuno blog posts batch
Run a batch of blog post operations. Pass JSON via --file or stdin. Exit 0 on HTTP 200 even if some rows fail — inspect the body.
Maps to POST /v1/blog/posts/batch
Synopsis
cavuno blog posts batch [options]
Options
| Flag | Required | Description |
|---|---|---|
--file <path> | no | JSON file body (otherwise read stdin) |
Examples
cavuno blog posts batch --file ops.json
cavuno blog posts delete
Delete a post.
Maps to DELETE /v1/blog/posts/:id
Synopsis
cavuno blog posts delete <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Post ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno blog posts delete k97... --yes
settings
Manage singleton board settings.
cavuno settings get
Fetch the singleton board settings.
Synopsis
cavuno settings get
cavuno settings update
Update fields on the singleton board settings.
Synopsis
cavuno settings update [options]
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | no | Board name |
--slug <slug> | no | Board slug (cascades to account slug) |
--blog-enabled <bool> | no | Toggle blog feature flag (true/false) |
--job-recommendations-enabled <bool> | no | Toggle candidate job recommendations (true/false) |
--recommended-talent-enabled <bool> | no | Toggle employer recommended talent (true/false) |
--candidates-enabled <bool> | no | Toggle candidate-area flag (true/false) |
--country-gating-mode <mode> | no | Apply country gating: sponsored_only | all_jobs |
--require-cookie-consent <bool> | no | Toggle cookie consent banner (true/false) |
--talent-directory-visibility <mode> | no | Talent directory mode: off | public | employers_only |
--talent-directory-enabled <bool> | no | Legacy shorthand for talent directory (true→public, false→off) |
--cookie-banner-title <text> | no | Cookie banner title |
--cookie-banner-description <text> | no | Cookie banner description |
--cookie-banner-reject-label <text> | no | Cookie banner reject button label |
--cookie-banner-accept-label <text> | no | Cookie banner accept button label |
--cookie-banner-manage-label <text> | no | Cookie banner manage/preferences label |
cavuno settings get-adsense
Fetch the AdSense configuration.
Synopsis
cavuno settings get-adsense
cavuno settings delete-hero
Remove the hero image (storage object + reference).
Maps to DELETE /v1/settings/hero
Synopsis
cavuno settings delete-hero [options]
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno settings delete-hero --yes
cavuno settings update-adsense
Update the AdSense configuration.
Synopsis
cavuno settings update-adsense [options]
Options
| Flag | Required | Description |
|---|---|---|
--enabled <bool> | no | Toggle AdSense (true/false) |
--client-id <id> | no | AdSense publisher id (ca-pub-…); pass empty string to clear |
--ads-txt <text> | no | Inline ads.txt content; pass empty string to clear |
--slots-json <json> | no | AdSense slots as JSON: '{"slot_a":{"enabled":true,"slotId":"123"}}' |
cavuno settings set-password-protection
Enable board password protection. Reads the password from stdin to avoid leaking it via shell history. Pipe a password: echo "pw" | cavuno settings set-password-protection
Synopsis
cavuno settings set-password-protection
cavuno settings delete-password-protection
Disable board password protection (clears the stored hash).
Maps to DELETE /v1/settings/password-protection
Synopsis
cavuno settings delete-password-protection [options]
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno settings delete-password-protection --yes
cavuno settings job-form-set-custom-fields
Replace the board custom job field definitions (whole-array PUT). Pass JSON via --file or stdin: { "customFields": [...] }. Empty array removes all. Changing type on an existing key is rejected.
Maps to PUT /v1/settings/job-form/custom-fields
Synopsis
cavuno settings job-form-set-custom-fields [options]
Options
| Flag | Required | Description |
|---|---|---|
--file <path> | no | JSON file body (otherwise read stdin) |
Examples
cavuno settings job-form-set-custom-fields --file custom-fields.json
media
Upload + fetch media (images) via the v1 dispatcher.
cavuno media upload
Upload a file. Purpose must be one of: board_logo, board_hero, account_avatar, company_logo, blog_image.
Synopsis
cavuno media upload <file> [options]
Arguments
| Name | Required | Description |
|---|---|---|
file | yes | Path to the local file to upload |
Options
| Flag | Required | Description |
|---|---|---|
--purpose <purpose> | yes | Upload purpose (see help) |
--resource-id <id> | no | Optional resource ID for purpose-bound uploads |
--account-id <id> | no | Tenant account ID (defaults to api key tenant) |
cavuno media get
Fetch media metadata + a fresh signed URL by storage ID.
Synopsis
cavuno media get <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Storage ID |
Options
| Flag | Required | Description |
|---|---|---|
--account-id <id> | no | Tenant account ID (defaults to api key tenant) |
domains
Manage custom domains for the authenticated account.
cavuno domains list
List custom domains.
Maps to GET /v1/domains
Synopsis
cavuno domains list [options]
Options
| Flag | Required | Description |
|---|---|---|
--limit <n> | no | Page size 1-50 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno domains list
cavuno domains get
Fetch a custom domain by ID.
Maps to GET /v1/domains/:id
Synopsis
cavuno domains get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Domain ID |
Examples
cavuno domains get domain_123
cavuno domains add
Add a custom domain and print verification instructions.
Maps to POST /v1/domains
Synopsis
cavuno domains add <host>
Arguments
| Name | Required | Description |
|---|---|---|
host | yes | Hostname, for example jobs.example.com |
Examples
cavuno domains add jobs.example.com
cavuno domains verify
Start custom-domain verification.
Maps to POST /v1/domains/:id/verify
Synopsis
cavuno domains verify <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Domain ID |
Options
| Flag | Required | Description |
|---|---|---|
--wait | no | Poll the returned operation until it reaches a terminal state |
--interval-ms <n> | no | Poll interval in milliseconds (default 2000) |
--timeout-ms <n> | no | Give up after this many milliseconds (default 3600000) |
Examples
cavuno domains verify domain_123
cavuno domains verify domain_123 --wait
cavuno domains remove
Delete a custom domain.
Maps to DELETE /v1/domains/:id
Synopsis
cavuno domains remove <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Domain ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno domains remove domain_123 --yes
operations
Poll and cancel async operations by ID.
cavuno operations get
Fetch a single operation by ID.
Maps to GET /v1/operations/:id
Synopsis
cavuno operations get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Operation ID |
Examples
cavuno operations get op_123
cavuno operations cancel
Request cancellation of an operation.
Maps to POST /v1/operations/:id/cancel
Synopsis
cavuno operations cancel <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Operation ID |
Examples
cavuno operations cancel op_123
cavuno operations wait
Poll an operation until it reaches a terminal state (succeeded/failed/cancelled).
Maps to GET /v1/operations/:id (poll)
Synopsis
cavuno operations wait <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Operation ID |
Options
| Flag | Required | Description |
|---|---|---|
--interval-ms <n> | no | Poll interval in milliseconds (default 2000) |
--timeout-ms <n> | no | Give up after this many milliseconds (default 3600000) |
Examples
cavuno operations wait op_123
cavuno operations wait op_123 --interval-ms 500 --timeout-ms 60000
taxonomies
Manage taxonomy skills, categories, and markets; list remote permits/timezones.
cavuno taxonomies remote-permits
List remote-work permit options.
Maps to GET /v1/taxonomies/remote-permits
Synopsis
cavuno taxonomies remote-permits
Examples
cavuno taxonomies remote-permits
cavuno taxonomies remote-timezones
List remote-work timezone options.
Maps to GET /v1/taxonomies/remote-timezones
Synopsis
cavuno taxonomies remote-timezones
Examples
cavuno taxonomies remote-timezones
cavuno taxonomies skills list
List skills.
Maps to GET /v1/taxonomies/skills
Synopsis
cavuno taxonomies skills list [options]
Options
| Flag | Required | Description |
|---|---|---|
--limit <n> | no | Page size 1-100 |
--cursor <cursor> | no | Pagination cursor |
--search <q> | no | Search name/slug |
Examples
cavuno taxonomies skills list
cavuno taxonomies skills get
Get a skill by id.
Maps to GET /v1/taxonomies/skills/:id
Synopsis
cavuno taxonomies skills get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Examples
cavuno taxonomies skills get <id>
cavuno taxonomies skills create
Create a skill.
Maps to POST /v1/taxonomies/skills
Synopsis
cavuno taxonomies skills create [options]
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | yes | Display name |
--slug <slug> | no | Canonical slug (default: from name) |
--source-locale <locale> | no | Source locale |
--alias-slugs <slugs> | no | Comma-separated initial aliases |
Examples
cavuno taxonomies skills create --name "Example" --slug example
cavuno taxonomies skills update
Update a skill.
Maps to PATCH /v1/taxonomies/skills/:id
Synopsis
cavuno taxonomies skills update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | no | Display name |
--slug <slug> | no | Canonical slug |
--source-locale <locale> | no | Source locale |
Examples
cavuno taxonomies skills update <id> --name "New name"
cavuno taxonomies skills delete
Delete a skill.
Maps to DELETE /v1/taxonomies/skills/:id
Synopsis
cavuno taxonomies skills delete <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Examples
cavuno taxonomies skills delete <id>
cavuno taxonomies skills add-alias
Add aliases to a skill (dual-write).
Maps to POST /v1/taxonomies/skills/:id/aliases
Synopsis
cavuno taxonomies skills add-alias <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Options
| Flag | Required | Description |
|---|---|---|
--alias <aliases> | yes | Alias slug or comma-separated list |
Examples
cavuno taxonomies skills add-alias <id> --alias other-slug
cavuno taxonomies skills remove-alias
Remove an alias from a skill.
Maps to DELETE /v1/taxonomies/skills/:id/aliases/:alias
Synopsis
cavuno taxonomies skills remove-alias <id> <alias>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
alias | yes | Alias slug to remove |
Examples
cavuno taxonomies skills remove-alias <id> other-slug
cavuno taxonomies categories tree
List categories as a nested tree.
Maps to GET /v1/taxonomies/categories/tree
Synopsis
cavuno taxonomies categories tree
Examples
cavuno taxonomies categories tree
cavuno taxonomies categories list
List categories.
Maps to GET /v1/taxonomies/categories
Synopsis
cavuno taxonomies categories list [options]
Options
| Flag | Required | Description |
|---|---|---|
--limit <n> | no | Page size 1-100 |
--cursor <cursor> | no | Pagination cursor |
--search <q> | no | Search name/slug |
Examples
cavuno taxonomies categories list
cavuno taxonomies categories get
Get a categorie by id.
Maps to GET /v1/taxonomies/categories/:id
Synopsis
cavuno taxonomies categories get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Examples
cavuno taxonomies categories get <id>
cavuno taxonomies categories create
Create a categorie.
Maps to POST /v1/taxonomies/categories
Synopsis
cavuno taxonomies categories create [options]
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | yes | Display name |
--slug <slug> | no | Canonical slug (default: from name) |
--source-locale <locale> | no | Source locale |
--alias-slugs <slugs> | no | Comma-separated initial aliases |
--parent-id <id> | no | Parent category id |
Examples
cavuno taxonomies categories create --name "Example" --slug example
cavuno taxonomies categories update
Update a categorie.
Maps to PATCH /v1/taxonomies/categories/:id
Synopsis
cavuno taxonomies categories update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | no | Display name |
--slug <slug> | no | Canonical slug |
--source-locale <locale> | no | Source locale |
--parent-id <id> | no | Parent category id |
--clear-parent | no | Clear parent (root) |
Examples
cavuno taxonomies categories update <id> --name "New name"
cavuno taxonomies categories delete
Delete a categorie.
Maps to DELETE /v1/taxonomies/categories/:id
Synopsis
cavuno taxonomies categories delete <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Examples
cavuno taxonomies categories delete <id>
cavuno taxonomies categories add-alias
Add aliases to a categorie (dual-write).
Maps to POST /v1/taxonomies/categories/:id/aliases
Synopsis
cavuno taxonomies categories add-alias <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Options
| Flag | Required | Description |
|---|---|---|
--alias <aliases> | yes | Alias slug or comma-separated list |
Examples
cavuno taxonomies categories add-alias <id> --alias other-slug
cavuno taxonomies categories remove-alias
Remove an alias from a categorie.
Maps to DELETE /v1/taxonomies/categories/:id/aliases/:alias
Synopsis
cavuno taxonomies categories remove-alias <id> <alias>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
alias | yes | Alias slug to remove |
Examples
cavuno taxonomies categories remove-alias <id> other-slug
cavuno taxonomies markets list
List markets.
Maps to GET /v1/taxonomies/markets
Synopsis
cavuno taxonomies markets list [options]
Options
| Flag | Required | Description |
|---|---|---|
--limit <n> | no | Page size 1-100 |
--cursor <cursor> | no | Pagination cursor |
--search <q> | no | Search name/slug |
Examples
cavuno taxonomies markets list
cavuno taxonomies markets get
Get a market by id.
Maps to GET /v1/taxonomies/markets/:id
Synopsis
cavuno taxonomies markets get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Examples
cavuno taxonomies markets get <id>
cavuno taxonomies markets create
Create a market.
Maps to POST /v1/taxonomies/markets
Synopsis
cavuno taxonomies markets create [options]
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | yes | Display name |
--slug <slug> | no | Canonical slug (default: from name) |
--source-locale <locale> | no | Source locale |
--alias-slugs <slugs> | no | Comma-separated initial aliases |
Examples
cavuno taxonomies markets create --name "Example" --slug example
cavuno taxonomies markets update
Update a market.
Maps to PATCH /v1/taxonomies/markets/:id
Synopsis
cavuno taxonomies markets update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | no | Display name |
--slug <slug> | no | Canonical slug |
--source-locale <locale> | no | Source locale |
Examples
cavuno taxonomies markets update <id> --name "New name"
cavuno taxonomies markets delete
Delete a market.
Maps to DELETE /v1/taxonomies/markets/:id
Synopsis
cavuno taxonomies markets delete <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Examples
cavuno taxonomies markets delete <id>
cavuno taxonomies markets add-alias
Add aliases to a market (dual-write).
Maps to POST /v1/taxonomies/markets/:id/aliases
Synopsis
cavuno taxonomies markets add-alias <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
Options
| Flag | Required | Description |
|---|---|---|
--alias <aliases> | yes | Alias slug or comma-separated list |
Examples
cavuno taxonomies markets add-alias <id> --alias other-slug
cavuno taxonomies markets remove-alias
Remove an alias from a market.
Maps to DELETE /v1/taxonomies/markets/:id/aliases/:alias
Synopsis
cavuno taxonomies markets remove-alias <id> <alias>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Opaque object id |
alias | yes | Alias slug to remove |
Examples
cavuno taxonomies markets remove-alias <id> other-slug
candidates
Manage candidates in the authenticated account.
cavuno candidates list
List candidates (paginated).
Maps to GET /v1/candidates
Synopsis
cavuno candidates list [options]
Options
| Flag | Required | Description |
|---|---|---|
--search <query> | no | Substring search on email / display name |
--handle <handle> | no | Exact profile handle lookup |
--has-resume | no | Only candidates with a resume on file |
--created-from <iso> | no | Filter to candidates created on/after |
--created-to <iso> | no | Filter to candidates created on/before |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno candidates list
cavuno candidates list --search alice --has-resume --limit 10
cavuno candidates resume
Download a candidate resume through the protected API.
Maps to GET /v1/candidates/:id/resume
Synopsis
cavuno candidates resume <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Candidate ID |
Options
| Flag | Required | Description |
|---|---|---|
--output <path> | yes | File path to write |
Examples
cavuno candidates resume nh7abc... --output ./candidate-resume.pdf
cavuno candidates get
Fetch a single candidate by ID (with profile + counts).
Maps to GET /v1/candidates/:id
Synopsis
cavuno candidates get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Candidate ID |
Examples
cavuno candidates get nh7abc...
cavuno candidates delete
Permanently erase a candidate and all associated data (GDPR cascade). Returns a candidates.remove operation to poll.
Maps to DELETE /v1/candidates/:id
Synopsis
cavuno candidates delete <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Candidate ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
-y, --yes | no | Skip the confirmation prompt |
--wait | no | Poll the returned operation until it reaches a terminal state |
--interval-ms <n> | no | Poll interval in milliseconds (default 2000) |
--timeout-ms <n> | no | Give up after this many milliseconds (default 3600000) |
Examples
cavuno candidates delete nh7abc... --yes
cavuno candidates delete nh7abc... --yes --wait
employers
Manage employers, memberships, and company claims.
cavuno employers list
List employers (paginated).
Maps to GET /v1/employers
Synopsis
cavuno employers list [options]
Options
| Flag | Required | Description |
|---|---|---|
--search <query> | no | Substring search on email / display name |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno employers list
cavuno employers list --search acme
cavuno employers get
Fetch a single employer by ID (with memberships + claims).
Maps to GET /v1/employers/:id
Synopsis
cavuno employers get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Employer ID |
Examples
cavuno employers get nh7abc...
cavuno employers delete
Permanently erase an employer and all associated data, including memberships/claims (GDPR cascade). Returns an employers.remove operation to poll.
Maps to DELETE /v1/employers/:id
Synopsis
cavuno employers delete <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Employer ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
-y, --yes | no | Skip the confirmation prompt |
--wait | no | Poll the returned operation until it reaches a terminal state |
--interval-ms <n> | no | Poll interval in milliseconds (default 2000) |
--timeout-ms <n> | no | Give up after this many milliseconds (default 3600000) |
Examples
cavuno employers delete nh7abc... --yes
cavuno employers delete nh7abc... --yes --wait
cavuno employers memberships
List employer↔company memberships (paginated).
Maps to GET /v1/employers/memberships
Synopsis
cavuno employers memberships [options]
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | Filter by status (pending|approved|rejected) |
--company-id <id> | no | Filter to a single company |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno employers memberships --status approved
cavuno employers membership
Fetch a single employer↔company membership by ID.
Maps to GET /v1/employers/memberships/:id
Synopsis
cavuno employers membership <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Membership ID |
Examples
cavuno employers membership pd7abc...
cavuno employers claims
List company claims (defaults to pending).
Maps to GET /v1/employers/claims
Synopsis
cavuno employers claims [options]
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | Filter by status (pending|approved|rejected) |
--company-id <id> | no | Filter to a single company |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno employers claims
cavuno employers claims --status approved
cavuno employers approve-claim
Approve a pending company claim (idempotent).
Maps to POST /v1/employers/claims/:id/approve
Synopsis
cavuno employers approve-claim <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Claim ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno employers approve-claim pd7abc...
cavuno employers reject-claim
Reject a pending company claim (idempotent).
Maps to POST /v1/employers/claims/:id/reject
Synopsis
cavuno employers reject-claim <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Claim ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno employers reject-claim pd7abc...
employer-subscriptions
Read employer subscriptions on the tenant board (billing.read).
cavuno employer-subscriptions list
List employer subscriptions.
Maps to GET /v1/employer-subscriptions
Synopsis
cavuno employer-subscriptions list [options]
Options
| Flag | Required | Description |
|---|---|---|
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
--status <status> | no | Filter by status (active, canceled, …) |
--company-id <id> | no | Filter by company id |
Examples
cavuno employer-subscriptions list
cavuno employer-subscriptions list --status active
cavuno employer-subscriptions get
Get one employer subscription by id.
Maps to GET /v1/employer-subscriptions/:id
Synopsis
cavuno employer-subscriptions get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Employer subscription id |
Examples
cavuno employer-subscriptions get es_…
coupons
Manage Board coupons and promotion codes (billing.read / billing.manage).
cavuno coupons list
List Board coupons.
Maps to GET /v1/coupons
Synopsis
cavuno coupons list
Examples
cavuno coupons list
cavuno coupons get
Get a coupon by id.
Maps to GET /v1/coupons/:id
Synopsis
cavuno coupons get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Coupon id |
Examples
cavuno coupons get coupon_xxx
cavuno coupons create
Create a Board coupon.
Maps to POST /v1/coupons
Synopsis
cavuno coupons create [options]
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | yes | Coupon name |
--percent-off <n> | no | Percent off (0-100) |
--amount-off <n> | no | Fixed discount in the currency major unit (e.g. 10 for $10, 1000 for ¥1000) |
--currency <code> | no | Currency for fixed amount (e.g. usd) |
--duration <duration> | yes | once | forever | repeating |
--duration-in-months <n> | no | Required when duration=repeating |
--max-redemptions <n> | no | Max redemptions |
Examples
cavuno coupons create --name "Spring sale" --percent-off 20 --duration once
cavuno coupons rename
Rename a coupon.
Maps to PATCH /v1/coupons/:id
Synopsis
cavuno coupons rename <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Coupon id |
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | yes | New name |
Examples
cavuno coupons rename coupon_xxx --name "Fall sale"
cavuno coupons delete
Delete a coupon (destructive).
Maps to DELETE /v1/coupons/:id
Synopsis
cavuno coupons delete <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Coupon id |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno coupons delete coupon_xxx --yes
cavuno coupons promotion-code-create
Create a promotion code for a coupon.
Maps to POST /v1/coupons/:id/promotion-codes
Synopsis
cavuno coupons promotion-code-create <couponId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
couponId | yes | Coupon id |
Options
| Flag | Required | Description |
|---|---|---|
--code <code> | yes | Promotion code string |
--max-redemptions <n> | no | Max redemptions |
--expires-at <iso> | no | ISO-8601 expiry |
Examples
cavuno coupons promotion-code-create coupon_xxx --code SPRING20
cavuno coupons promotion-code-archive
Archive (deactivate) a promotion code.
Maps to POST /v1/coupons/promotion-codes/:id/archive
Synopsis
cavuno coupons promotion-code-archive <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Promotion code id |
Examples
cavuno coupons promotion-code-archive promotion_xxx
reporting
Manage reporting integrations.
cavuno reporting integrations
List the reporting integrations for the account.
Maps to GET /v1/integrations/reporting
Synopsis
cavuno reporting integrations
Examples
cavuno reporting integrations
cavuno reporting get
Fetch one reporting integration by provider.
Maps to GET /v1/integrations/reporting/:provider
Synopsis
cavuno reporting get <provider>
Arguments
| Name | Required | Description |
|---|---|---|
provider | yes | search_console | adsense | tinybird | stripe |
Examples
cavuno reporting get search_console
cavuno reporting connect
Start the connect flow for a provider (returns an OAuth URL / redirect).
Maps to POST /v1/integrations/reporting/:provider/connect
Synopsis
cavuno reporting connect <provider> [options]
Arguments
| Name | Required | Description |
|---|---|---|
provider | yes | search_console | adsense | tinybird | stripe |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno reporting connect search_console
cavuno reporting enable
Enable collection for an existing integration.
Maps to PATCH /v1/integrations/reporting/:provider
Synopsis
cavuno reporting enable <provider> [options]
Arguments
| Name | Required | Description |
|---|---|---|
provider | yes | The provider to enable |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno reporting enable adsense
cavuno reporting disable
Pause collection for an existing integration.
Maps to PATCH /v1/integrations/reporting/:provider
Synopsis
cavuno reporting disable <provider> [options]
Arguments
| Name | Required | Description |
|---|---|---|
provider | yes | The provider to disable |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno reporting disable adsense
cavuno reporting disconnect
Disconnect an integration (delete the row).
Maps to DELETE /v1/integrations/reporting/:provider
Synopsis
cavuno reporting disconnect <provider> [options]
Arguments
| Name | Required | Description |
|---|---|---|
provider | yes | The provider to disconnect |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno reporting disconnect adsense --yes
billing
Read account billing status and manage the platform subscription.
cavuno billing subscription
Show the account's platform subscription.
Maps to GET /v1/billing/subscription
Synopsis
cavuno billing subscription
Examples
cavuno billing subscription
cavuno billing connect
Show the Board's payment connection readiness.
Maps to GET /v1/billing/connect
Synopsis
cavuno billing connect
Examples
cavuno billing connect
cavuno billing checkout
Create a hosted checkout URL for a target plan.
Maps to POST /v1/billing/checkout
Synopsis
cavuno billing checkout [options]
Options
| Flag | Required | Description |
|---|---|---|
--plan <key> | yes | Plan key (starter|basic|grow|advanced|enterprise) |
--interval <interval> | no | Billing interval (monthly|annual; default monthly) |
Examples
cavuno billing checkout --plan starter
cavuno billing checkout --plan basic --interval annual
cavuno billing upgrade
Create a hosted human-confirmation URL for a plan change.
Maps to POST /v1/billing/upgrade
Synopsis
cavuno billing upgrade [options]
Options
| Flag | Required | Description |
|---|---|---|
--plan <key> | yes | Target plan key (starter|basic|grow|advanced|enterprise) |
--interval <interval> | no | Billing interval (monthly|annual; default monthly) |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno billing upgrade --plan basic
cavuno billing upgrade --plan grow --interval annual
plans
Manage employer plans the account sells (pricing, features). Distinct from `billing` (your platform subscription).
cavuno plans list
List employer plans for the authenticated account.
Maps to GET /v1/plans
Synopsis
cavuno plans list
Examples
cavuno plans list
cavuno plans get
Get one employer plan by id.
Maps to GET /v1/plans/:id
Synopsis
cavuno plans get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Plan id |
Examples
cavuno plans get plans_xxx
cavuno plans create
Create an employer plan (metadata only; set price separately).
Maps to POST /v1/plans
Synopsis
cavuno plans create [options]
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | yes | Plan display name |
--kind <kind> | yes | Plan kind: free | one_time | bundle | subscription |
--description <text> | no | Plan description |
--billing-interval <interval> | no | month | year (subscription) |
--purpose <purpose> | no | job_posting | talent_access |
--public | no | List the plan publicly |
--recommended | no | Mark as recommended |
--display-order <n> | no | Display order integer |
Examples
cavuno plans create --name "Pro" --kind subscription --billing-interval month --public
cavuno plans update
Update plan metadata (archive with --archived).
Maps to PATCH /v1/plans/:id
Synopsis
cavuno plans update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Plan id |
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | no | New display name |
--description <text> | no | New description |
--public | no | Publish the plan |
--private | no | Unpublish the plan |
--recommended | no | Mark recommended |
--not-recommended | no | Clear recommended |
--archived | no | Archive the plan |
--unarchived | no | Unarchive the plan |
--display-order <n> | no | Display order integer |
Examples
cavuno plans update plans_xxx --name "Pro+"
cavuno plans update plans_xxx --archived
cavuno plans set-price
Set the single checkout price (requires a ready payment connection).
Maps to PUT /v1/plans/:id/price
Synopsis
cavuno plans set-price <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Plan id |
Options
| Flag | Required | Description |
|---|---|---|
--currency <code> | yes | ISO 4217 currency, e.g. usd |
--amount-cents <n> | yes | Amount in smallest currency unit |
Examples
cavuno plans set-price plans_xxx --currency usd --amount-cents 9900
cavuno plans get-features
List feature key/value pairs for a plan.
Maps to GET /v1/plans/:id/features
Synopsis
cavuno plans get-features <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Plan id |
Examples
cavuno plans get-features plans_xxx
cavuno plans set-features
Replace plan feature values. Pass JSON: '[{"key":"jobs.max_active","value":"10"}]'.
Maps to PUT /v1/plans/:id/features
Synopsis
cavuno plans set-features <id> <featuresJson>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Plan id |
featuresJson | yes | JSON array of {key, value} |
Examples
cavuno plans set-features plans_xxx '[{"key":"jobs.max_active","value":"10"}]'
transactions
Read the board transactions ledger (billing.read). List + get only.
cavuno transactions list
List transactions (date-desc, or relevance when --search).
Maps to GET /v1/transactions
Synopsis
cavuno transactions list [options]
Options
| Flag | Required | Description |
|---|---|---|
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
--status <status> | no | Filter: paid | open | void | uncollectible |
--kind <kind> | no | Filter: card_post | invoice | subscription |
--search <q> | no | Full-text search (mutually exclusive with --order-id / --subscription-id) |
--order-id <id> | no | Filter by jobOrders id (mutually exclusive with --search / --subscription-id) |
--subscription-id <id> | no | Filter by employerSubscriptions id (mutually exclusive with --search / --order-id) |
Examples
cavuno transactions list
cavuno transactions list --status paid --kind invoice
cavuno transactions list --search "Acme"
cavuno transactions get
Get one transaction by id.
Maps to GET /v1/transactions/:id
Synopsis
cavuno transactions get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Transaction id |
Examples
cavuno transactions get tx_…
indexing
Google Indexing configuration and the IndexNow toggle.
cavuno indexing config
Show the indexing + IndexNow configuration.
Maps to GET /v1/integrations/indexing
Synopsis
cavuno indexing config
Examples
cavuno indexing config
cavuno indexing enable-indexnow
Enable IndexNow (Bing/Yandex instant indexing).
Maps to POST /v1/integrations/indexing/toggle-indexnow
Synopsis
cavuno indexing enable-indexnow [options]
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno indexing enable-indexnow
cavuno indexing disable-indexnow
Disable IndexNow.
Maps to POST /v1/integrations/indexing/toggle-indexnow
Synopsis
cavuno indexing disable-indexnow [options]
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno indexing disable-indexnow
imports
Bulk-load jobs from CSV files (upload → confirm → execute).
cavuno imports list
List import batches (paginated, most recent first).
Maps to GET /v1/imports
Synopsis
cavuno imports list [options]
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | Filter by status (pending|processing|completed|partial|failed) |
--from <iso> | no | Only batches created at or after this ISO date |
--to <iso> | no | Only batches created at or before this ISO date |
--limit <n> | no | Page size 1-50 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno imports list
cavuno imports list --status completed --limit 10
cavuno imports get
Fetch one import batch (status, errors, proposed mapping).
Maps to GET /v1/imports/:id
Synopsis
cavuno imports get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Import batch ID |
Examples
cavuno imports get imports_k25abc
cavuno imports create
Upload a CSV and start discovery. Returns an imports.parse operation to poll.
Maps to POST /v1/imports
Synopsis
cavuno imports create <file> [options]
Arguments
| Name | Required | Description |
|---|---|---|
file | yes | Path to the local .csv file to upload |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
--wait | no | Poll the returned operation until it reaches a terminal state |
--interval-ms <n> | no | Poll interval in milliseconds (default 2000) |
--timeout-ms <n> | no | Give up after this many milliseconds (default 3600000) |
Examples
cavuno imports create ./jobs.csv
cavuno imports create ./jobs.csv --wait
cavuno imports confirm
Confirm the mapping and start execution. Returns an imports.confirm operation to poll.
Maps to POST /v1/imports/:id/confirm
Synopsis
cavuno imports confirm <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Import batch ID |
Options
| Flag | Required | Description |
|---|---|---|
--inline-mapping <json> | no | A first-time or revised mapping as a JSON string. Omit to use the batch-attached mapping. |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
--wait | no | Poll the returned operation until it reaches a terminal state |
--interval-ms <n> | no | Poll interval in milliseconds (default 2000) |
--timeout-ms <n> | no | Give up after this many milliseconds (default 3600000) |
Examples
cavuno imports confirm imports_k25abc
cavuno imports confirm imports_k25abc --wait
cavuno imports cancel
Cancel a pending or running import batch (cooperative — rows already written remain).
Maps to POST /v1/imports/:id/cancel
Synopsis
cavuno imports cancel <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Import batch ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno imports cancel imports_k25abc
cavuno imports quota
Show the account's daily import usage and reset boundary.
Maps to GET /v1/imports/quota
Synopsis
cavuno imports quota
Examples
cavuno imports quota
backfill
Manage Backfill rules, company sources, and aggregate progress (dashboard-shaped Operator surface).
cavuno backfill progress
Show aggregate Backfill progress for the Board (onboarding-shaped).
Maps to GET /v1/backfill/progress
Synopsis
cavuno backfill progress
Examples
cavuno backfill progress
cavuno backfill rules list
List named Backfill rules for the Board.
Maps to GET /v1/backfill/rules
Synopsis
cavuno backfill rules list
Examples
cavuno backfill rules list
cavuno backfill rules get
Retrieve a Backfill rule by Cavuno ID.
Maps to GET /v1/backfill/rules/{id}
Synopsis
cavuno backfill rules get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Backfill rule ID |
Examples
cavuno backfill rules get <id>
cavuno backfill rules create
Create a named Backfill rule. Pass --rules as a JSON array of rule cards.
Maps to POST /v1/backfill/rules
Synopsis
cavuno backfill rules create [options]
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | yes | Rule display name |
--rules <json> | yes | JSON array of { match, conditions[] } rule cards |
--filters <json> | no | JSON object of filters (countries, subdivisions, seniorities, employmentTypes, workplaceTypes) |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno backfill rules create --name Engineering --rules '[{"match":"any","conditions":[{"field":"title","operator":"contains_any","terms":["engineer"]}]}]'
cavuno backfill rules update
Partially update a Backfill rule (name, rules, and/or filters).
Maps to PATCH /v1/backfill/rules/{id}
Synopsis
cavuno backfill rules update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Backfill rule ID |
Options
| Flag | Required | Description |
|---|---|---|
--name <name> | no | New display name |
--rules <json> | no | JSON array of rule cards replacing the current rules |
--filters <json> | no | JSON object of filters replacing the current filters |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno backfill rules update <id> --name "Platform eng"
cavuno backfill rules remove
Delete a named Backfill rule.
Maps to DELETE /v1/backfill/rules/{id}
Synopsis
cavuno backfill rules remove <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Backfill rule ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno backfill rules remove <id> --yes
cavuno backfill companies list
List companies for one Backfill tab state (backfilling | available | needs_match | not_backfilling).
Maps to GET /v1/backfill/companies
Synopsis
cavuno backfill companies list [options]
Options
| Flag | Required | Description |
|---|---|---|
--state <state> | yes | Tab state: backfilling | available | needs_match | not_backfilling |
--search <text> | no | Case-insensitive name filter |
--limit <n> | no | Page size (1-100) |
--cursor <cursor> | no | Opaque pagination cursor |
Examples
cavuno backfill companies list --state available
cavuno backfill companies list --state needs_match --search Acme
cavuno backfill companies start
Start Backfill for a Cavuno company.
Maps to POST /v1/backfill/companies/{companyId}/start
Synopsis
cavuno backfill companies start <companyId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
companyId | yes | Cavuno company ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno backfill companies start <companyId>
cavuno backfill companies stop
Stop Backfill for a Cavuno company.
Maps to POST /v1/backfill/companies/{companyId}/stop
Synopsis
cavuno backfill companies stop <companyId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
companyId | yes | Cavuno company ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno backfill companies stop <companyId>
cavuno backfill companies bulk-start
Start Backfill for up to 100 Cavuno company IDs (ordered partial success).
Maps to POST /v1/backfill/companies/bulk-start
Synopsis
cavuno backfill companies bulk-start [options]
Options
| Flag | Required | Description |
|---|---|---|
--company-ids <ids> | yes | Comma-separated Cavuno company IDs |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno backfill companies bulk-start --company-ids co1,co2
cavuno backfill companies bulk-stop
Stop Backfill for up to 100 Cavuno company IDs (ordered partial success).
Maps to POST /v1/backfill/companies/bulk-stop
Synopsis
cavuno backfill companies bulk-stop [options]
Options
| Flag | Required | Description |
|---|---|---|
--company-ids <ids> | yes | Comma-separated Cavuno company IDs |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno backfill companies bulk-stop --company-ids co1,co2
cavuno backfill companies match
Confirm a needs_match candidate by list index. Optionally start backfill.
Maps to POST /v1/backfill/companies/{companyId}/match
Synopsis
cavuno backfill companies match <companyId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
companyId | yes | Cavuno company ID |
Options
| Flag | Required | Description |
|---|---|---|
--candidate-index <n> | yes | Zero-based candidate index from list |
--start | no | Start backfill after linking the match (default false) (default: false) |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno backfill companies match <companyId> --candidate-index 0 --start
cavuno backfill companies mark-no-match
Mark a needs_match company as no match.
Maps to POST /v1/backfill/companies/{companyId}/mark-no-match
Synopsis
cavuno backfill companies mark-no-match <companyId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
companyId | yes | Cavuno company ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno backfill companies mark-no-match <companyId>
analytics
Typed Board analytics (overview, traffic, apply-clicks, job-visitors).
cavuno analytics overview
Show homepage-shaped analytics overview metrics for the Board.
Maps to GET /v1/analytics/overview
Synopsis
cavuno analytics overview [options]
Options
| Flag | Required | Description |
|---|---|---|
--start <date> | no | Inclusive range start (YYYY-MM-DD, UTC) |
--end <date> | no | Inclusive range end (YYYY-MM-DD, UTC) |
Examples
cavuno analytics overview
cavuno analytics overview --start 2026-01-01 --end 2026-01-30
cavuno analytics traffic
Show homepage-shaped traffic tables (pages, sources, locations, devices).
Maps to GET /v1/analytics/traffic
Synopsis
cavuno analytics traffic [options]
Options
| Flag | Required | Description |
|---|---|---|
--start <date> | no | Inclusive range start (YYYY-MM-DD, UTC) |
--end <date> | no | Inclusive range end (YYYY-MM-DD, UTC) |
--limit <n> | no | Max rows per table (1–10) |
Examples
cavuno analytics traffic
cavuno analytics traffic --start 2026-01-01 --end 2026-01-30 --limit 5
cavuno analytics apply-clicks
List apply clicks by job and first-touch channel (join jobs export on id).
Maps to GET /v1/analytics/apply-clicks
Synopsis
cavuno analytics apply-clicks [options]
Options
| Flag | Required | Description |
|---|---|---|
--start <date> | no | Inclusive range start (YYYY-MM-DD, UTC) |
--end <date> | no | Inclusive range end (YYYY-MM-DD, UTC) |
--limit <n> | no | Page size (1–1000, default 100) |
--cursor <cursor> | no | Pagination cursor from a previous response |
Examples
cavuno analytics apply-clicks
cavuno analytics apply-clicks --start 2026-01-01 --end 2026-01-30 --limit 100
cavuno analytics job-visitors
List unique job-detail visitors by first-touch channel (join export on company_slug + slug).
Maps to GET /v1/analytics/job-visitors
Synopsis
cavuno analytics job-visitors [options]
Options
| Flag | Required | Description |
|---|---|---|
--start <date> | no | Inclusive range start (YYYY-MM-DD, UTC) |
--end <date> | no | Inclusive range end (YYYY-MM-DD, UTC) |
--limit <n> | no | Page size (1–1000, default 100) |
--cursor <cursor> | no | Pagination cursor from a previous response |
Examples
cavuno analytics job-visitors
cavuno analytics job-visitors --start 2026-01-01 --end 2026-01-30
paywall
Manage the candidate-access paywall (atomic configuration + six offers) and list subscriptions.
cavuno paywall get
Show the atomic candidate paywall configuration and six fixed offers.
Maps to GET /v1/paywall
Synopsis
cavuno paywall get
Examples
cavuno paywall get
cavuno paywall replace
Atomically replace the candidate paywall configuration and all six offers. Requires --idempotency-key (or CAVUNO_IDEMPOTENCY_KEY).
Maps to PUT /v1/paywall
Synopsis
cavuno paywall replace [options]
Options
| Flag | Required | Description |
|---|---|---|
--body <json> | yes | Full candidate_paywall JSON body (complete resource replace) |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno paywall replace --body '{"enabled":false,"previewCount":5,...}' --idempotency-key $(uuidgen)
cavuno paywall subscriptions
List candidate paywall subscriptions (read-only grants).
Maps to GET /v1/paywall/subscriptions
Synopsis
cavuno paywall subscriptions [options]
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | Filter by subscription status |
--kind <kind> | no | Filter by kind: recurring | lifetime |
--limit <n> | no | Page size 1–100 |
--cursor <cursor> | no | Pagination cursor from a previous response |
Examples
cavuno paywall subscriptions
cavuno paywall subscriptions --status active --kind recurring
sales-led-plans
Manage contact-led employer pricing cards (CRUD, reorder, publish, hide, archive).
cavuno sales-led-plans list
List active sales-led plans for the Board.
Maps to GET /v1/sales-led-plans
Synopsis
cavuno sales-led-plans list
Examples
cavuno sales-led-plans list
cavuno sales-led-plans get
Retrieve one sales-led plan by ID.
Maps to GET /v1/sales-led-plans/{id}
Synopsis
cavuno sales-led-plans get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Sales-led plan ID |
Examples
cavuno sales-led-plans get <id>
cavuno sales-led-plans create
Create a sales-led plan. Requires --idempotency-key (or CAVUNO_IDEMPOTENCY_KEY).
Maps to POST /v1/sales-led-plans
Synopsis
cavuno sales-led-plans create [options]
Options
| Flag | Required | Description |
|---|---|---|
--body <json> | yes | CreateSalesLedPlanBody JSON |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno sales-led-plans create --body '{"name":"Full search",...}' --idempotency-key $(uuidgen)
cavuno sales-led-plans update
Update a sales-led plan (full field replace). Requires --idempotency-key.
Maps to PATCH /v1/sales-led-plans/{id}
Synopsis
cavuno sales-led-plans update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Sales-led plan ID |
Options
| Flag | Required | Description |
|---|---|---|
--body <json> | yes | UpdateSalesLedPlanBody JSON |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno sales-led-plans update <id> --body '{"name":"…",...}' --idempotency-key $(uuidgen)
cavuno sales-led-plans reorder
Atomically reorder the complete active set. Requires --idempotency-key.
Maps to POST /v1/sales-led-plans/reorder
Synopsis
cavuno sales-led-plans reorder [options]
Options
| Flag | Required | Description |
|---|---|---|
--body <json> | yes | ReorderSalesLedPlansBody JSON ({"orders":[{"id":"…","displayOrder":0},…]}) |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno sales-led-plans reorder --body '{"orders":[...]}' --idempotency-key $(uuidgen)
cavuno sales-led-plans publish
Publish a sales-led plan. Requires --idempotency-key.
Maps to POST /v1/sales-led-plans/{id}/publish
Synopsis
cavuno sales-led-plans publish <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Sales-led plan ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno sales-led-plans publish <id> --idempotency-key $(uuidgen)
cavuno sales-led-plans hide
Hide a sales-led plan. Requires --idempotency-key.
Maps to POST /v1/sales-led-plans/{id}/hide
Synopsis
cavuno sales-led-plans hide <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Sales-led plan ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno sales-led-plans hide <id> --idempotency-key $(uuidgen)
cavuno sales-led-plans archive
Irreversibly archive a sales-led plan. Requires --idempotency-key.
Maps to POST /v1/sales-led-plans/{id}/archive
Synopsis
cavuno sales-led-plans archive <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Sales-led plan ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno sales-led-plans archive <id> --idempotency-key $(uuidgen)
members
Manage the members of the authenticated account.
cavuno members list
List account members.
Maps to GET /v1/members
Synopsis
cavuno members list [options]
Options
| Flag | Required | Description |
|---|---|---|
--role <role> | no | Filter by role (owner|admin|member) |
--suspended <bool> | no | Filter by suspension state (true|false) |
Examples
cavuno members list
cavuno members list --role admin --suspended false
cavuno members get
Fetch a single member by user ID.
Maps to GET /v1/members/:userId
Synopsis
cavuno members get <userId>
Arguments
| Name | Required | Description |
|---|---|---|
userId | yes | The user ID of the member |
Examples
cavuno members get users_k800abc
cavuno members update
Change a member's role. Only an owner may set `owner`; the primary owner's role is immutable (use transfer-ownership).
Maps to PATCH /v1/members/:userId
Synopsis
cavuno members update <userId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
userId | yes | The user ID of the member |
Options
| Flag | Required | Description |
|---|---|---|
--role <role> | yes | The new role (owner|admin|member) |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno members update users_k800abc --role admin
cavuno members remove
Remove a member from the account. The account owner cannot be removed — transfer ownership first.
Maps to DELETE /v1/members/:userId
Synopsis
cavuno members remove <userId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
userId | yes | The user ID of the member |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno members remove users_k800abc --yes
cavuno members suspend
Suspend a member: they keep their role but lose all permission evaluations. The primary owner cannot be suspended.
Maps to POST /v1/members/:userId/suspend
Synopsis
cavuno members suspend <userId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
userId | yes | The user ID of the member |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno members suspend users_k800abc
cavuno members unsuspend
Reinstate a suspended member.
Maps to POST /v1/members/:userId/unsuspend
Synopsis
cavuno members unsuspend <userId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
userId | yes | The user ID of the member |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno members unsuspend users_k800abc
cavuno members transfer-ownership
Transfer the primary-owner role to another member. Only the current primary owner may do this — you will be demoted to admin and the transfer cannot be undone without the new owner transferring it back.
Maps to POST /v1/members/transfer-ownership
Synopsis
cavuno members transfer-ownership <newOwnerUserId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
newOwnerUserId | yes | The user ID of the member who will become the primary owner |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno members transfer-ownership users_k900abc --yes
invitations
Manage pending invitations for the authenticated account.
cavuno invitations list
List invitations (paginated). Accept tokens are redacted.
Maps to GET /v1/invitations
Synopsis
cavuno invitations list [options]
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | Filter by status (pending|expired|accepted|declined) |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno invitations list
cavuno invitations list --status pending
cavuno invitations create
Invite a new member by email. The response includes the accept token and URL (returned only here and on renew).
Maps to POST /v1/invitations
Synopsis
cavuno invitations create [options]
Options
| Flag | Required | Description |
|---|---|---|
--email <email> | yes | The email address to invite |
--role <role> | yes | The role on accept (admin|member) |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno invitations create --email new@acme.com --role member
cavuno invitations update
Change a pending invitation's role.
Maps to PATCH /v1/invitations/:id
Synopsis
cavuno invitations update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | The invitation ID |
Options
| Flag | Required | Description |
|---|---|---|
--role <role> | yes | The new role (admin|member) |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno invitations update invitations_k900abc --role admin
cavuno invitations renew
Rotate the accept token and extend the expiry by 7 days. This INVALIDATES the previous accept link and resends the email; the response includes the new token and URL.
Maps to POST /v1/invitations/:id/renew
Synopsis
cavuno invitations renew <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | The invitation ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno invitations renew invitations_k900abc
cavuno invitations revoke
Cancel a pending invitation.
Maps to DELETE /v1/invitations/:id
Synopsis
cavuno invitations revoke <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | The invitation ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno invitations revoke invitations_k900abc --yes
subscribers
Manage alert subscribers for the authenticated account.
cavuno subscribers list
List subscribers (paginated).
Maps to GET /v1/subscribers
Synopsis
cavuno subscribers list [options]
Options
| Flag | Required | Description |
|---|---|---|
--search <query> | no | Case-insensitive substring match on email |
--status <status> | no | Filter by lifecycle status: confirmed | unconfirmed | unsubscribed | waitlisted |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno subscribers list
cavuno subscribers list --status confirmed --search alice --limit 20
cavuno subscribers get
Fetch a single subscriber by ID (with alerts inline).
Maps to GET /v1/subscribers/:id
Synopsis
cavuno subscribers get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Subscriber ID |
Examples
cavuno subscribers get sub_123
cavuno subscribers count
Count confirmed subscribers for the account.
Maps to GET /v1/subscribers/count
Synopsis
cavuno subscribers count
Examples
cavuno subscribers count
cavuno subscribers alerts
List a subscriber's alerts.
Maps to GET /v1/subscribers/:id/alerts
Synopsis
cavuno subscribers alerts <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Subscriber ID |
Examples
cavuno subscribers alerts sub_123
cavuno subscribers unsubscribe
Admin-unsubscribe a subscriber (sets unsubscribedAt, deactivates alerts). Reversible with resubscribe.
Maps to POST /v1/subscribers/:id/unsubscribe
Synopsis
cavuno subscribers unsubscribe <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Subscriber ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno subscribers unsubscribe sub_123
cavuno subscribers resubscribe
Admin-resubscribe a previously unsubscribed subscriber (clears unsubscribedAt, reactivates alerts).
Maps to POST /v1/subscribers/:id/resubscribe
Synopsis
cavuno subscribers resubscribe <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Subscriber ID |
Options
| Flag | Required | Description |
|---|---|---|
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno subscribers resubscribe sub_123
cavuno subscribers export
Export subscribers. csv (default) starts an async operation whose result carries a downloadUrl; json returns an inline list capped at 10,000 rows.
Maps to GET /v1/subscribers/export
Synopsis
cavuno subscribers export [options]
Options
| Flag | Required | Description |
|---|---|---|
--export-format <format> | no | Export format: csv (async, default) or json (inline, max 10,000 rows) (default: csv) |
--wait | no | Poll the returned operation until it reaches a terminal state |
--interval-ms <n> | no | Poll interval in milliseconds (default 2000) |
--timeout-ms <n> | no | Give up after this many milliseconds (default 3600000) |
Examples
cavuno subscribers export --export-format csv --wait
cavuno subscribers export --export-format json
cavuno subscribers import
Bulk-import subscribers from a CSV file (async). Imported subscribers stay unconfirmed until they complete opt-in.
Maps to POST /v1/subscribers/import
Synopsis
cavuno subscribers import <file> [options]
Arguments
| Name | Required | Description |
|---|---|---|
file | yes | Path to the CSV file (header row with an email column) |
Options
| Flag | Required | Description |
|---|---|---|
--no-send-confirmation | no | Skip the double-opt-in confirmation email |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
--wait | no | Poll the returned operation until it reaches a terminal state |
--interval-ms <n> | no | Poll interval in milliseconds (default 2000) |
--timeout-ms <n> | no | Give up after this many milliseconds (default 3600000) |
Examples
cavuno subscribers import ./subscribers.csv --wait
cavuno subscribers import ./subscribers.csv --no-send-confirmation
redirects
Manage board redirect rules for the authenticated account.
cavuno redirects list
List redirect rules.
Maps to GET /v1/redirects
Synopsis
cavuno redirects list [options]
Options
| Flag | Required | Description |
|---|---|---|
--search <prefix> | no | Prefix match on fromPath |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno redirects list
cavuno redirects list --search /old
cavuno redirects create
Create a redirect rule.
Maps to POST /v1/redirects
Synopsis
cavuno redirects create <fromPath> <toPath> [options]
Arguments
| Name | Required | Description |
|---|---|---|
fromPath | yes | Source path, for example /old-careers |
toPath | yes | Destination path, for example /jobs |
Options
| Flag | Required | Description |
|---|---|---|
--status-code <code> | no | HTTP status code: 301 or 302 (default 301) |
Examples
cavuno redirects create /old-careers /jobs
cavuno redirects create /old /new --status-code 302
cavuno redirects update
Update a redirect rule.
Maps to PATCH /v1/redirects/:id
Synopsis
cavuno redirects update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Redirect ID |
Options
| Flag | Required | Description |
|---|---|---|
--from-path <path> | no | New source path |
--to-path <path> | no | New destination path |
--status-code <code> | no | HTTP status code: 301 or 302 |
Examples
cavuno redirects update k200abc --to-path /jobs
cavuno redirects update k200abc --from-path /old --status-code 302
cavuno redirects remove
Delete a redirect rule.
Maps to DELETE /v1/redirects/:id
Synopsis
cavuno redirects remove <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Redirect ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
Examples
cavuno redirects remove k200abc --yes
cavuno redirects batch
Run a batch of redirect operations. Pass JSON via --file or stdin. Exit 0 on HTTP 200 even if some rows fail — inspect the body.
Maps to POST /v1/redirects/batch
Synopsis
cavuno redirects batch [options]
Options
| Flag | Required | Description |
|---|---|---|
--file <path> | no | JSON file body (otherwise read stdin) |
Examples
cavuno redirects batch --file ops.json
webhooks
Manage Board-owned webhook endpoints and inspect delivery history.
cavuno webhooks endpoints list
List webhook endpoints.
Maps to GET /v1/webhook-endpoints
Synopsis
cavuno webhooks endpoints list [options]
Options
| Flag | Required | Description |
|---|---|---|
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno webhooks endpoints list
cavuno webhooks endpoints get
Fetch a webhook endpoint by ID.
Maps to GET /v1/webhook-endpoints/:id
Synopsis
cavuno webhooks endpoints get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Endpoint ID |
Examples
cavuno webhooks endpoints get whe_123
cavuno webhooks endpoints create
Create a webhook endpoint. Prints the one-time signing secret once.
Maps to POST /v1/webhook-endpoints
Synopsis
cavuno webhooks endpoints create [options]
Options
| Flag | Required | Description |
|---|---|---|
--url <url> | yes | Public HTTPS URL that will receive deliveries |
--event-types <types> | yes | Comma-separated V1 event types (e.g. job.created,company.updated) |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno webhooks endpoints create --url https://hooks.example.com/cavuno --event-types job.created,job.updated
cavuno webhooks endpoints update
Update a webhook endpoint (URL, event types, or status).
Maps to PATCH /v1/webhook-endpoints/:id
Synopsis
cavuno webhooks endpoints update <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Endpoint ID |
Options
| Flag | Required | Description |
|---|---|---|
--url <url> | no | New HTTPS destination URL |
--event-types <types> | no | Comma-separated V1 event types replacing the current selection |
--status <status> | no | enabled or paused |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno webhooks endpoints update whe_123 --status paused
cavuno webhooks endpoints update whe_123 --url https://hooks.example.com/v2
cavuno webhooks endpoints delete
Retire a webhook endpoint (stops future delivery; keeps config for replay).
Maps to DELETE /v1/webhook-endpoints/:id
Synopsis
cavuno webhooks endpoints delete <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Endpoint ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno webhooks endpoints delete whe_123 --yes
cavuno webhooks endpoints rotate-secret
Rotate the signing secret. Prints the new secret once.
Maps to POST /v1/webhook-endpoints/:id/rotate-secret
Synopsis
cavuno webhooks endpoints rotate-secret <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Endpoint ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno webhooks endpoints rotate-secret whe_123 --yes
cavuno webhooks endpoints test
Send one synthetic signed test delivery to the endpoint URL.
Maps to POST /v1/webhook-endpoints/:id/test
Synopsis
cavuno webhooks endpoints test <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Endpoint ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno webhooks endpoints test whe_123 --yes
cavuno webhooks deliveries list
List webhook deliveries (newest first).
Maps to GET /v1/webhook-deliveries
Synopsis
cavuno webhooks deliveries list [options]
Options
| Flag | Required | Description |
|---|---|---|
--endpoint <id> | no | Filter to a single endpoint ID |
--status <status> | no | Filter by status (pending|retrying|delivered|terminal|exhausted) |
--limit <n> | no | Page size 1-100 (default 50) |
--cursor <cursor> | no | Pagination cursor |
Examples
cavuno webhooks deliveries list
cavuno webhooks deliveries list --endpoint whe_123 --status delivered
cavuno webhooks deliveries get
Fetch a webhook delivery by ID (includes attempt history).
Maps to GET /v1/webhook-deliveries/:id
Synopsis
cavuno webhooks deliveries get <id>
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Delivery ID |
Examples
cavuno webhooks deliveries get wdl_123
cavuno webhooks deliveries replay
Replay a completed delivery (delivered/terminal/exhausted). Reuses frozen event bytes with a fresh signature. Exhausted deliveries get one fresh attempt, not a fresh retry budget. Open (pending/retrying) deliveries return 409.
Maps to POST /v1/webhook-deliveries/:id/replay
Synopsis
cavuno webhooks deliveries replay <id> [options]
Arguments
| Name | Required | Description |
|---|---|---|
id | yes | Delivery ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno webhooks deliveries replay wdl_123 --yes
marketing-permissions
Read marketing-email consent decisions off the board user records, and withdraw on request. Grants exist only on Board-user surfaces.
cavuno marketing-permissions list
List recorded consent decisions. People who never decided are absent — absence means no consent, never a default.
Maps to GET /v1/marketing-permissions
Synopsis
cavuno marketing-permissions list [options]
Options
| Flag | Required | Description |
|---|---|---|
--status <status> | no | granted or withdrawn |
--email <email> | no | Exact-match lookup; returns at most one item |
--limit <n> | no | Page size (1-100) |
--cursor <cursor> | no | Opaque pagination cursor |
Examples
cavuno marketing-permissions list
cavuno marketing-permissions list --status granted
cavuno marketing-permissions list --email person@example.com
cavuno marketing-permissions withdraw
Withdraw a board user's marketing consent (reason: operator_request) — the right move when someone asks you directly to be removed. Idempotent. Cannot grant or restore.
Maps to POST /v1/marketing-permissions/{id}/withdraw
Synopsis
cavuno marketing-permissions withdraw <boardUserId> [options]
Arguments
| Name | Required | Description |
|---|---|---|
boardUserId | yes | The board user ID |
Options
| Flag | Required | Description |
|---|---|---|
-y, --yes | no | Skip the confirmation prompt |
--idempotency-key <key> | no | Reuse this key when retrying the same logical mutation |
Examples
cavuno marketing-permissions withdraw boardUsers_01EXAMPLE --yes
CLI version 1.8.0 · Generated 2026-08-25