JSPM

  • Created
  • Published
  • Downloads 628
  • Score
    100M100P100Q121917F
  • License MIT

Official CLI for CareerVivid — publish articles, diagrams, and portfolio updates from your terminal or AI agent

Package Exports

  • careervivid
  • careervivid/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (careervivid) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

careervivid · CLI

Your AI-powered career terminal — autonomous job applications, resume editing, job pipeline tracking, and portfolio publishing from the command line.

npm version License: MIT Node ≥18


Table of Contents


Quick Start

# 1. Install globally
npm install -g careervivid

# 2. Log in and get your free API key
cv login
# → opens careervivid.app/developer in your browser
# → copy your API key, then:
cv auth set-key cv_live_YOUR_KEY_HERE

# 3. Start the AI agent
cv agent

# 4. Or jump straight into job-hunting mode
cv agent --jobs

Free tier includes 100 AI credits/month — no credit card required.


Commands


cv agent

An autonomous AI agent that runs interactively in your terminal. Choose from CareerVivid Cloud (credits deducted from your account) or Bring Your Own API Key.

cv agent                  # General-purpose agent (Gemini Flash Lite)
cv agent --resume         # Resume CRUD mode: read, update fields, tailor
cv agent --jobs           # Job-hunting mode: search, apply, track pipeline
cv agent --coding         # Full coding toolkit: file I/O, shell execution, search
cv agent --pro            # Gemini Pro with extended thinking

Options:

Option Description
--resume Resume CRUD tools — read, set fields, tailor for a job, delete
--jobs Job hunting + autonomous apply tools
--coding Enable full coding tool suite (file read/write, shell, search)
--pro Use gemini-3.1-pro-preview with thinking mode
--think <budget> Enable thinking mode with a specific token budget (e.g. 8192)
--verbose Show thinking tokens in output
--provider <name> Override provider: careervivid | openai | anthropic | openrouter | gemini | custom
--model <model> Override model (e.g. gpt-4o, claude-opus-4-5)
--api-key <key> BYO API key for this session (not saved)
--base-url <url> Custom OpenAI-compatible base URL

Configure your default provider:

cv agent config
# → Interactive wizard: pick provider, model, API key

cv agent --jobs

The most powerful mode. A conversational agent that thinks like a senior recruiter, manages your pipeline, and can autonomously fill out job applications using browser-use.

cv agent --jobs

What it can do in a conversation:

You say... Agent action
"Find me ML engineering jobs" search_jobs → scores results vs. resume → verify_search_results to confirm all URLs work
"Apply to this job: <URL>" apply_to_job → launches browser → fills form → stops before Submit for your review
"What's in my pipeline?" list_local_jobs → shows Kanban board
"What should I work on next?" score_pipeline → priority-ranked by attention × excitement × fit
"I got an interview at Stripe" update_local_job → sets status to Interviewing, suggests follow-up
"What am I neglecting?" flag_stale_jobs → surfaces cold applications
"Show me my analytics" get_pipeline_metrics → apply rate, avg score, salary data

Autonomous Apply Harness (apply_to_job tool):

The agent uses a multi-stage harness to fill job applications:

  1. URL Verification — Every job link is verified live before the agent acts. Broken, hallucinated, or redirect-to-homepage URLs are rejected automatically.
  2. ATS Detection — Automatically detects Ashby, Greenhouse, Lever, Workday, iCIMS, and more.
  3. TypeScript Adapter — Fast-fills known fields (firstName, email, phone, LinkedIn, GitHub) using pre-loaded profile data.
  4. browser-use AI handoff — For complex fields (cover letter, work auth, custom questions), the browser-use agent takes over with a rich task prompt built from your resume.
  5. Manual review gate — The browser stays open. The agent never clicks Submit — you review and submit yourself.

Requires browser-use setup — see browser-use Setup.

Pipeline tracking (local CSV):

The jobs agent also manages a local jobs.csv pipeline (v2 schema) with 8 attention metrics:

Field Description
attention_score (1–10) How top-of-mind is this company?
excitement (1–10) Pure enthusiasm for the role
apply_effort Low / Medium / High
prep_time_hours Estimated research hours
company_stage Seed / Series A-C / Public / Enterprise
open_roles_count How many roles are currently open
interview_rounds Known number of interview rounds
last_activity_date Auto-stamped on every update

Priority Score = 40% attention + 30% excitement + 20% fit + 10% recency


cv agent --resume

Full CRUD control over your CareerVivid resume from the terminal.

cv agent --resume

Available tools:

Tool What you can say
get_resume "Show me my resume" / "Load my resume"
list_resumes "What resumes do I have?"
set_resume_fields "Set my last name to Zhu" / "Update my phone to +1-408-599-4164"
tailor_resume "Tailor my resume for this job description: ..."
delete_resume "Delete the old untitled resume"

Supported fields for set_resume_fields:

firstName, lastName, email, phone
address, city, state, country, postalCode
jobTitle, currentCompany
linkedin, github, portfolio
summary (professional summary)
addSkill / removeSkill
resumeTitle (document name)

Example conversation:

You:   Set my last name to Zhu and my phone to +1-408-599-4164
Agent: ✅ Resume updated — review at https://careervivid.app/edit/...

You:   Add Python and TypeScript to my skills
Agent: ✅ Skills updated

You:   Tailor my resume for this job description: [paste JD]
Agent: ✅ Tailored copy created — https://careervivid.app/edit/...

cv jobs

Non-interactive job commands (use cv agent --jobs for a conversational experience).

Subcommand Description
cv jobs hunt AI-powered job search scored against your resume → auto-saves to tracker
cv jobs apply <url> Autonomous apply harness for a specific URL
cv jobs update Interactively update a job application status
cv jobs list View your current job tracker board
cv jobs hunt --role "Software Engineer" --score 60
cv jobs apply https://jobs.ashbyhq.com/openai/...
cv jobs list
cv jobs update

cv publish

Publish a Markdown article or Mermaid diagram to your CareerVivid portfolio.

cv publish <file> [options]
cv publish -       # read from stdin
Option Description
-t, --title <title> Post title (auto-inferred from first # heading if omitted)
--type <type> article | whiteboard (auto-inferred from file extension)
--format <format> markdown | mermaid (auto-inferred from file extension)
--tags <tags> Comma-separated tags, e.g. typescript,firebase,react
--cover <url> URL to a cover image
--public Publish as public (visible to all users)
--private Publish as private (only visible to you — this is the default)
--dry-run Validate payload without publishing
--json Machine-readable JSON output

Privacy default: All articles published via cv publish or cv agent are private by default. Use --public to make them visible to the community.

cv publish article.md --title "How I Built a CLI" --tags "node,typescript"
cv publish article.md --public               # share with community
cv publish architecture.mmd --title "System Architecture"
cat writeup.md | cv publish - --title "Architecture Breakdown" --json

cv whiteboard

Create and publish Mermaid architecture diagrams.

Subcommand Description
cv whiteboard new [file] Scaffold a Mermaid diagram from a built-in template
cv whiteboard publish <file> Publish a .mmd diagram to your portfolio
cv whiteboard list-templates List all available built-in templates
cv new my-diagram --template system-arch
cv list-templates

cv profile

Manage your CareerVivid profile.

Subcommand Description
cv profile export Export resume data to other formats (e.g. gdoc)

cv auth

Manage your CareerVivid API key. Get your key at careervivid.app/developer.

Subcommand Description
cv auth set-key <key> Save your API key to ~/.careervividrc.json
cv auth check Verify that your saved key is valid
cv auth remove Remove the saved key
cv auth whoami Show the currently authenticated user
cv auth set-key cv_live_YOUR_KEY_HERE
cv auth check
# ✔  Authenticated as Jiawen Zhu (jiawen@careervivid.app)

# Or use env var without saving locally
CV_API_KEY=cv_live_YOUR_KEY_HERE cv publish article.md

cv login

Open the CareerVivid sign-in page and interactively save your API key.

cv login

cv config

View and modify CLI configuration stored at ~/.careervividrc.json.

Subcommand Description
cv config show Print the full config (sensitive keys are masked)
cv config get <key> Print a single config value
cv config set <key> <value> Update a config value

Available keys:

Key Description
apiKey Your CareerVivid API key
apiUrl Optional API endpoint override
targetCompanies Target companies for cv jobs hunt
llmProvider Default BYO LLM provider
llmModel Default BYO model
llmApiKey BYO LLM API key (masked in output)
llmBaseUrl Custom OpenAI-compatible base URL
cv config set targetCompanies "OpenAI, Google, Vercel"
cv config set llmProvider openai
cv config set llmModel gpt-4o

AI Credits

Plan Credits / Month Price
Free 100 credits $0
Pro 1,000 credits Paid
Max 10,000 credits Paid

Credit costs per agent turn:

Model Credits
gemini-3.1-flash-lite-preview 0.5 cr
gemini-2.5-flash 1 cr
gemini-3.1-pro-preview (--pro) 2 cr

Bring Your Own Key: Using --provider openai (or any non-CareerVivid provider) deducts zero credits — you pay your provider directly.

Get your key and check balance at careervivid.app/developer.


Bring Your Own API Key (BYO)

Provider --provider Notes
CareerVivid (default) careervivid Gemini Flash Lite, Flash, Pro — credits from your account
OpenAI openai gpt-4o, o3-mini, …
Anthropic anthropic claude-opus-4-5, claude-sonnet-4-5, …
Google Gemini (direct) gemini gemini-2.5-flash, gemini-3.1-pro-preview, …
OpenRouter openrouter 100+ models: Kimi, GLM, Qwen, Mistral, Llama, …
Custom OpenAI-compatible custom Any endpoint via --base-url
cv agent --provider openai --model gpt-4o --api-key sk-...
cv agent --provider anthropic --model claude-opus-4-5 --api-key sk-ant-...
cv agent --provider openrouter --model mistralai/mistral-7b-instruct --api-key sk-or-...

# Save a provider permanently
cv agent config

browser-use Setup (Autonomous Apply)

The apply_to_job tool in cv agent --jobs and cv jobs apply use browser-use — a Python AI browser automation library — to fill job applications.

Prerequisites

  • Python 3.11+ with pip
  • A virtual environment (recommended)

Setup (one-time)

# 1. Create a Python virtual environment
mkdir -p ~/careervivid/browser-use
cd ~/careervivid/browser-use
python3 -m venv .venv
source .venv/bin/activate

# 2. Install browser-use
pip install browser-use

# 3. Install Playwright browsers
playwright install chromium

# 4. Verify
python -c "import browser_use; print('browser-use ready')"

How it works

When you run cv agent --jobs and ask to apply to a job:

  1. The agent calls apply_to_job with the job URL
  2. The CLI spawns src/apply/browser_sidecar.py (bundled with the npm package)
  3. The sidecar launches a real Chrome browser (non-headless) using your profile
  4. An AI agent fills the form field-by-field using your resume data
  5. The browser stays open — you review every field and submit manually

The agent will never click the final Submit button. You remain in full control.

Resume PDF

Place your resume at ~/.careervivid/resume.pdf and the sidecar will upload it automatically to resume upload fields.

cp ~/Downloads/MyResume.pdf ~/.careervivid/resume.pdf

Whiteboard Templates

Run cv list-templates to see all available templates:

Template Description
flowchart Generic flowchart / process diagram
system-arch System architecture (client → API → DB)
tech-stack Full technology stack diagram
user-journey Sequence diagram (user ↔ API ↔ DB)
er-diagram Entity-relationship / database schema
git-flow Git branching and release flow
ci-cd CI/CD pipeline (lint → test → build → deploy)
mindmap Mind map / concept breakdown

AI Agent Integration (MCP / CI)

Use --json for structured output in automated pipelines.

# Pipe AI-generated markdown directly
echo "# My Architecture\n\nExplains the new service..." \
  | cv publish - --title "New Service Explained" --tags "architecture" --json

# Output:
# [{ "postId": "abc123", "url": "https://careervivid.app/community/post/abc123" }]

System prompt for Cursor / Claude / Gemini:

You have access to the `cv` CLI tool.

Available commands:
- cv publish <file>               Publish an article (private by default, use --public to share)
- cv agent --resume               Resume CRUD: read, update fields, tailor
- cv agent --jobs                 Job hunting + autonomous apply
- cv jobs hunt --role "..."       AI job search
- cv jobs apply <url>             Autonomous form filling (stops before submit)
- cv jobs list                    View job tracker

Rules:
1. Never include real API keys in published content.
2. Always use --json for machine-readable output.
3. Articles are PRIVATE by default. Only use --public if user explicitly requests it.

Updating

npm install -g careervivid
cv -v

Troubleshooting

cv: command not found

npm config get prefix
# Add <prefix>/bin to your PATH in ~/.zshrc or ~/.bashrc

Unauthorized error

cv auth check
CV_API_KEY=cv_live_YOUR_KEY cv publish article.md

browser_sidecar.py not found

# browser-use is not set up. Follow the browser-use Setup section above.
# Verify your venv path:
ls ~/careervivid/browser-use/.venv/bin/python

aiohttp is not defined or ainvoke() takes 2 positional arguments

# Update to the latest version (fixed in v1.12.5+)
npm install -g careervivid@latest

❌ No API key found when using CareerVivid Cloud

cv auth check          # verify your CV API key is set
cv agent config        # reconfigure your LLM provider

cannot add command 'agent' error (< v1.12.2)

npm install -g careervivid@latest

Job URL is broken / agent says it can't confirm the link The agent uses a live URL verification harness. If a link fails verification it will tell you instead of sending you to a broken page. Search for the role directly on the company's careers page or LinkedIn.

Article shows as public even though I said private Update to v1.12.6+ — articles are now private by default. Use --public or tell the agent "publish publicly" to share with the community.

Permission denied on ~/.careervividrc.json

chmod 600 ~/.careervividrc.json

Resources


MIT License © CareerVivid