Job Apply Agent — Testing skill for Claude Code
Job-application agent: per-board Playwright plugins, LLM fit scoring, form filling that answers only from your profile.
How to install Job Apply Agent
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open fyZton/job-apply-agent and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Job Apply Agent does
Job-application agent: per-board Playwright plugins, LLM fit scoring, form filling that answers only from your profile.
Alternatives in Testing
- Obsidian Graduate — Promote an idea fragment into a full project spec with tasks, board entries, and structure 277 ★
- TDD Skill — BitcoinAddressFinder — This skill documents test-driven development practices and refactoring patterns used in the BitcoinAddressFind 237 ★
- Aod.Clarify — Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification ques 89 ★
README
job-apply-agent
[](https://github.com/fyZton/job-apply-agent/actions/workflows/ci.yml)
A job-application agent I built for my own job search. It finds offers on job boards, scores each one against my profile with an LLM, fills the application form and logs everything to a spreadsheet. It has sent real applications on LinkedIn and Computrabajo.
Work in progress. The roadmap is at the end of this file.
How it works
search (per-board plugin) -> title filters -> LLM fit score (1-10) -> pick CV -> fill form -> submit or flag
- Plugins per job board: each board is one module in
jobagent/sites/. The package loads every module that implements the plugin contract, so adding a board means adding one file. - The LLM only answers from your profile. Form answers come from fixed rules first, then from a cache of past answers, and only then from the LLM. If a required field asks for something the profile doesn't have, the application is flagged for manual review instead of guessed.
- Cheap filters run first. Titles with excluded words (senior, lead, ...) are dropped before any LLM call.
- Human pace: daily limits per board and 1.5 to 4 minute pauses between applications.
- No API key: it calls Claude through the Claude Code CLI (
claude -p) with tools disabled.
| Board | Status |
|---|---|
| LinkedIn (Easy Apply) | Working |
| Computrabajo Venezuela | Working |
| Demo board (local, fake) | Working, used by --demo and CI |
Try it without accounts
pip install -e .
playwright install chromium
python -m jobagent --demo
This starts a fake job board on your machine (`jobagent/demo/board`) and opens a browser so you can watch the agent work through six made-up offers:
| Offer | What the agent does |
|---|---|
| Backend Developer (Python) | Fills a one-page form, uploads the CV and submits |
| Integrations Developer | Goes through a two |
Related Skills
Faf Skills
31 Claude Code skills for persistent project context (.faf, application/vnd.faf+yaml). Scoring, sync, testing,
Scipy Spec Rules
Standards from Scientific Python SPECs 0, 4, and 6. Apply when managing dependency versions, deprecation timel
Codex Practical Skills
13 ready-to-use Codex/Claude Agent skills: job-search memory, offer decision, LLM output quality gate, portfol
Ragagentsv1v2
RAG chat agent for your own documents, built in two stages. V1 answers with local models only (hybrid search,
Test Fixtures
Run this repo's LLM-based test fixtures (fixtures/scoring and fixtures/commands) end to end and report pass/fa
Outreach Engine
Two outbound pipelines on one backbone: ICP prospecting (Apollo enrichment, Crunchbase and tech-stack signals,
Related Agents
Lookout
Use for the scanning stage of a job search — visiting already-resolved careers pages, extracting open roles, a
Apply Hunt
Job hunter for the /apply pipeline. Searches LinkedIn's public, logged-out job pages (via the stdlib li.py hel
Application Agent
Fill out a job application form in the browser (Claude-in-Chrome) from the user's CV/profile and answer librar