Job Agent is a local-first Codex plugin that helps a job seeker analyze opportunities, prepare strong applications, and keep track of every decision.
Build a deterministic ZIP containing only the plugin's runtime files:
./scripts/package-pluginThe archive is written to dist/. Tests, Python caches, repository documentation, and local state are excluded by an explicit allowlist.
It is built for candidates, not recruiters. Its goal is to help you spend less time sorting through listings and more time applying to roles that are worth pursuing.
You find the jobs. Job Agent analyzes the listings you supply, prepares the application, and tracks what you decide.
Paste a job listing URL and Job Agent can:
- Check whether the listing appears current and legitimate
- Compare the role with your experience, preferences, and constraints
- Give you a concise fit verdict with supporting evidence, gaps, and risks
- Recommend an application angle and the best existing resume to use
- Research the company, engineering organization, stability, culture, and employment risks when useful
- Save reusable employer research separately from individual job records
When you decide to apply, Job Agent can:
- Build a truthful base resume from your reviewed career evidence
- Create a job-specific resume in editable HTML and application-ready PDF formats
- Draft a grounded cover letter in your voice
- Help you prepare for recruiter, technical, behavioral, system-design, and final-round interviews
Job Agent does not invent qualifications, employers, dates, achievements, or metrics. It does not create resumes or cover letters unless you ask.
Job Agent records only what you explicitly tell it to record:
- Say
saveto keep a job for later - Say
passto record that you declined it - Say
appliedafter submitting an application
Saved records include the company, role, listing links, analysis, application date, submitted resume when known, notes, and pass reason when available. Duplicate links from a job board and an employer site can be kept under one opportunity without losing their source history.
- Set up a career workspace.
- Build and approve your candidate profile from existing source resumes or a short conversation about your background.
- Paste a job URL and ask whether you should apply.
- Request a tailored resume or cover letter if it would improve the application.
- Submit the application and say
applied. - Return later to review saved jobs, applications, or passes, or to prepare for an interview.
You can also start with prompts such as:
Is this job a good fit for me? <URL>Verify this listing before I apply.Research this company.Tailor my resume for this role.Create a cover letter for this job.Save this for later.I applied.Prepare me for the technical interview.
Job Agent builds a candidate profile from PDF, DOCX, Markdown, JSON, and text source resumes or from facts you provide directly in conversation. You review and approve that profile before it is used. Resume-derived claims retain their source, and conversation-backed facts retain their provenance. If a source resume changes, the profile becomes stale and requires another review.
Your preferences, constraints, and career context live in an editable PERSONAL.md file. Workspace-specific operational instructions live in AGENTS.md, and optional user-owned automation lives under scripts/. Generated resumes, cover letters, and tracked opportunity records are saved in your career workspace as ordinary files.
The agent handles contextual work such as fit analysis, company research, duplicate review, and fraud assessment. A bundled Python runtime handles the parts that must be deterministic, including validation, provenance, approval state, and file generation.
Career files remain in the workspace you choose:
<workspace>/
├── AGENTS.md
├── PERSONAL.md
├── candidate-profile.json
├── companies/
├── jobs/
├── resumes/
├── tailored_resumes/
├── cover_letters/
└── scripts/
resumes/ contains source documents supplied by the user and generated base resumes. Job Agent builds the candidate profile first and does not treat its own generated resume as new candidate evidence. Job-specific versions go to tailored_resumes/.
AGENTS.md may select local artifact workflows or scripts without modifying the public plugin. PERSONAL.md remains user-authored career data and presentation preferences, not executable configuration. Workspace scripts are never run merely because they exist.
Each opportunity is a readable JSON file under jobs/, so the entire workspace can be stored in Git or moved between machines. Artifact paths inside job records are relative to the workspace when possible. Private configuration and disposable extracted-text cache remain under ~/.job-agent/ by default. Source resumes are never modified. Analysis alone does not save a job, and an application is not recorded until you explicitly confirm that you applied.
Each completed employer report is saved or updated as a readable JSON file under companies/. Later research reuses stable findings and refreshes only time-sensitive or missing evidence.
Job Agent is licensed under the GNU General Public License, version 3.