Claude Code Plugin Python 3.10+ MIT License v1.1.2

Six commands.
End-to-end job applications.

Bootstrap your profile from your CV → source verified roles → scaffold a config → generate a tailored CV PDF → fill the ATS form → track your pipeline. Profile data stays local (gitignored). Claude does the work. You click Submit.

career-agent · Claude Code
$ /setup-profile ~/Downloads/LinkedIn.pdf  profile.json written · 9 roles parsed · 3 CV variants
$ /source Netherlands backend  28 verified roles · Top: Stripe fit 93/100
$ /new-role https://boards.greenhouse.io/stripe/jobs/5891234  roles/stripe_backend_2026.json
$ /generate-cv stripe_backend_2026  stripe_backend_2026_CV.pdf · CoverLetter.pdf
$ /apply stripe_backend_2026  CV uploaded · work auth answered · 12 fields filled
→ Waiting for you: EEO fields + Submit
$ /track stripe_backend_2026 applied  status → applied
demo · /apply stripe_backend_2026
career-agent demo: Claude filling a Greenhouse ATS form automatically

The six commands

person_add
/setup-profile
Bootstrap from CV or LinkedIn
search
/source
Find & verify roles
settings_suggest
/new-role
Scaffold role config
picture_as_pdf
/generate-cv
Tailored PDF + cover letter
smart_toy
/apply
Fill ATS form & upload
monitoring
/track
Pipeline & status
verified_user

Claude never clicks Submit. It stops before EEO/voluntary self-identification fields (gender, race, veteran, disability). That boundary is intentional and non-negotiable.

What makes it different

Not a template engine. Not a job board. A Claude Code plugin that runs the entire application pipeline from inside your terminal. Your data never leaves your machine.

person_add

Profile Bootstrap

Upload your CV or LinkedIn PDF. Claude extracts work history, infers three audience variants (AI/LLM, Data Platform, Backend), and writes every bullet four ways — ready for tailored generation immediately.

find_in_page

Intelligent Sourcing

Crawls company career pages and scores roles against your profile. Returns verified open positions with fit scores — no ghost jobs, no noise.

architecture

A/B/C CV Variant System

Three audience variants — AI/LLM, Data Platform, Senior Backend — with per-job bullet sets reframed for each. One profile, infinite tailored applications.

picture_as_pdf

ATS-Safe PDF Generation

reportlab Platypus engine. Single-column, Helvetica, no tables, no images, clickable links. Passes ATS parsers that choke on two-column layouts.

smart_toy

Browser Form Automation

Opens the ATS URL, fills every required field from your profile and role config, uploads PDFs, answers custom questions. Greenhouse (direct + iframe), Lever, Workable.

lock

Data Stays Local

profile.json and roles/ are gitignored. Your PII never leaves your machine. No cloud sync, no accounts, no API keys for your data.

Agent Skills

Profile Bootstrap

Build profile.json from your CV or LinkedIn PDF. Extracts work history, infers three CV variants, and writes every bullet four ways so you're ready to generate tailored applications immediately.

$ /setup-profile # upload or paste your CV in the same message
info

Evidence standard: Claude never invents facts not in the source. Fields it can't populate are left blank and flagged in the report.

Market Intelligence

Find verified open roles matching your profile from company career pages. Filters by country and role type, ranked by fit score against your profile variants.

$ /source Germany backend
info

Crawls company career pages directly. Results include fit score, sponsorship signals, and relocation requirements.

Role Config Scaffold

Scrapes the job posting URL, detects the ATS platform, selects the right CV variant, and generates a pre-filled roles/<role_id>.json.

$ /new-role https://boards.greenhouse.io/stripe/jobs/5891234
info

Auto-detects Greenhouse, Lever, Workable from the URL. Prompts interactively for anything it can't infer.

PDF Generation

Builds ATS-optimised CV and cover letter PDFs using reportlab Platypus. Single-column, Helvetica, no tables, no images, clickable links — passes ATS parsers that choke on two-column layouts.

$ /generate-cv stripe_backend_2026
info

Output: generated/stripe_backend_2026_CV.pdf and generated/stripe_backend_2026_CoverLetter.pdf

ATS Form Filling

Opens the job URL, fills every required field from your profile and role config, uploads PDFs, answers custom questions, then hands off to you for EEO and Submit.

$ /apply stripe_backend_2026
verified_user

Claude never fills EEO/voluntary self-identification fields or clicks Submit. You review and confirm.

Pipeline Tracker

View your application pipeline, update statuses, add notes. Stored in tracker.json (gitignored — stays local).

$ /track stripe_backend_2026 "screen"
info

Statuses: draft, applied, screen, interview, offer, rejected, withdrawn. Run /track with no args to view the full pipeline.

Supported ATS platforms

Greenhouse logo
Verified

Greenhouse

Direct forms and iframe embeds. Handles React comboboxes for country/city and hidden file inputs via JS unhide.

boards.greenhouse.io · boards.greenhouse.io/embed
Lever logo
Verified

Lever

Single-page form filling. No file upload for cover letter — cover letter text is pasted into Lever's text field instead.

jobs.lever.co
Workable logo
Verified

Workable

Full coverage for document uploads and multi-choice qualification questions. Visible file inputs work directly.

apply.workable.com

Coming next: Ashby, SmartRecruiters, iCIMS, Taleo — PRs welcome.

Get started in one command

Checks Python 3.10+, installs reportlab, and creates profile.json. Requires Node 18+.

Option 1 — One command
$ npx @nextwebb/career-agent
Then
$ /setup-profile # upload your CV or LinkedIn PDF
$ /source Netherlands backend
$ /new-role <url>
$ /generate-cv <role_id>
$ /apply <role_id>

Common questions

Is my personal data safe? add
Yes. profile.json, roles/, and tracker.json are all gitignored. Your PII never leaves your machine. career-agent has no backend, no accounts, and no telemetry.
Does it click Submit for me? add
No. Claude stops at the final review page. It also never fills EEO/voluntary self-identification fields (gender, race, veteran status, disability). This boundary is intentional — you retain full control of the irreversible action.
What do I need besides Claude Code? add
Python 3.10+ with reportlab for PDF generation (pip install reportlab). Node 18+ if you use the npx installer. For form filling via /apply, you also need the Claude in Chrome extension — all DOM-based ATS automation runs through it. CV generation alone does not require the extension.
Why does /setup-profile exist? Can't I just fill profile.json manually? add
You can, but the schema is substantial — three CV variants, six impact statements, and four bullet sets per job role. For a 10-role history that's 40+ bullet sets. /setup-profile generates all of it from your existing CV or LinkedIn PDF in one pass.
My ATS platform isn't listed. Can I add it? add
Yes. Open an issue first to avoid duplication, then add platform-specific quirks to the apply skill. Target platforms: Ashby, SmartRecruiters, Taleo, iCIMS, BambooHR. See CONTRIBUTING.md.