by neonwatty
AI-powered job application assistant for Claude Code and Codex - fills LinkedIn, Greenhouse, Ashby, and Workday applications
# Add to your Claude Code skills
git clone https://github.com/neonwatty/job-apply-pluginGuides for using ai agents skills like job-apply-plugin.
Last scanned: 9/5/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-09-05T08:04:47.981Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}job-apply-plugin is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by neonwatty. AI-powered job application assistant for Claude Code and Codex - fills LinkedIn, Greenhouse, Ashby, and Workday applications. It has 100 GitHub stars.
Yes. job-apply-plugin passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/neonwatty/job-apply-plugin" and add it to your Claude Code skills directory (see the Installation section above).
job-apply-plugin is primarily written in Python. It is open-source under neonwatty on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh job-apply-plugin against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
AI-powered job application assistant for Claude Code and Codex that fills job applications on LinkedIn Easy Apply, Greenhouse, Ashby, Lever, Rippling, and Workday using visible browser automation.
| Skill | Description |
|---|---|
job-apply:job-apply |
Fill out job applications automatically using your resume |
job-apply:answer-memory |
Safely manage your local profile, reusable answers, application history, and resumable sessions |
job-apply:job-search |
Search LinkedIn, Hacker News, and Twitter/X for jobs, then rank results against your preferences |
job-apply:job-preferences |
Set the titles, salary, remote-work, and filtering preferences used by job search |
Invoke skills with $job-apply:... in Codex or /job-apply:... in Claude Code.
job-apply:job-apply)job-apply:answer-memory)job-apply:job-search)~/.claude-job-searches/ compatibility directory as Markdownjob-apply:job-preferences)~/.job-apply/profile.json without replacing resume profile dataChoose either supported host:
Codex stays inside its selected Browser plugin surface. Claude Code does not require Playwright; an already-configured Playwright integration may be used only for one inaccessible iframe or custom control.
codex plugin marketplace add neonwatty/job-apply-plugin
codex plugin add job-apply@neonwatty-plugins
Start a new Codex task after installation, then invoke $job-apply:job-apply.
claude plugin marketplace add neonwatty/job-apply-plugin
claude plugin install job-apply@neonwatty-plugins
Start a new Claude Code session after installation, then invoke /job-apply:job-apply.
The examples below use Codex syntax. In Claude Code, replace the leading $ with /.
Invoke the skill:
$job-apply:job-apply
Provide your resume path when prompted:
~/Documents/resume.pdf
Review and confirm extracted profile information
Once your profile is set up:
Invoke the skill:
$job-apply:job-apply
Provide a job URL:
https://www.linkedin.com/jobs/view/123456789
Watch as the agent fills the application from your reviewed local profile
Inspect the final review page and the field summary, then click Submit or Send yourself if everything is correct
First run $job-apply:job-preferences to save your search preferences. Then use $job-apply:job-search to search LinkedIn, Hacker News, and Twitter/X and rank matching jobs:
Set or update your preferences:
$job-apply:job-preferences
Invoke the search skill:
$job-apply:job-search
Review the active search configuration loaded from your preferences:
Search config:
- Titles: Senior Software Engineer, Staff Engineer
- Salary floor: $200K
- Remote: Remote preferred
- Time range: Last week
- Sources: LinkedIn, HN, Twitter
Review ranked results, including:
Results are automatically saved to ~/.claude-job-searches/. Both Codex and Claude Code use this legacy-compatible path.
The plugin includes guided workflows for six ATS families. Codex and Claude Code host instructions were reviewed on 2026-07-28. Live end-to-end ATS acceptance is tracked separately; individual flows remain unverified and may drift as sites change.
| Platform | URL Pattern | Default browser path | Verification status |
|---|---|---|---|
| LinkedIn Easy Apply | linkedin.com/jobs/view/* |
Codex Browser or Claude in Chrome | Guided; current ATS flow unverified |
| Greenhouse | boards.greenhouse.io/* |
Codex Browser or Claude in Chrome | Guided; current ATS flow unverified |
| Ashby | jobs.ashbyhq.com/* |
Codex Browser or Claude in Chrome | Guided; closed replay lane supported |
| Lever | jobs.lever.co/* |
Codex Browser or Claude in Chrome | Guided; closed replay lane supported |
| Rippling | *.rippling.com/* |
Codex Browser or Claude in Chrome | Guided; current ATS flow unverified |
| Workday | *.myworkdayjobs.com/* |
Codex Browser or Claude in Chrome | Guided; current ATS flow unverified |
Job Apply stores data as plaintext local files under ~/.job-apply/:
~/.job-apply/
profile.json
answers.json
applications.jsonl
sessions/
<application-id>.json
| File | Purpose |
|---|---|
profile.json |
Resume facts and job-search preferences |
answers.json |
Reusable answers with confirmation, source, scope, and sensitivity state |
applications.jsonl |
Minimal append-only application lifecycle events |
sessions/*.json |
Resumable workflow metadata and answer-key references |
These files can include sensitive personal information such as:
The repository contains no telemetry or analytics integration, and the store is not uploaded to a plugin service. It remains on your computer until you direct Codex or Claude Code to use values in browser forms or searches; those third-party sites receive the information you choose to enter there.
Protect the directory like a resume. Do not attach its files to issues or share them in logs. The helper creates user-only permissions on supported systems. On macOS or Linux, you can verify or restore them with:
chmod 700 ~/.job-apply
chmod 600 ~/.job-apply/profile.json ~/.job-apply/answers.json ~/.job-apply/applications.jsonl
On first use, an existing ~/.claude-job-profile.json is copied into the new versioned profile without modifying or deleting the legacy file. Once ~/.job-apply/profile.json exists it is authoritative; later legacy-file changes are not re-imported. Verify the new profile before deciding whether to archive or remove the old file.
All plugin skills access this data through the bundled scripts/job-apply-store.py helper. Canonical JSON updates are atomic, corrupt or future-version files fail closed, and application history and sessions do not duplicate reusable answer values.
Only matching, non-sensitive confirmed answers may be reused without asking. Inferred and missing answers require review. Sensitive answers are reconfirmed before every use and are stored only when you separately ask Job Apply to remember that specific value.
To replace the stored profile from a new resume:
$job-apply:job-apply reset profile
To remove Job Apply data, close Codex or Claude Code and first move the directory to a private backup so recovery remains possible, for example mv ~/.job-apply ~/.job-apply.backup. Shared search-result Markdown files are separate under ~/.claude-job-searches/; review them independently. The legacy ~/.claude-job-profile.json is also separate and is never deleted automatically.
Job search results from both Codex and Claude Code are saved to the legacy-compatible ~/.claude-job-searches/ path with times