Six commands.
End-to-end job applications.
Bootstrap your profile from your CV → verify role leads → scaffold a config → generate a tailored CV PDF → prepare the ATS form with guarded handoff → track your pipeline. Profile data stays local (gitignored). The agent fills safe fields. You handle sensitive controls and Submit.
The six commands
The agent never clicks Submit. It stops before EEO, consent, attestation, legal, CAPTCHA, credential, payment, national-ID, and ambiguous fields. That boundary is intentional.
What makes it different
Not a template engine. Not a job board. A Claude Code and Codex workflow that runs the application pipeline from your local project. career-agent has no backend, accounts, or telemetry.
Profile Bootstrap
Upload your CV or LinkedIn PDF. The agent extracts work history, infers three audience variants (AI/LLM, Data Platform, Backend), and writes one default bullet set plus three audience-specific variants.
Role Sourcing
Discovers leads from available public sources, verifies open roles on company-controlled pages, and scores verified matches against your profile. Blocked or inconclusive checks are marked clearly. Fit scores are heuristic.
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, reusable tailored outputs.
ATS-Safe PDF Generation
reportlab Platypus engine. Single-column, Helvetica, no tables, no images, clickable links. Designed to avoid common parser issues; review extracted content before submitting.
Browser Form Automation
Opens the ATS URL, fills only classified safe fields, uploads PDFs when safe, and hands off before sensitive controls or Submit. Greenhouse, Lever, and Workable require non-submitting evidence before Codex Chrome support is promoted.
Data Stays Local
profile.json and roles/ are gitignored. career-agent has no backend, accounts, telemetry, or API keys for your data. Your agent host and browser may process content you choose to provide.
Agent Skills
Profile Bootstrap
Build profile.json from your CV or LinkedIn PDF. Extracts work history, infers three CV variants, and writes one default bullet set plus three audience-specific variants.
Evidence standard: the agent never invents facts not in the source. Fields it can't populate are left blank and flagged in the report.
Role Lead Verification
Discover role leads from available public/search sources, verify open roles on company-controlled posts, and rank verified matches by heuristic fit score against your profile variants.
Official posts are cited when roles are counted as verified. Sponsorship and relocation are labeled by confidence, with source-list claims kept separate from job-post facts.
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.
Auto-detects Greenhouse, Lever, Workable from the URL. Prompts interactively for anything it can't infer.
PDF Generation
Builds ATS-aware CV and cover letter PDFs using reportlab Platypus. Single-column, Helvetica, no tables, no images, clickable links. Parser behavior varies by ATS, so review extracted content before submitting.
Output: generated/stripe_backend_2026_CV.pdf and generated/stripe_backend_2026_CoverLetter.pdf
ATS Form Filling
Opens the job URL, fills only classified safe fields when the ATS case is understood, uploads PDFs when safe, answers safe custom questions, then hands off sensitive fields and Submit to you.
The agent never fills EEO, consent, attestation, legal, CAPTCHA, credential, payment, national-ID, or ambiguous fields, and never clicks Submit.
Pipeline Tracker
View your application pipeline, update statuses, add notes. Stored in tracker.json (gitignored - stays local).
Statuses: draft, applied, screen, interview, offer, rejected, withdrawn. Run /track with no args to view the full pipeline.
ATS platform notes
Greenhouse
Direct forms and top-level embed URLs have handling notes for React comboboxes and hidden file inputs. Codex Chrome remains experimental; page observations are recorded in the verification matrix but no non-submitted end-to-end fill-and-upload pass has been committed for this platform.
Lever
Single-page forms have handling notes for resume upload and cover-letter text areas. Codex Chrome remains experimental; page observations are recorded in the verification matrix but no non-submitted end-to-end fill-and-upload pass has been committed for this platform.
Workable
Workable has handling notes for visible file inputs, dropdowns, and multi-step forms. Codex Chrome remains experimental; page observations are recorded in the verification matrix but no non-submitted end-to-end fill-and-upload pass has been committed for this platform.
Greenhouse EU
EU-domain Greenhouse forms use the same field-filling strategy as Greenhouse direct. First-class supported platform; verified against JetBrains and Kayzen submissions (2026-06-22). Codex Chrome remains experimental.
Ashby
Standard form structure; resume upload, optional cover letter, custom fields. Confirmation detection verified against Poolside and Kraken submissions (2026-06-22). Field-filling DOM quirks not yet documented — treat as standard form and record observations on first run.
Teamtailor
Standard form structure; resume upload, optional cover letter. Confirmation detection verified against BUX submission (2026-06-22). Field-filling DOM quirks not yet documented — treat as standard form and record observations on first run.
Coming next: SmartRecruiters, iCIMS, Taleo, BambooHR - PRs welcome.
Install
The setup command checks Python 3.10+, installs PDF dependencies from requirements.txt when needed, detects Claude Code and Codex independently, and creates profile.json. It does not install either plugin host or the Codex plugin for you.
The setup check verifies local prerequisites and may create starter files, but it does not install the Codex plugin. Install the Codex plugin from this repository's marketplace:
The Claude commands above are Claude Code setup only.
| Workflow | Claude Code | Codex |
|---|---|---|
| Profile, sourcing, role config, PDFs, tracking | Supported | Supported |
| ATS form filling | Supported with Claude in Chrome | Experimental; page observations are in the verification matrix but no platform has a committed non-submitted end-to-end pass |
Common questions
Is my personal data safe?
profile.json, roles/, and tracker.json are gitignored. Your agent host and browser may process content you choose to provide.
Does it click Submit for me?
What do I need besides Claude Code or Codex?
reportlab and pypdf from requirements.txt. Node 18+ if you use the npx setup check. For form filling, Claude Code uses Claude in Chrome. Codex uses Browser for public pages and Chrome for signed-in browser state, but Codex Chrome /apply remains experimental — page observations are recorded in the verification matrix, but page observations alone do not constitute an end-to-end automation pass; no ATS platform has a committed non-submitted fill-and-upload record for Codex Chrome.
Why does /setup-profile exist? Can't I just fill profile.json manually?
/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?
apply skill. Target platforms: Ashby, SmartRecruiters, Taleo, iCIMS, BambooHR.
See CONTRIBUTING.md.