Career-OS — end-to-end career operating system. Anti-loop research, outreach, recommendation, voice capture, ecosystem mapping, weekly planning, and self-healing context. Ships 4 workspace variants (career-os default + legacy career-planning / job-search / salary-research) and integrates via companion plugins (claude-transcription, schedule-manager, email-skills).
npx claudepluginhub danielrosehill/claude-code-plugins --plugin careerEcosystem entry point — conferences, communities, job boards, hackathons, investors, LinkedIn import. Lower-stress, high-leverage exploration that maps the surface around a domain. All outputs land in <WORKING_FOLDER>/domain-notes/<slug>/.
Discovery entry point — enumerate companies in a domain, find peers of a seed, scope by remote-friendliness or geography, or chunk a broad topic. All discovery skills write to <WORKING_FOLDER>/domain-notes/ for downstream /career:suggest to consume.
Audit public brand surfaces — website, GitHub, Hugging Face, LinkedIn — against ground-truth direction. Surfaces drift, gaps, and stale surfaces. Recommendations only.
Capture entry point — voice memo or text. Transcribes if audio, classifies, proposes route, then on confirmation executes the route (task creation, CRM update, follow-up draft, ground-truth delta proposal). Always confirms before any side-effect.
Side-by-side comparison of job offers (or role opportunities) across comp, growth, and fit dimensions.
Cost-routing + semantic-recall management. Sync the workspace into Pinecone, query it, or inspect the routing decision for a given task.
Generate a cover letter for a specific application, grounded in the user's actual experience.
External CRM adapters. Sync markdown CRM with Airtable or Attio (two-way), or migrate one-shot between backends. Markdown stays the source of truth.
Surface relevant conferences/events for the user's discipline, goals, and travel constraints.
Surface candidate courses that address the user's top skill gaps.
Build an interview prep brief for a specific round — likely questions, answers anchored in the user's experience, and company-specific research.
Quick-log a CPD (continuing professional development) activity — article, talk, book, course session, mentoring, etc.
Register a new role of interest — for tracking, applying, or salary benchmarking.
One-page pre-call brief — talking points in user's voice, questions to ask, fallback pitch, success criterion. Reads ground-truth + research briefs. Writes to <WORKING_FOLDER>/meetings/.
Onboard the user to a career workspace — capture profile, write plugin config, install companion plugins. Variant-aware (career-os | career-planning | job-search | salary-research).
Outreach loop entry point — find contact, draft, send, log, and track status. Subcommand-driven. Uses Hunter for contact discovery and email-skills for sending. Always confirms before sending.
Summarise the current job-application pipeline — by stage, recency, and next actions.
Weekly planning + logging entry point. Reads workspace state to propose a week of actions, or reads diffs at end of week to produce a wrap-up. Delegates time-blocks/tasks to schedule-manager when installed.
Quarterly career self-review — plan vs actual across goals, CPD, skills, applications.
Reconciliation pass — surface drift between ground-truth.md, CRM rows, and recent activity. Every finding cites a specific source row. Never silently overwrites ground-truth — proposes edits the user reviews.
Run a single research brief on a company. Use for ad-hoc deep-dives on one angle (e.g. just remote-friendliness, or just glassdoor signal) without paying the cost of a full six-brief run.
Orchestrate a full six-brief deep-dive on a target company — overview, financials, recruitment, remote-friendliness, glassdoor, cultural-fit — then synthesise a top-level SUMMARY with best/worst signals, candidate interview questions, and a fit-with-ground-truth verdict.
White-hat salary benchmarking for a (geography, role) pair. Cached so repeat calls don't re-fetch.
Refresh skills/gaps.md by diffing current skill inventory against target-role profile. Carries plan notes forward.
Recommendation entry point — given ground-truth and discovery notes, suggest companies (with anti-loop), roles, skills to close, projects to ship, or consulting packages. All suggestions write a dated file to <WORKING_FOLDER>/recommendations/.
Generate a resume variant tailored to a specific role/JD. Never invents experience.
Update the status of a job application in the pipeline — stage change, interview scheduled, rejection, offer, follow-up.
Maintains the job-application pipeline database (`data/processes.json`). Use for any read/write operation on the pipeline — status updates, queries, rollups, integrity checks.
Autonomous career strategy subagent. Coordinates multi-step planning — diffing gaps against goals, sequencing CPD, proposing role moves, and drafting narrative arcs. Use for multi-file, multi-step career planning operations.
Audit the user's public brand surfaces — personal site, GitHub, Hugging Face, LinkedIn — against ground-truth direction. Surfaces drift (site says X, ground-truth says Y) and gaps (no project shipped in domain Z). Produces an actionable update list.
Produce a Company Financials research brief — funding rounds, valuation, revenue (if disclosed), burn / runway, profitability signal, public-market metrics. Use when the user needs a numbers-only read for negotiation, due-diligence, or to gauge runway risk. Reads templates/research-briefs/company-financials.md and writes to <WORKING_FOLDER>/research/companies/<slug>/company-financials.md. Numbers are sourced or marked "not disclosed" — never estimated.
Produce a Company Overview research brief for a target company — name, locations, headcount, funding rounds at a glance, founder story, competitive landscape, vision, differentiators. Use when the user wants a top-level read on a potential employer or consulting client. Reads the template at templates/research-briefs/company-overview.md and writes to <WORKING_FOLDER>/research/companies/<slug>/company-overview.md. Cites at least 3 sources. Skipped fields are marked unknown, never fabricated.
Produce a Cultural Fit research brief — pairs the user's stated operating style and constraints (read from ground-truth.md) against the company's apparent operating mode (from public signals). Output is a match-map plus blunt friction list. Use after the other briefs are in hand. Requires populated ground-truth.md. Reads templates/research-briefs/cultural-fit.md and writes to <WORKING_FOLDER>/research/companies/<slug>/cultural-fit.md.
Produce a Glassdoor / employee-sentiment research brief — overall ratings, sub-ratings, tenure data with red-flag detection scoped to the relevant team, compensation data, theme analysis of top complaints and positives, recent direction inflections. Aggregate sentiment, not a recap of individual reviews. Use to gauge whether public employee discourse aligns or contradicts the company's outward image. Reads templates/research-briefs/glassdoor-signal.md and writes to <WORKING_FOLDER>/research/companies/<slug>/glassdoor-signal.md.
Produce a Recruitment Profile research brief — careers page, open roles (filtered by target function if provided), LinkedIn presence, headcount trend, hiring signals, recruiter activity, and known interview-process patterns from public sources. Use when the user wants to assess whether a company is actually hiring people like them, vs. posting ghost roles. Reads templates/research-briefs/recruitment-profile.md and writes to <WORKING_FOLDER>/research/companies/<slug>/recruitment-profile.md.
Produce an honest Remote Friendliness research brief — does the company actually hire from the user's location, or is the "remote-first" claim marketing? Cross-references stated policy against live job postings, time-zone requirements, hiring entities, and existing employees in the user's region. Critical for non-US/EU users. Reads templates/research-briefs/remote-friendliness.md and writes to <WORKING_FOLDER>/research/companies/<slug>/remote-friendliness.md.
Sweep all (or a filtered subset of) email addresses in the workspace CRM and re-verify them via Hunter Email-Verifier. Use periodically — people change jobs, addresses go stale, accept-all status changes. Updates the `verified` and `last-verified` columns in `crm/contacts.md` and prints a summary of what flipped.
For broad domains ("AI", "fintech", "climate"), segment into sub-niches first, then drill down per segment using discover-by-domain. Writes a parent index plus per-segment notes. Use when discover-by-domain bails out.
Given one seed company, find peers along an explicit similarity axis (product, customer, tech stack, business model, culture). Writes to <WORKING_FOLDER>/domain-notes/like-<seed-slug>.md. Reads outreach.md to mark contact status. Use when the user has a known reference point and wants more of the same shape.
Two-way sync between markdown CRM (crm/companies.md, crm/opportunities.md, crm/outreach.md) and Airtable. Reads CRM_ADAPTER=airtable. Markdown stays the source of truth — Airtable is a mirror with a diff back. Conflicts surfaced for user resolution, never auto-merged.
Two-way sync between markdown CRM and Attio. Same shape as crm-adapter-airtable but mapped to Attio's object model (Companies, People, Deals, Notes). Markdown stays canonical; Attio is a working surface. Conflicts surfaced, never auto-merged.
One-shot migration between CRM backends. Markdown → Airtable, markdown → Attio, Airtable → markdown, Attio → markdown, or Airtable ↔ Attio. Use when first adopting an external CRM, when leaving one, or when swapping providers. Snapshot-style, not incremental.
Scan the user's existing Claude Code plugins and MCP servers to detect capabilities the career plugin needs (email send, transcription, calendar/tasks, semantic store, CRM). For each capability, decide whether to reuse an already-installed plugin/MCP, install a recommended companion plugin, or add an MCP server. Writes the resolution map to ${CAREER_DATA_DIR}/config.json under a `capabilities` block. Invoked from /career:onboard before install-companion-plugins so we don't double up on capabilities the user already has.
Enumerate the main companies in a defined niche (e.g. "agentic AI for policy simulation", "open-source LLM tooling"). Writes to <WORKING_FOLDER>/domain-notes/<domain-slug>.md. Reads outreach.md to flag already-contacted companies. Use as the first step before /career:suggest companies — populate the domain knowledge once, suggest from it many times.
Enumerate companies in a domain operating in or hiring within a specific geography (city, country, region). Writes to <WORKING_FOLDER>/domain-notes/geo-<geo-slug>-<domain-slug>.md. Reads outreach.md to mark contact status.
Enumerate companies in a domain that are genuinely remote-friendly to USER_LOCATION (not just "remote-OK" with US-only fine print). Writes to <WORKING_FOLDER>/domain-notes/remote-<domain-slug>.md. Honest negatives over hopeful positives.
Generate an outreach email draft grounded in ground-truth.md, the company research brief, the target contact, and a chosen template (cold-pitch / warm-followup / consulting-pitch / job-followup / interview-followup). Always saves to drafts/ and presents to the user for review. Never sends. send-outreach is a separate skill that requires explicit confirmation.
Enrich an existing CRM contact with Hunter Combined-Enrichment — pulls role, seniority, department, social handles, and the contact's company facts in one call. Use to flesh out a thinly-populated CRM row before drafting outreach or prepping for a meeting. Operates on an email address from the CRM; updates the row in place.
Enumerate communities (LinkedIn groups, Slack channels, Discords, professional orgs, mailing lists) for a domain. Each entry includes activity-level signal and alignment to ground-truth. Writes to <WORKING_FOLDER>/domain-notes/<domain-slug>/communities.md.
Enumerate conferences and events at the intersection of a domain, geography, and date range. Reads ground-truth for goals/travel constraints. Writes to <WORKING_FOLDER>/domain-notes/<domain-slug>/conferences.md. Surfaces CFP windows separately so the user can submit, not just attend.
Find the right person to contact at a target company using Hunter.io. Use when the user needs decision-maker / hiring-manager / founder contact details before drafting an outreach. Returns ranked candidates with confidence scores; optionally appends to the workspace CRM. Hunter MCP is required.
Given a person's name and their company (name or domain), return Hunter's best guess at their email address with a confidence score. Use when the user already knows who they want to reach and just needs the address. Differs from find-contact (which lists candidates at a company) — this is targeted at a single named person.
Enumerate hackathons relevant to a domain. Per spec, hackathons are often a direct line to founders — surface ones that double as outreach surface, not just coding events. Writes to <WORKING_FOLDER>/domain-notes/<domain-slug>/hackathons.md.
Enumerate specialist job boards relevant to a domain (and optionally the user's location/remote preference). Filters out generic boards (LinkedIn, Indeed) by default — surfaces only niche-aligned sources. Writes to <WORKING_FOLDER>/domain-notes/<domain-slug>/jobs-boards.md.
Read or edit the workspace's ground-truth.md — the source-of-truth profile every Career-OS skill reads first. Use when the user says "update my profile", "I changed roles", "I'm looking for X now", or after a major life/career change. Idempotent and diff-friendly. Never silently overwrites.
Parse a LinkedIn data export ZIP — positions, connections, messages, profile — and land structured markdown/CSV in <WORKING_FOLDER>/linkedin/. Surfaces follow-up candidates (recent connections + recent message threads) for the user to consider routing to outreach.
Offer to install Claude Code plugins that complement the career plugin. Use during /career:onboard, or whenever the user wants to enable a downstream capability (transcription for voice ingest, schedule-manager for calendar/tasks, email-skills for outreach send, social-feedback for company sentiment research, decision-evaluation-framework for offer comparisons, private-misc for Pinecone wiring). Lists each, explains what it unlocks in the career plugin, and lets the user accept/decline per plugin.
Manually log an outreach that was sent outside the plugin (e.g. a LinkedIn message, an in-person conversation, an email sent from a phone). Appends a row to crm/outreach.md without invoking any send. Use this to keep the outreach log honest as the spine of the recommendation engine.
Map VCs and angels active in a domain. Output is usable as introducer surface — for each investor, surface portfolio companies that overlap with the user's target list. Writes to <WORKING_FOLDER>/domain-notes/<domain-slug>/investors.md.
Produce a one-page pre-call brief — 5 talking points in user's voice, 3 questions to ask, 1 "if cornered" framing, 1 "what success looks like" line. Reads ground-truth + any existing research briefs. Saves to <WORKING_FOLDER>/meetings/<YYYY-MM-DD>-<company>-prep.md.
Provision a new career workspace on disk. Use when the user wants to start a new career-os, career-planning, job-search, or salary-research project. Accepts a workspace name and a variant (career-os | career-planning | job-search | salary-research). Default variant is `career-os` — the unified employment + freelance workspace. Scaffolds the workspace, personalises CLAUDE.md from the user's global memory, and (by default) creates a GitHub repo.
Incremental sync of working-folder/ into a Pinecone index for semantic recall. Embeds only changed files (mtime + content hash). Index name from config. Delegates first-time MCP setup to private-misc:personal-context-injection. Idempotent.
Lightweight capture for inline text or short voice notes — same classification + routing pipeline as voice-ingest, but optimized for "one thought, drop it in" rather than full memos. Voice routes through the transcription companion; text skips straight to classify + propose route.
Cost-routing helper. Reads RESEARCH_MODEL from config and decides whether a bulk-research call should run on Claude or be delegated to a cheaper model (DeepSeek Pro/Flash via OpenRouter). Reserves Claude for ground-truth, meeting-prep, draft-outreach, recommendation engine. Skills that produce many cheap research artifacts (discovery, ecosystem, financials briefs) call this first.
Given a classified inbox entry (from voice-ingest or text input), execute the proposed route — create tasks, update CRM rows, draft follow-ups, propose ground-truth edits. Always confirms each side-effect before committing. Marks the inbox entry routed when done.
White-hat salary benchmarking for a (geography, role) pair. Cached at cache/salary-<geo>-<role>.md so repeat calls don't re-fetch. Public sources only — postings, Levels.fyi, Glassdoor, Payscale, BLS/Eurostat, SEC, Blind/Fishbowl as signal. Confidence-tagged per data point.
Reconciliation pass. Reads ground-truth.md + crm/companies.md + crm/opportunities.md + crm/outreach.md and surfaces discrepancies. Never silently overwrites — every finding is a proposed delta the user reviews. Writes to <WORKING_FOLDER>/reconcile/<YYYY-MM-DD>-findings.md.
Query Pinecone (or fallback to grep-over-markdown) for context relevant to a task. Returns ranked snippets with cited paths. Used by suggest-companies, meeting-prep, weekly-plan, self-healing-context when CONTEXT_STORE=pinecone. Caller decides what to do with results.
Send a previously-drafted outreach email. Reads a draft file from drafts/, presents it one final time to the user, requires explicit "yes, send" confirmation, then delegates to the email-skills companion plugin (personal or business sender per draft frontmatter). On send, updates the draft frontmatter to status=sent and appends a row to crm/outreach.md. Never sends without explicit confirmation.
Diff current skill inventory against target-role/domain profile. Categorises gaps as critical/material/met. Carries plan notes forward across refreshes. Writes skills/gaps.md. Different shape from suggest-skills (which is forward-looking against a horizon) — this is the inventory delta.
Rank companies from a domain note (or set of notes) for the user, applying anti-loop logic against outreach.md. Hard-excludes recently-contacted; rank-downs stalled; surfaces freshness so the logic is visible. Writes to <WORKING_FOLDER>/recommendations/companies-<date>.md.
For users with a freelance-brand in ground-truth, propose narrow consulting offers (problem framed, scope outlined, rough investment indicated) targeted at a domain or company. Writes to <WORKING_FOLDER>/recommendations/consulting-packages-<date>.md.
Suggest concrete projects (build / write / contribute) the user could ship to close a skill gap, demonstrate a capability, or create a hook for outreach to a target company. Writes to <WORKING_FOLDER>/recommendations/projects-<date>.md.
Given ground-truth and (optionally) a target company or domain, suggest role titles/shapes to target. Distinguishes "roles that exist on the market" from "roles I should pitch creating". Writes to <WORKING_FOLDER>/recommendations/roles-<date>.md.
Identify skill gaps between ground-truth and target roles/companies/domain. Distinguishes "must close to be considered" from "would round out the profile". Writes to <WORKING_FOLDER>/recommendations/skills-<date>.md.
Produce a resume variant tailored to a specific role/JD. Reads master resume + ground-truth + JD; rewrites bullets to surface relevant experience and mirror JD phrasing where truthful. Never invents experience. Writes to resume/variants/<company>-<role>.md with a tailoring summary.
Update the status of an existing outreach log row. Use when a contact replies, books a meeting, the meeting happens, the conversation stalls, or the opportunity closes. Records state-change date without rewriting history. The recommendation engine reads these statuses to enforce anti-loop discovery.
For CONTEXT_STORE=pinecone — verify the index against the local workspace. Flags vectors whose source file was deleted, renamed, or content-changed (hash mismatch), and surfaces vectors whose content contradicts current ground-truth (stale claims, closed engagements, outdated targets). Proposes deletes/re-embeds; never silently mutates the index.
First-run scaffold of a vector-store namespace dedicated to application/outreach tracking. Creates the `applications` namespace in the configured index, sets the metadata schema (company, role, status, applied_date, last_touch, source_path, stage), seeds it from crm/outreach.md + crm/opportunities.md, and registers it in config. Idempotent — re-running detects existing namespace and offers reseed or skip.
Validate a single email address via Hunter Email-Verifier. Use when the user has an address (handed to them, scraped, guessed) and wants a deliverability + confidence read before sending outreach. Returns Hunter's verdict (deliverable / risky / undeliverable / unknown), score, and the disposable / role / accept-all flags. Does not write to the CRM unless asked.
Accept an audio file path, transcribe via the claude-transcription companion, classify the transcript (quick-note / retrospective / strategic-dump / unclear), and propose a route. Never auto-routes — always confirms with user. Lands transcript + audio link in <WORKING_FOLDER>/inbox/<YYYY-MM-DD-HHMM>.md.
End-of-week wrap-up. Reads outreach diffs since last log, reads the week's plan, asks user what worked, what didn't, what's next. Produces a wrap-up doc. Delegates to schedule-manager wrapup-style if available. Saves to <WORKING_FOLDER>/plans/<YYYY-MM-DD>-week-log.md.
Read crm/outreach.md + crm/opportunities.md + recent recommendations, propose 5–7 actions for the week (mix of research, outreach, follow-up, meetings, ecosystem). Delegates actionable items to schedule-manager:batch-create-tasks and time-blocked work to schedule-manager:batch-create-events. Confirms before any external write.
Flat/local-mode workspace hygiene. Sort loose files into canonical folders (research/, domain-notes/, inbox/, crm/, resume/, snippets/, branding/, cache/), find near-duplicates by name+hash, flag stale inbox entries (>14d), and re-root mis-placed files. Proposes a plan, applies only on confirm. No-op when CONTEXT_STORE != markdown.
Claude Code plugin: career planning workflow — role logging, offer comparison, application tracking, and white-hat salary benchmarking, with planning/job-search/salary variants.
Part of the danielrosehill Claude Code marketplace.
Cluster primitives:
/career:log-role — register a role of interest (pipeline, benchmark, or planning)/career:compare-offer — side-by-side offer comparison across comp / growth / fit/career:track-application — pipeline state updates (stage, interview, offer, rejection)/career:salary-benchmark — white-hat salary benchmarkingShared workflow commands:
/career:onboard — first-run setup per workspace variant/career:log-cpd — quick-log a CPD activity/career:skill-gap — refresh the gap analysis/career:find-courses / /career:find-conferences — surface candidates to close gaps/career:quarterly-review — dated plan-vs-actual/career:pipeline-status — application-pipeline rollup/career:research-company — public-source company brief/career:tailor-resume — JD-tailored resume variant (no fabrication)/career:cover-letter — grounded cover-letter draft/career:interview-prep — round-specific prep briefAgents:
career-strategist — multi-step planning subagentapplication-data-manager — authoritative read/write for data/processes.json/career:new-workspace <name> [--variant=career-planning|job-search|salary-research] [--local-only] [--private]Scaffolds a new workspace, personalises CLAUDE.md from ~/.claude/CLAUDE.md, and (by default) creates a GitHub repo.
Primitives live in the plugin → globally available from any cwd.
Workspace scaffolds are provisioned as data → no .claude/ tree inside provisioned workspaces.
Plugin updates never touch workspace data.
See PLAN.md in Claude-Workspace-Reshaping-190426 for the full pattern spec this plugin follows.
The plugin ships a .mcp.json declaring optional MCP servers career-os skills can use. None are installed automatically — Claude Code prompts the user to enable them when the plugin first loads.
| Server | Used by | Required env vars | Notes |
|---|---|---|---|
hunter | find-contact, outreach flow | HUNTER_API_KEY. Optional: HUNTER_MCP_COMMAND (default npx), HUNTER_MCP_PACKAGE (default hunter-mcp) | Override HUNTER_MCP_PACKAGE if you use a different Hunter MCP implementation. |
Other capabilities (LinkedIn outreach, email send, transcription, calendar/tasks, semantic store) are resolved at onboard time by the detect-mcps skill, which can either reuse an MCP you already have, install a companion plugin, or — if you point it at an aggregated MCP server — index that server's tools and dispatch through it.
If your MCP setup is consolidated behind a single aggregator (e.g. MCP Jungle, a personal proxy, or any router that exposes many upstream tools under one alias), you can pass that alias to /career:onboard. The tool inventory is captured to ${CAREER_DATA_DIR}/mcp-inventory.json and the resolution map prefers tools served by that aggregator before suggesting new MCP installs.
Skills that write artifacts (CRM rows, briefs, drafts) default their output path to $CAREER_WORKSPACE, which resolves to (in order): the explicit CAREER_WORKSPACE env var, the WORKING_FOLDER field in ${CAREER_DATA_DIR}/config.json, or $PWD. Set CAREER_WORKSPACE in your shell profile to anchor career-os to a specific workspace from any cwd.
This plugin absorbs and dedupes three prior template repos:
Claude-Career-Planning-Template → template/career-planning/ + CPD/skills/review primitivesClaude-Job-Search-Strategist → template/job-search/ + application/resume/interview primitives + application-data-manager agentClaude-Salary-Research-Agent → template/salary-research/ + salary-benchmark primitiveComprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Requires secrets
Needs API keys or credentials to function
Uses power tools
Uses Bash, Write, or Edit tools
Share bugs, ideas, or general feedback.
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
No description provided.
Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claim