CLI command reference¶
Auto-generated from zero ... --help. For agent workflows and MCP usage, see
MCP connector docs and
SKILL.md.
zero¶
Usage: zero [OPTIONS] COMMAND [ARGS]...
Zero Hiring — AI-powered candidate screening.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version -v Show version and exit. │
│ --quiet Suppress spinners and progress output. │
│ --json Emit machine-readable JSON on stdout. Human prose (progress, prompts, banners) is routed to stderr. Errors become {"error": {"code": ..., "message": ...}} on stdout │
│ with non-zero exit. │
│ --envelope Wrap --json output as {"schema_version": "1", "data": ...}. Off by default for backward compat with consumers that expect bare arrays/objects. │
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it or customize the installation. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ login Log in or sign up. Uses device code flow by default. │
│ whoami Show current login status. │
│ help Show this help message and exit (alias for `--help`). │
│ logout Log out: revoke the CLI token server-side, then remove local credentials. │
│ hire Open a new role. │
│ status Check your jobs and pipeline. │
│ candidates View candidates for a job. │
│ invite Invite candidates for AI interviews. │
│ results View interview results. │
│ offers Inspect and manage offer letters. │
│ close Legacy alias: hire a candidate and charge the close fee. │
│ team Manage team members. │
│ demo Demo mode — simulate the hiring pipeline. │
│ jobs List and switch between jobs. │
│ outreach Multi-step candidate outreach sequences. │
│ sourcing Search sourced candidates and manage shortlists. │
│ pipeline Run and inspect end-to-end hiring pipelines. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
billing¶
Usage: zero billing [OPTIONS] COMMAND [ARGS]...
View billing and spend.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ docs Print local billing command and spend-safety notes. │
│ show One-screen view of spend across all your jobs. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
billing docs¶
Usage: zero billing docs [OPTIONS]
Print local billing command and spend-safety notes.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
billing show¶
Usage: zero billing show [OPTIONS]
One-screen view of spend across all your jobs.
Shows charged open/close fees per job plus employer totals, pulled from
the `job_payments` Stripe ledger. If the employer hasn't paid anything
yet, the backend returns `source=estimate` and we print a banner so
the user isn't misled into thinking we have real Stripe data.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
candidates¶
Usage: zero candidates [OPTIONS] COMMAND [ARGS]...
View candidates for a job.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list List all candidates for a job with scores and rankings. │
│ detail Show detailed info for a specific candidate, including full parsed │
│ resume (contact, experience, education, skills, languages, certs) and │
│ the excerpts that explain the candidate's ranking. │
│ reject Reject a candidate. │
│ discard Discard a sourced candidate from active sourcing and stop outreach. │
│ hire Send an offer. Candidate signature triggers hired status and billing. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
candidates detail¶
Usage: zero candidates detail [OPTIONS] [CANDIDATE_NUMBER]
Show detailed info for a specific candidate, including full parsed resume (contact, experience, education, skills, languages, certs) and the excerpts that explain the candidate's ranking.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ candidate_number [CANDIDATE_NUMBER] Candidate number (1-based) or application UUID │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
candidates discard¶
Usage: zero candidates discard [OPTIONS] CANDIDATE_REF
Discard a sourced candidate from active sourcing and stop outreach.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * candidate_ref TEXT Candidate name, email, number, or application UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --reason TEXT Optional note stored on the discarded sourced application. │
│ --job -j TEXT Job UUID (uses current job if omitted) │
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --yes -y Skip the confirmation prompt │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
candidates hire¶
Usage: zero candidates hire [OPTIONS] CANDIDATE_REF
Send an offer. Candidate signature triggers hired status and billing.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * candidate_ref TEXT Candidate number (from 'zero candidates list') or application UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted) │
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --expect-id TEXT Assert the resolved job matches this UUID or short ID │
│ --expect-title TEXT Assert the resolved job's title contains this substring (case-insensitive) │
│ --idempotency-key TEXT Retry key retained for backward compatibility; offer signing triggers billing. │
│ --compensation TEXT Offer compensation text │
│ --start-date TEXT Offer start date │
│ --location TEXT Offer work location │
│ --employment-type TEXT Offer employment type │
│ --notes TEXT Additional offer notes │
│ --force Allow sending an offer even when another offer for this role is still in flight. │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
candidates list¶
Usage: zero candidates list [OPTIONS] [JOB_ID]
List all candidates for a job with scores and rankings.
By default prints one compact line per candidate. Pass `--resume` to
also render each candidate's full parsed resume inline — useful when
you want to evaluate the pool in a single call instead of running
`candidates detail` N times. `--json` always returns parsed data
regardless of `--resume`.
Power-user flags (`--min-score`, `--max-score`, `--skill`, `--search`,
`--sort`, `--order`, `--limit`) are applied client-side over the full
payload so you can pipe `--json` through jq if you need something more
specific than these flags offer.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ job_id [JOB_ID] Job UUID (uses current job if omitted) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --resume -r Include full parsed resume data for each candidate (contact, experience, education, skills, excerpts). │
│ --min-score FLOAT Only show candidates with score >= N. │
│ --max-score FLOAT Only show candidates with score <= N. │
│ --skill TEXT Case-insensitive substring match against resume summary + excerpts (repeatable; all must match). │
│ --search TEXT Case-insensitive substring match over name + summary + excerpts. │
│ --sort TEXT Sort by: score | name | applied_at. │
│ --order TEXT Sort order: asc | desc (default: desc). [default: desc] │
│ --limit INTEGER Maximum number of candidates to show (applied after filters+sort). │
│ --json Raw JSON output (always includes parsed_resume and relevant_resume_excerpts) │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
candidates reject¶
Usage: zero candidates reject [OPTIONS] CANDIDATE_REF
Reject a candidate.
Sets the application's status to `rejected`. The optional `--reason`
is persisted to `applications.rejection_reason` for audit purposes.
This is a per-candidate action. Hiring another candidate does not
automatically reject the rest of the pool.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * candidate_ref TEXT Candidate number (from 'zero candidates list') or application UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --reason TEXT Reason for rejection (persisted to applications.rejection_reason for audit). │
│ --job -j TEXT Job UUID (uses current job if omitted) │
│ --yes -y Skip the confirmation prompt │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
clients¶
Usage: zero clients [OPTIONS] COMMAND [ARGS]...
Manage RPO clients.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list List all RPO clients for the current employer. │
│ add Add a new RPO client. │
│ show Show details for a single RPO client. │
│ remove Remove an RPO client (soft delete). │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
clients add¶
Usage: zero clients add [OPTIONS]
Add a new RPO client.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --name TEXT Client company name [required] │
│ --email TEXT Client contact email │
│ --website TEXT Client website URL │
│ --company-info TEXT Company background / information for AI context │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
clients list¶
Usage: zero clients list [OPTIONS]
List all RPO clients for the current employer.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
clients remove¶
Usage: zero clients remove [OPTIONS] CLIENT_ID
Remove an RPO client (soft delete).
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * client_id TEXT Client UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --yes -y Skip confirmation │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
clients show¶
Usage: zero clients show [OPTIONS] CLIENT_ID
Show details for a single RPO client.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * client_id TEXT Client UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
close¶
Usage: zero close [OPTIONS] COMMAND [ARGS]...
Legacy alias for sending a candidate offer.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ run Send an offer. Candidate signature triggers hired status and billing. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
close run¶
Usage: zero close run [OPTIONS] [JOB_ID]
Send an offer. Candidate signature triggers hired status and billing.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ job_id [JOB_ID] Job UUID (uses current job if omitted) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --candidate TEXT Candidate number (1-based) or application UUID │
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --expect-id TEXT Assert the resolved job matches this UUID or short ID │
│ --expect-title TEXT Assert the resolved job's title contains this substring (case-insensitive) │
│ --idempotency-key TEXT Retry key retained for backward compatibility; offer signing triggers billing. │
│ --compensation TEXT Offer compensation text │
│ --start-date TEXT Offer start date │
│ --location TEXT Offer work location │
│ --employment-type TEXT Offer employment type │
│ --notes TEXT Additional offer notes │
│ --force Allow sending an offer even when another offer for this role is still in flight. │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
demo¶
Usage: zero demo [OPTIONS] COMMAND [ARGS]...
Demo mode — simulate the hiring pipeline.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --keep Retain the demo job instead of soft-deleting it. │
│ --title TEXT Title for the demo job. [default: Demo Role [auto]] │
│ --json Emit a structured JSON result. │
│ --quiet Suppress spinner output. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ run Run a full demo: create job → seed candidates → simulate interviews → summary. │
│ seed Seed a job with demo candidates (resumes only, no interviews yet). │
│ interviews Simulate AI interviews for all demo candidates in a job. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
demo interviews¶
Usage: zero demo interviews [OPTIONS] [JOB_ID]
Simulate AI interviews for all demo candidates in a job.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ job_id [JOB_ID] Job UUID (uses current job if omitted) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
demo run¶
Usage: zero demo run [OPTIONS]
Run a full demo: create job → seed candidates → simulate interviews → summary.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --keep Retain the demo job instead of soft-deleting it. │
│ --title TEXT Title for the demo job. [default: Demo Role [auto]] │
│ --json Emit a structured JSON result. │
│ --quiet Suppress spinner output. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
demo seed¶
Usage: zero demo seed [OPTIONS] [JOB_ID]
Seed a job with demo candidates (resumes only, no interviews yet).
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ job_id [JOB_ID] Job UUID (uses current job if omitted) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
help¶
Usage: zero help [OPTIONS]
Show this help message and exit (alias for `--help`).
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
hire¶
Usage: zero hire [OPTIONS] COMMAND [ARGS]...
Open a new role.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ run Open a new role — guided flow with AI and payment. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
hire run¶
Usage: zero hire run [OPTIONS]
Open a new role — guided flow with AI and payment.
Power-user flags (`--salary`, `--remote`, `--skills`, `--seniority`,
`--experience-years`, `--tags`) and `--description` are passed as
source material to the backend JD generator. `--use-description-as-jd`
preserves only already-formatted HTML JDs; plain text is still formatted
with AI.
`--dry-run` generates the JD (when one isn't supplied) and prints the
job payload as JSON without creating a payable job. It does not hit
Stripe and does not POST to `/api/jobs`.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --title -t TEXT Job title │
│ --description -d TEXT Hiring brief or source notes for the AI-generated JD. Use --use-description-as-jd only for an already-formatted final JD. │
│ --location -l TEXT Job location (e.g. 'Remote, US') │
│ --employment-type TEXT Employment type (e.g. 'Full-time') │
│ --salary TEXT Salary or salary range (e.g. '$150k-$180k'). │
│ --remote Flag the role as remote. │
│ --skills TEXT Comma-separated list of required skills. │
│ --seniority TEXT Seniority level (e.g. 'Senior', 'Staff'). │
│ --experience-years INTEGER Minimum years of experience. │
│ --tags TEXT Comma-separated freeform tags. │
│ --client-id TEXT RPO client UUID to create this role under. │
│ --role-summary-json TEXT Structured role intake as a JSON object (must include 'title'). Threaded into both JD generation and job creation so the JD, the job, and any pipeline │
│ brief trace back to the same confirmed intake. Assemble this from the operator's answers before opening the role. │
│ --dry-run Generate the JD and return JSON without creating a payable job. │
│ --employer-id TEXT Employer UUID (auto-detected from login) │
│ --skip-payment Skip Stripe payment (for testing) │
│ --yes -y Auto-confirm all prompts (non-interactive) │
│ --demo Demo/testing shortcut: implies --skip-payment --yes │
│ --force Create the job even if a recent active job with the same title exists. │
│ --yes-duplicate Skip the duplicate-title check entirely (implied by --force). │
│ --idempotency-key TEXT Retry key for safe role-open payment creation. │
│ --use-description-as-jd Preserve --description directly only when it is already a polished HTML JD. Plain text is still formatted with AI. │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal¶
Usage: zero internal [OPTIONS] COMMAND [ARGS]...
Internal/advanced commands.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ configure Manually configure API credentials. │
│ jobs Manage jobs. │
│ applications Manage applications. │
│ interviews Manage interviews. │
│ employers Manage employers. │
│ applicants Manage applicants. │
│ ai AI-powered generation tools. │
│ files Upload files. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal ai¶
Usage: zero internal ai [OPTIONS] COMMAND [ARGS]...
AI-powered generation tools.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ generate-jd Generate or refine a job description using AI. │
│ generate-questions Generate or refine interview questions using AI. │
│ extract-skills Extract skills from a job description. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal ai extract-skills¶
Usage: zero internal ai extract-skills [OPTIONS]
Extract skills from a job description.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --description -d TEXT Job description text [required] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal ai generate-jd¶
Usage: zero internal ai generate-jd [OPTIONS]
Generate or refine a job description using AI.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --title -t TEXT Job title [required] │
│ --skills TEXT Required skills │
│ --company TEXT Company name │
│ --feedback TEXT Refinement feedback │
│ --role-summary-json TEXT Structured role intake as a JSON object (must include 'title'). Folded into the JD source material so the JD matches the confirmed intake. │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal ai generate-questions¶
Usage: zero internal ai generate-questions [OPTIONS]
Generate or refine interview questions using AI.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --title -t TEXT Job title [required] │
│ --skills TEXT Required skills │
│ --company TEXT Company name │
│ --feedback TEXT Refinement feedback │
│ --structured Return structured screening question objects alongside legacy text. │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal applicants¶
Usage: zero internal applicants [OPTIONS] COMMAND [ARGS]...
Manage applicants.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ create Create (or get) an applicant by email. │
│ update-phone Update an existing applicant phone number. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal applicants create¶
Usage: zero internal applicants create [OPTIONS]
Create (or get) an applicant by email.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --email TEXT Applicant email [required] │
│ * --first-name TEXT First name [required] │
│ * --last-name TEXT Last name [required] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal applicants update-phone¶
Usage: zero internal applicants update-phone [OPTIONS]
Update an existing applicant phone number.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --phone TEXT New candidate phone number [required] │
│ --email TEXT Applicant email │
│ --application-id TEXT Application UUID │
│ --job-id TEXT Optional job UUID to disambiguate by role │
│ --employer-id TEXT Employer UUID │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal applications¶
Usage: zero internal applications [OPTIONS] COMMAND [ARGS]...
Manage applications.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list List applications, optionally filtered by job or status. │
│ create Create a new application (with optional resume). │
│ rank Manually set an application's ranking. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal applications create¶
Usage: zero internal applications create [OPTIONS]
Create a new application (with optional resume).
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --applicant-id TEXT Applicant UUID [required] │
│ * --job-id TEXT Job UUID [required] │
│ --resume TEXT Path to resume file │
│ --resume-url TEXT URL to resume │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal applications list¶
Usage: zero internal applications list [OPTIONS]
List applications, optionally filtered by job or status.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected from login) │
│ --job-id TEXT Filter by job UUID │
│ --status TEXT Filter by status │
│ --page INTEGER Page number [default: 1] │
│ --limit INTEGER Results per page [default: 20] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal applications rank¶
Usage: zero internal applications rank [OPTIONS] APPLICATION_ID
Manually set an application's ranking.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * application_id TEXT Application UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --ranking -r INTEGER New ranking position [required] │
│ * --reason TEXT Reason for ranking change [required] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal configure¶
Usage: zero internal configure [OPTIONS]
Manually configure API credentials.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --api-url TEXT [default: https://dev.api.zerohiring.com] │
│ * --api-key TEXT [required] │
│ --employer-id TEXT │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal employers¶
Usage: zero internal employers [OPTIONS] COMMAND [ARGS]...
Manage employers.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ create Create a new employer account. │
│ analytics Get analytics for an employer. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal employers analytics¶
Usage: zero internal employers analytics [OPTIONS] EMPLOYER_ID
Get analytics for an employer.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * employer_id TEXT Employer UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --start-date TEXT Start date (ISO format) │
│ --end-date TEXT End date (ISO format) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal employers create¶
Usage: zero internal employers create [OPTIONS]
Create a new employer account.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --email TEXT Employer email [required] │
│ * --first-name TEXT First name [required] │
│ * --last-name TEXT Last name [required] │
│ * --company TEXT Company name [required] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal files¶
Usage: zero internal files [OPTIONS] COMMAND [ARGS]...
Upload files.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ upload Upload a file to S3. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal files upload¶
Usage: zero internal files upload [OPTIONS] FILE
Upload a file to S3.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * file TEXT Path to file [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --folder TEXT Target folder (resumes, avatars, etc.) [default: resumes] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal interviews¶
Usage: zero internal interviews [OPTIONS] COMMAND [ARGS]...
Manage interviews.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ create Create a new interview. │
│ test Create an employer preview interview and print the launch URL. │
│ results Get results for a completed interview. │
│ metrics Get timing/quality metrics for an interview. │
│ events Get raw interaction events for an interview. │
│ trigger-call Trigger an outbound phone call for an interview. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal interviews create¶
Usage: zero internal interviews create [OPTIONS]
Create a new interview.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --interview-type TEXT Interview type (e.g. realtime, video, four_models) [required] │
│ * --applicant-id TEXT Applicant UUID [required] │
│ --employer-id TEXT Employer UUID (auto-detected from login) │
│ * --job-id TEXT Job UUID [required] │
│ --application-id TEXT Application UUID │
│ --avatar-id TEXT Avatar ID │
│ --is-test --no-is-test Mark as test/preview interview [default: no-is-test] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal interviews events¶
Usage: zero internal interviews events [OPTIONS] INTERVIEW_ID
Get raw interaction events for an interview.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * interview_id TEXT Interview UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal interviews metrics¶
Usage: zero internal interviews metrics [OPTIONS] INTERVIEW_ID
Get timing/quality metrics for an interview.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * interview_id TEXT Interview UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal interviews results¶
Usage: zero internal interviews results [OPTIONS] INTERVIEW_ID
Get results for a completed interview.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * interview_id TEXT Interview UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal interviews test¶
Usage: zero internal interviews test [OPTIONS]
Create an employer preview interview and print the launch URL.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --job-id,--job TEXT Job UUID [required] │
│ --interview-type TEXT Test interview type: video or audio [default: video] │
│ --employer-id TEXT Employer UUID (auto-detected from login) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal interviews trigger-call¶
Usage: zero internal interviews trigger-call [OPTIONS] INTERVIEW_ID
Trigger an outbound phone call for an interview.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * interview_id TEXT Interview UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal jobs¶
Usage: zero internal jobs [OPTIONS] COMMAND [ARGS]...
Manage jobs.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list List jobs for an employer. │
│ get Get details for a single job. │
│ create Create a new job. │
│ update Update a job (only provided fields are changed). │
│ delete Soft-delete a job by UUID (no confirmation — intended for scripting). │
│ parse-jd Check a job description for completeness. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal jobs create¶
Usage: zero internal jobs create [OPTIONS]
Create a new job.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected from login) │
│ * --title -t TEXT Job title [required] │
│ * --description -d TEXT Job description [required] │
│ --active --no-active Whether the job is active [default: active] │
│ --custom-questions TEXT Custom interview questions │
│ --screening-questions-json TEXT Structured screening questions as JSON, e.g. '[{"text":"Can you work UTC hours?","order":1,"source":"jenny"}]'. │
│ --employer-information TEXT Company info for candidates │
│ --location TEXT Job location │
│ --employment-type TEXT Employment type (full-time, part-time, etc.) │
│ --client-id TEXT RPO client UUID to create this job under │
│ --role-summary-json TEXT Structured role intake as a JSON object (must include 'title'). Persisted on the job under additional_data['role_summary']. │
│ --use-description-as-jd Preserve --description directly only when it is already a polished HTML JD. Plain text is still formatted with AI. │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal jobs delete¶
Usage: zero internal jobs delete [OPTIONS] JOB_ID
Soft-delete a job by UUID (no confirmation — intended for scripting).
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * job_id TEXT Job UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal jobs get¶
Usage: zero internal jobs get [OPTIONS] JOB_ID
Get details for a single job.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * job_id TEXT Job UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal jobs list¶
Usage: zero internal jobs list [OPTIONS]
List jobs for an employer.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected from login) │
│ --status TEXT Filter by status │
│ --search TEXT Search term │
│ --client-id TEXT Filter by RPO client UUID │
│ --page INTEGER Page number [default: 1] │
│ --limit INTEGER Results per page [default: 20] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal jobs parse-jd¶
Usage: zero internal jobs parse-jd [OPTIONS]
Check a job description for completeness.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --description -d TEXT Job description text [required] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
internal jobs update¶
Usage: zero internal jobs update [OPTIONS] JOB_ID
Update a job (only provided fields are changed).
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * job_id TEXT Job UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --title -t TEXT New title │
│ --description -d TEXT New description │
│ --active --no-active Set active/inactive │
│ --custom-questions TEXT Custom interview questions │
│ --screening-questions-json TEXT Structured screening questions as JSON, e.g. '[{"text":"Can you work UTC hours?","order":1,"source":"jenny"}]'. │
│ --employer-information TEXT Company info for candidates │
│ --location TEXT Job location │
│ --use-description-as-jd Preserve --description directly only when it is already a polished HTML JD. Plain text is still formatted with AI. │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
invite¶
Usage: zero invite [OPTIONS] COMMAND [ARGS]...
Invite candidates for AI interviews.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ send Invite candidates to AI interviews for a job. │
│ manual Manually invite candidates by email (not from existing applicant pool). │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
invite manual¶
Usage: zero invite manual [OPTIONS]
Manually invite candidates by email (not from existing applicant pool).
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --job-id TEXT Job UUID [required] │
│ * --email TEXT Candidate email (repeatable) [required] │
│ * --first-name TEXT First name (one per email) [required] │
│ * --last-name TEXT Last name (one per email) [required] │
│ --phone TEXT Candidate phone for AI Telephony invites (repeatable, E.164 preferred) │
│ --interview-type TEXT Interview type (realtime, phone_call, video, four_models) [default: realtime] │
│ --avatar-id TEXT Video avatar UUID. Defaults to Jenny/Anam for video interviews. │
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
invite send¶
Usage: zero invite send [OPTIONS] [JOB_ID]
Invite candidates to AI interviews for a job.
Use --demo to simulate interviews instantly (creates completed results).
Use --candidate to invite specific candidates by number or UUID.
Bulk selection (mutually exclusive with each other, but all compose
with `--candidate` being absent): `--top N`, `--min-score X`, `--all`.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ job_id [JOB_ID] Job UUID (uses current job if omitted) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --candidate TEXT Candidate number (1-based) or application UUID (repeatable) │
│ --top INTEGER Invite the top N candidates by score (highest first). │
│ --min-score FLOAT Invite every candidate with score >= N. │
│ --all Invite every candidate who hasn't already been interviewed. │
│ --interview-type TEXT Interview type (realtime, phone_call, video, four_models) [default: realtime] │
│ --avatar-id TEXT Video avatar UUID. Defaults to Jenny/Anam for video interviews. │
│ --demo Demo mode: simulate interviews instantly instead of sending real invites │
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
jobs¶
Usage: zero jobs [OPTIONS] COMMAND [ARGS]...
List and switch between jobs.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list List all your jobs (sorted by creation date, newest first). │
│ current Print the resolved current job and where the pointer came from. │
│ use Switch to a different job (makes it the default for all commands). │
│ show Show full details for a job: JD, status, applicant count, dashboard URL. │
│ delete Delete a job. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
jobs current¶
Usage: zero jobs current [OPTIONS]
Print the resolved current job and where the pointer came from.
Useful when debugging a shared-token setup: you can see at a glance
whether the selection is coming from ``ZERO_JOB_ID``, local config, or a
legacy server-side value.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
jobs delete¶
Usage: zero jobs delete [OPTIONS] JOB_REF
Delete a job.
This soft-deletes the job: it is removed from all listings and cannot be
interacted with, but existing applications and interview records are
retained in the database for audit purposes.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * job_ref TEXT Short ID, full UUID, 1-based list number (deprecated), or title substring [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --yes -y Skip the confirmation prompt │
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --expect-id TEXT Assert the resolved job matches this UUID or short ID │
│ --expect-title TEXT Assert the resolved job's title contains this substring (case-insensitive) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
jobs list¶
Usage: zero jobs list [OPTIONS]
List all your jobs (sorted by creation date, newest first).
All filters compose (``--mine --tag backend --since 2026-04-01``). When
``--json`` is passed, the payload after filtering/sorting is printed
(enriched with the derived ``short_id``) so scripts can keep reading it.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --active-only Show only active jobs │
│ --mine Show only jobs you created. Requires the backend to expose `created_by_user_id` (ZER-563); if it doesn't, a warning is printed to stderr and all employer jobs are shown. │
│ --tag TEXT Filter to jobs tagged [<name>] in the title (case-insensitive). │
│ --since TEXT ISO date (e.g. 2026-04-01). Keep jobs created on/after this date. │
│ --search TEXT Case-insensitive substring match on job title. │
│ --client-id TEXT Filter to jobs belonging to an RPO client UUID. │
│ --sort TEXT Sort by: created, title, applicants, status. │
│ --order TEXT Sort direction: asc, desc. Only used with --sort. [default: desc] │
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
jobs show¶
Usage: zero jobs show [OPTIONS] [JOB_REF]
Show full details for a job: JD, status, applicant count, dashboard URL.
If the job is unpaid we also surface the short payment link (so the user
can finish activating the role without having to dig through email).
Defaults to the currently-selected job when no argument is given.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ job_ref [JOB_REF] Job number (from 'zero jobs list') or job UUID. Defaults to current job. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
jobs use¶
Usage: zero jobs use [OPTIONS] JOB_REF
Switch to a different job (makes it the default for all commands).
Prefer short IDs (printed by ``zero jobs list``) — they're derived from
the UUID and stay stable even when jobs are added or deleted. Numeric
list positions and title substrings still work, but positions shift and
substrings can match multiple jobs; scripts should use short IDs or UUIDs.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * job_ref TEXT Short ID (from 'zero jobs list'), full UUID, 1-based list number (deprecated), or case-insensitive title substring [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --expect-id TEXT Assert the resolved job matches this UUID or short ID │
│ --expect-title TEXT Assert the resolved job's title contains this substring (case-insensitive) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
login¶
Usage: zero login [OPTIONS]
Log in or sign up. Uses device code flow by default.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --app-url TEXT Override app URL (e.g. http://localhost:3300 for local testing) │
│ --browser Use browser callback flow instead of device code │
│ --token TEXT Log in with an API token directly │
│ --no-wait Print device code and exit without waiting (for non-interactive use) │
│ --complete TEXT Complete a pending device code login with the given session ID │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
logout¶
Usage: zero logout [OPTIONS]
Log out: revoke the CLI token server-side, then remove local credentials.
Best-effort: if the backend revocation fails (network error, already-revoked
token, etc.) we still wipe the local config so the CLI appears logged out.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
offers¶
Usage: zero offers [OPTIONS] COMMAND [ARGS]...
Inspect and manage offer letters.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list List offers. Not yet supported by the backend. │
│ show Show a single offer by ID. │
│ cancel Withdraw an in-flight offer. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
offers cancel¶
Usage: zero offers cancel [OPTIONS] OFFER_ID
Withdraw an in-flight offer.
Cancels the SignWell document and emails the candidate that the offer
has been withdrawn. Only valid while the offer is in `sent` status.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * offer_id TEXT Offer UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --reason TEXT Reason for cancellation (audit trail). │
│ --yes -y Skip the confirmation prompt. │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
offers list¶
Usage: zero offers list [OPTIONS]
List offers. Not yet supported by the backend.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job TEXT Job UUID to filter offers by. │
│ --status TEXT Status to filter offers by (e.g. sent, signed). │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
offers show¶
Usage: zero offers show [OPTIONS] OFFER_ID
Show a single offer by ID.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * offer_id TEXT Offer UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach¶
Usage: zero outreach [OPTIONS] COMMAND [ARGS]...
Multi-step candidate outreach sequences.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ enroll Enroll a shortlisted candidate into an outreach sequence. │
│ stats Show a sequence-level engagement rollup (sent/opened/clicked/replied). │
│ sequences Create and manage outreach sequences. │
│ enrollments View and control per-candidate enrollments. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach enroll¶
Usage: zero outreach enroll [OPTIONS] SHORTLIST_ID
Enroll a shortlisted candidate into an outreach sequence.
The candidate's email + personalization fields are snapshotted server-
side, so the sequence keeps working even if the underlying sourced
profile is later refreshed.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * shortlist_id TEXT Shortlist entry UUID. [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --sequence TEXT Sequence UUID to enroll into. [required] │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach enrollments¶
Usage: zero outreach enrollments [OPTIONS] COMMAND [ARGS]...
View and control per-candidate enrollments.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list List enrollments, optionally filtered by sequence and/or status. │
│ pause Pause an enrollment — no further steps will send until resumed. │
│ resume Resume a previously paused enrollment. │
│ stop Permanently stop an enrollment. Terminal — not reversible via │
│ ``resume`` (enroll the candidate again if you really need to restart). │
│ stop-by-candidate Stop future outreach for a sourced candidate without discarding them. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach enrollments list¶
Usage: zero outreach enrollments list [OPTIONS]
List enrollments, optionally filtered by sequence and/or status.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --sequence TEXT Filter by sequence UUID. │
│ --status TEXT Filter by status: active | paused | replied | stopped | completed. │
│ --limit INTEGER RANGE [1<=x<=500] [default: 100] │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach enrollments pause¶
Usage: zero outreach enrollments pause [OPTIONS] ENROLLMENT_ID
Pause an enrollment — no further steps will send until resumed.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * enrollment_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach enrollments resume¶
Usage: zero outreach enrollments resume [OPTIONS] ENROLLMENT_ID
Resume a previously paused enrollment.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * enrollment_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach enrollments stop¶
Usage: zero outreach enrollments stop [OPTIONS] ENROLLMENT_ID
Permanently stop an enrollment. Terminal — not reversible via ``resume`` (enroll the candidate again if you really need to restart).
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * enrollment_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach enrollments stop-by-candidate¶
Usage: zero outreach enrollments stop-by-candidate [OPTIONS] CANDIDATE_REF
Stop future outreach for a sourced candidate without discarding them.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * candidate_ref TEXT Candidate name, email, number, or application UUID [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted) │
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach sequences¶
Usage: zero outreach sequences [OPTIONS] COMMAND [ARGS]...
Create and manage outreach sequences.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ example-steps Print a working 3-step Day 0/3/7 starter template. │
│ create Create a multi-step sequence from a JSON step file or inline JSON. │
│ list List outreach sequences for the current employer. │
│ show Show a sequence's header and steps. │
│ activate Activate a sequence so it can accept new enrollments. │
│ deactivate Deactivate a sequence. Existing enrollments keep running; new │
│ enrollments are rejected until re-activated. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach sequences activate¶
Usage: zero outreach sequences activate [OPTIONS] SEQUENCE_ID
Activate a sequence so it can accept new enrollments.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * sequence_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach sequences create¶
Usage: zero outreach sequences create [OPTIONS]
Create a multi-step sequence from a JSON step file or inline JSON.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --name TEXT Human-readable name for the sequence. [required] │
│ --from-file TEXT Path to a JSON file with the step list. Use '-' to read from stdin. │
│ --steps-json,--steps TEXT Inline JSON array or {'steps': [...]} object. Prefer this for MCP/Jenny. │
│ --description TEXT Optional internal description. │
│ --job TEXT Scope this sequence to a job UUID (optional). │
│ --sender-email TEXT From-address (stubbed; falls back to platform sender). │
│ --sender-name TEXT From-name. │
│ --reply-to TEXT Reply-To address for candidate replies. │
│ --employer-id TEXT Employer UUID (auto-detected from login). │
│ --json Raw JSON output. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach sequences deactivate¶
Usage: zero outreach sequences deactivate [OPTIONS] SEQUENCE_ID
Deactivate a sequence. Existing enrollments keep running; new enrollments are rejected until re-activated.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * sequence_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach sequences example-steps¶
Usage: zero outreach sequences example-steps [OPTIONS]
Print a working 3-step Day 0/3/7 starter template.
Pipe this straight into a file and then into ``sequences create``:
zero outreach sequences example-steps --json > steps.json
zero outreach sequences create --name 'Founder intro' --from-file steps.json
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output (convenient for `... > steps.json`). │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach sequences list¶
Usage: zero outreach sequences list [OPTIONS]
List outreach sequences for the current employer.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job TEXT Filter by job UUID (still shows employer-wide sequences too). │
│ --limit INTEGER RANGE [1<=x<=500] [default: 100] │
│ --employer-id TEXT Employer UUID (auto-detected). │
│ --json Raw JSON output. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach sequences show¶
Usage: zero outreach sequences show [OPTIONS] SEQUENCE_ID
Show a sequence's header and steps.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * sequence_id TEXT Sequence UUID. [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected). │
│ --json Raw JSON output. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
outreach stats¶
Usage: zero outreach stats [OPTIONS] SEQUENCE_ID
Show a sequence-level engagement rollup (sent/opened/clicked/replied).
Aggregates client-side over all enrollments for the sequence — the
backend already returns per-enrollment engagement counts in the list
endpoint, so a dedicated stats endpoint isn't needed yet.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * sequence_id TEXT Sequence UUID. [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
pipeline¶
Usage: zero pipeline [OPTIONS] COMMAND [ARGS]...
Run and inspect end-to-end hiring pipeline runs.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ run Create a pipeline run for a job. │
│ status Show one pipeline run. │
│ list List recent pipeline runs. │
│ advance Advance a pipeline run after approval. │
│ autopilot Show or set Autopilot (experimental) for the employer. │
│ abort Abort a pipeline run. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
pipeline abort¶
Usage: zero pipeline abort [OPTIONS] RUN_ID
Abort a pipeline run.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * run_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --reason TEXT │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
pipeline advance¶
Usage: zero pipeline advance [OPTIONS] RUN_ID
Advance a pipeline run after approval.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * run_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --approve TEXT Approve the current phase. │
│ --reject TEXT Reject the current phase and abort. │
│ --reason TEXT │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
pipeline autopilot¶
Usage: zero pipeline autopilot [OPTIONS]
Show or set Autopilot (experimental) for the employer.
Autopilot lets the pipeline advance the reversible JD, sourcing, and
shortlist phases without a human. Outbound sending and the hire decision
always stay human-gated.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --on --off Enable or disable Autopilot. Omit to show the current setting. │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
pipeline list¶
Usage: zero pipeline list [OPTIONS]
List recent pipeline runs.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Filter to a job UUID. │
│ --limit INTEGER RANGE [1<=x<=250] [default: 50] │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
pipeline run¶
Usage: zero pipeline run [OPTIONS]
Create a pipeline run for a job.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted). │
│ --brief TEXT Hiring brief or run note. │
│ --sequence TEXT Default outreach sequence UUID for this run. │
│ --employer-id TEXT │
│ --idempotency-key TEXT Accepted for agent retry contracts; ignored until backend idempotency lands. │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
pipeline status¶
Usage: zero pipeline status [OPTIONS] RUN_ID
Show one pipeline run.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * run_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
results¶
Usage: zero results [OPTIONS] COMMAND [ARGS]...
View interview results.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ show Show interview results and scores for all candidates in a job. │
│ detail Show detailed interview results for a specific candidate. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
results detail¶
Usage: zero results detail [OPTIONS] [CANDIDATE]
Show detailed interview results for a specific candidate.
`--output csv|tsv|ndjson|json` flattens the transcript into rows so
the detail view is as pipeable as `results show`. CSV/TSV columns
track `rank` (1-based question index), `name` (candidate),
`resume_score` (empty for detail rows), `interview_score` (overall score),
`application_id` — plus extra `question`/`answer`/`question_score` columns
tacked on the end so you don't lose the text payload.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ candidate [CANDIDATE] Candidate number (1-based) or interview UUID (shows top candidate if omitted) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted) │
│ --json Raw JSON output │
│ --output TEXT Structured output format: csv | tsv | ndjson | json (flattens answers into rows). │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
results show¶
Usage: zero results show [OPTIONS] [JOB_ID]
Show interview results and scores for all candidates in a job.
`--output csv|tsv|ndjson|json` emits a flat, machine-friendly view
with columns: rank, name, resume_score, interview_score,
application_id. This is the recommended way to pipe results into a
spreadsheet or downstream tool.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ job_id [JOB_ID] Job UUID (uses current job if omitted) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --json Raw JSON output │
│ --output TEXT Structured output format: csv | tsv | ndjson | json. CSV is the default export format. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing¶
Usage: zero sourcing [OPTIONS] COMMAND [ARGS]...
Search sourced candidates and add them to jobs.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ search Run a natural-language people search. │
│ status Show the status of an async sourcing search job. │
│ show Replay a saved sourcing search. │
│ add Add a sourced profile to the current job's applicants list. │
│ invite Promote a shortlisted sourced profile into an AI interview invite. │
│ shortlist Legacy alias for adding sourced candidates to jobs. │
│ applicants Promote sourced candidates into job applicants. │
│ test-candidate Create safe test sourced candidates. │
│ demo-candidates Create deterministic fake sourced candidates. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing add¶
Usage: zero sourcing add [OPTIONS] PROFILE_ID
Add a sourced profile to the current job's applicants list.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * profile_id TEXT Sourced profile UUID. [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted). │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing applicants¶
Usage: zero sourcing applicants [OPTIONS] COMMAND [ARGS]...
Promote sourced candidates into job applicants.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ add Add a sourced profile to the current job's applicants list. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing applicants add¶
Usage: zero sourcing applicants add [OPTIONS] PROFILE_ID
Add a sourced profile to the current job's applicants list.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * profile_id TEXT Sourced profile UUID. [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted). │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing demo-candidates¶
Usage: zero sourcing demo-candidates [OPTIONS] COMMAND [ARGS]...
Create deterministic fake sourced candidates.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ add Create or reuse the fixed five fake sourced candidates for a job. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing demo-candidates add¶
Usage: zero sourcing demo-candidates add [OPTIONS]
Create or reuse the fixed five fake sourced candidates for a job.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted). │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing invite¶
Usage: zero sourcing invite [OPTIONS] SHORTLIST_ID
Promote a shortlisted sourced profile into an AI interview invite.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * shortlist_id TEXT Shortlist UUID. [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --email TEXT [required] │
│ * --first-name TEXT [required] │
│ * --last-name TEXT [required] │
│ --interview-type TEXT [default: realtime] │
│ --avatar-id TEXT │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing search¶
Usage: zero sourcing search [OPTIONS] QUERY
Run a natural-language people search.
The backend runs searches asynchronously and returns a search_job_id.
Pass --wait to poll until the saved search_id is ready.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * query TEXT Natural-language candidate search. [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted). │
│ --limit INTEGER RANGE [x>=1] [default: 50] │
│ --depth TEXT cheap or deep ranking. [default: cheap] │
│ --location TEXT Explicit country, city, or region constraint from the user's request (repeatable; overrides job-derived sourcing location). │
│ --real In dev/staging, bypass demo candidates and run a small live provider search. │
│ --source-more Continue the latest successful search for the linked job. Use only when the user explicitly asks for more candidates. │
│ --wait Poll until the background search completes. │
│ --poll-interval FLOAT RANGE [0.5<=x<=10.0] [default: 2.0] │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing shortlist¶
Usage: zero sourcing shortlist [OPTIONS] COMMAND [ARGS]...
Legacy alias for adding sourced candidates to jobs.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ add Legacy alias for adding a sourced profile to applicants. │
│ list Legacy command removed: use `zero candidates list --source sourced`. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing shortlist add¶
Usage: zero sourcing shortlist add [OPTIONS] PROFILE_ID
Legacy alias for adding a sourced profile to applicants.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * profile_id TEXT Sourced profile UUID. [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted). │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing shortlist list¶
Usage: zero sourcing shortlist list [OPTIONS]
Legacy command removed: use `zero candidates list --source sourced`.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted). │
│ --status TEXT │
│ --limit INTEGER RANGE [1<=x<=500] [default: 100] │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing show¶
Usage: zero sourcing show [OPTIONS] SEARCH_ID
Replay a saved sourcing search.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * search_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing status¶
Usage: zero sourcing status [OPTIONS] SEARCH_JOB_ID
Show the status of an async sourcing search job.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * search_job_id TEXT [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing test-candidate¶
Usage: zero sourcing test-candidate [OPTIONS] COMMAND [ARGS]...
Create safe test sourced candidates.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ add Create or reuse a sourced-style test candidate for a job. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
sourcing test-candidate add¶
Usage: zero sourcing test-candidate add [OPTIONS]
Create or reuse a sourced-style test candidate for a job.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --job -j TEXT Job UUID (uses current job if omitted). │
│ * --email TEXT Safe test candidate email [required] │
│ * --phone TEXT Safe test candidate phone [required] │
│ --first-name TEXT First name [default: Jenny] │
│ --last-name TEXT Last name [default: Outreach Test Candidate] │
│ --current-title TEXT Current title [default: Junior Sales Representative] │
│ --current-company TEXT Current company [default: Demo Candidate Co] │
│ --location TEXT Candidate location [default: Remote] │
│ --employer-id TEXT │
│ --json │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
status¶
Usage: zero status [OPTIONS] COMMAND [ARGS]...
Check your jobs and pipeline.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ show Show all your jobs with applicant counts and progress. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
status show¶
Usage: zero status show [OPTIONS]
Show all your jobs with applicant counts and progress.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected) │
│ --active-only Drop inactive rows. Does NOT restrict to jobs you created; use --mine for that. │
│ --mine Show only jobs you created. Requires the backend to expose `created_by_user_id` (ZER-563); if it doesn't, a warning is printed to stderr and all employer jobs are shown. │
│ --tag TEXT Filter to jobs tagged [<name>] in the title (case-insensitive). │
│ --since TEXT ISO date (e.g. 2026-04-01). Keep jobs created on/after this date. │
│ --search TEXT Case-insensitive substring match on job title. │
│ --sort TEXT Sort by: created, title, applicants, status. │
│ --order TEXT Sort direction: asc, desc. Only used with --sort. [default: desc] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
team¶
Usage: zero team [OPTIONS] COMMAND [ARGS]...
Manage team members.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list List team members for an employer. │
│ add Backward-compatible alias for ``team invite``. │
│ invite Send a team invitation email. │
│ remove Remove a team member from an employer. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
team add¶
Usage: zero team add [OPTIONS]
Backward-compatible alias for ``team invite``.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --email TEXT Email of user to add [required] │
│ --employer-id TEXT Deprecated; invitations use the employer bound to your login. │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
team invite¶
Usage: zero team invite [OPTIONS]
Send a team invitation email.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --email TEXT Email of user to invite [required] │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
team list¶
Usage: zero team list [OPTIONS]
List team members for an employer.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected from login) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
team remove¶
Usage: zero team remove [OPTIONS] USER_ID
Remove a team member from an employer.
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * user_id TEXT User UUID to remove [required] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --employer-id TEXT Employer UUID (auto-detected from login) │
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
whoami¶
Usage: zero whoami [OPTIONS]
Show current login status.
Hits the backend `/api/cli-auth/whoami` endpoint so the answer reflects
the *actual* identity of the stored token — not whatever got cached in
the local config file. This matters because a stale `employer_id` in
`~/.zerohiring/config.json` previously made it look like the CLI was
acting on one account while actually hitting another.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --json Raw JSON output │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯