Job Application Assistant
MadsLorentzen/ai-job-search
Evaluates job postings against your profile, then tailors a LaTeX CV and cover letter and prepares interview answers for the roles you pursue.
Guided job or role transition: re-run the setup questions with every unanswered setting carried forward and checked afterwards, re-sort people for the new work email domain, archive the old role's…
$ npx skills add davekilleen/Dex --skill change-job -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install davekilleen/Dex change-job --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/change-job .claude/skills/change-job && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "change-job" agent skill from https://github.com/davekilleen/Dex/tree/main/.claude/skills/change-job into .claude/skills/change-job/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-job", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/davekilleen/Dex/tree/main/.claude/skills/change-jobType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add davekilleen/Dex --skill change-job -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install davekilleen/Dex change-job --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/change-job .agents/skills/change-job && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "change-job" agent skill from https://github.com/davekilleen/Dex/tree/main/.claude/skills/change-job into .agents/skills/change-job/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-job", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add davekilleen/Dex --skill change-job -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install davekilleen/Dex change-job --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/change-job .cursor/skills/change-job && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "change-job" agent skill from https://github.com/davekilleen/Dex/tree/main/.claude/skills/change-job into .cursor/skills/change-job/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-job", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/davekilleen/Dex.git --path .claude/skills/change-job--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add davekilleen/Dex --skill change-job -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install davekilleen/Dex change-job --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/change-job .gemini/skills/change-job && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "change-job" agent skill from https://github.com/davekilleen/Dex/tree/main/.claude/skills/change-job into .gemini/skills/change-job/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-job", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install davekilleen/Dex change-jobInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add davekilleen/Dex --skill change-job -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/change-job .github/skills/change-job && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "change-job" agent skill from https://github.com/davekilleen/Dex/tree/main/.claude/skills/change-job into .github/skills/change-job/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-job", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add davekilleen/Dex --skill change-job -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install davekilleen/Dex change-job --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/change-job .opencode/skills/change-job && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "change-job" agent skill from https://github.com/davekilleen/Dex/tree/main/.claude/skills/change-job into .opencode/skills/change-job/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-job", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
change-jobGuided job or role transition: re-run the setup questions with every unanswered setting carried forward and checked afterwards, re-sort people for the new work email domain, archive the old role's…
Change Job is an agent skill from davekilleen/Dex. Guided job or role transition: re-run the setup questions with every unanswered setting carried forward and checked afterwards, re-sort people for the new work email domain, archive the old role's goals, priorities and projects (never deleted), re-point open tasks at the new pillars, and close with a ledger of what changed and how to undo each step. Use when the user says 'I changed jobs', 'I'm changing jobs', 'new role', 'new job', 'went full-time', or 'I'm now [role] at [company]'. Not for a preference change…
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `evals/trigger-cases.yaml`, `references/quarter-goals-starter.md` and `references/week-priorities-starter.md`).
The repository describes itself as: Your AI Chief of Staff — a personal operating system starter kit that adapts to your role. No coding required. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d0ffc6b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Change Job loads about 2.9k tokens when it runs, and up to ~3.4k if it reads all its reference files. Until then it costs about 150 tokens; SKILL.md has 1,638 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from davekilleen/Dex at commit d0ffc6b, republished under its MIT licence (© davekilleen). 1,638 words, ~2,907 tokens.
.claude/skills/change-job/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Move a whole Dex vault from one role to the next without losing anything: the same setup questions, then people, planning, and tasks — each pass proposed before it runs, each pass skippable, nothing ever deleted.
Nothing is deleted, and nothing moves without a yes. Every pass shows exactly what it will do for review before anything is applied. Old-role material is archived where the user can always find it — never removed. Skipping any pass is always a fine answer.
Read System/user-profile.yaml (read-only — never edit it from this skill) and note the current role, company_size, email_domain and, if present, the company name. These are the old role values the later passes need. Then lay out the whole transition in plain words and get an explicit yes.
Open in the user's own register: congratulate only if they've shown this is good news — a job change can also follow a layoff, and "Congratulations" lands badly there. When unsure, open neutrally:
"A new role is a big shift — let's move Dex over with you. Here's what a job change involves — five steps, and you can skip any of them:
- Setup questions again. The same questions as first-time setup. Every setting you don't re-answer carries forward unchanged. A snapshot of your current settings is taken first, and the result is checked against it afterwards — if anything was lost, you'll know, and the snapshot can put it back.
- Re-sort your people. Old colleagues and new ones are re-filed for your new work email — you see the full list before anyone moves.
- Archive the old role's planning. Quarter goals, week priorities and projects from the old role are archived, never deleted, and each project is your call: carry it, close it, or park it.
- Re-point open tasks. Tasks still aimed at retired pillars get re-pointed at the new ones, then groomed goal by goal.
- Housekeeping. A few one-line offers — refresh your working-patterns profile, review connections that mention the old employer.
Nothing is deleted at any step. Ready to start with the setup questions?"
Stop here if they decline. If what changed is really just preferences within the same job, point at reset instead — it is the lighter lever.
Delegate to the reset skill: read .claude/skills/reset/SKILL.md and follow its steps 2–5 exactly — start_onboarding_session(force_new=True), then the conversation in .claude/flows/onboarding.md (the single source of every question; never restate the script here), then finalize_onboarding(dry_run=True) showing the profile_changes list (every setting that will change, old value → new value — settings not listed carry forward), then finalize_onboarding().
After finalizing, relay the transition_verification summary word for word — it reads "Changed (you chose): … Carried forward: N settings. Lost: none." Note the snapshot id it names; the closing ledger needs it.
If verification fails, stop the whole transition. Do not run any later pass. Say:
"The after-check found a problem: [the verification summary, word for word]. I'm stopping the transition here — none of the later steps will run. The snapshot taken before anything changed can put your settings files back exactly as they were. Want me to preview that restore?"
Offer restore_transition_capsule exactly as the reset skill describes it: preview first (it defaults to a dry run), then rerun with dry_run=false only if they confirm.
If the user skips this step, ask for the new work email domain in one line — the people pass needs it — and pass it explicitly in Step 2.
Call reroute_people() from the Work MCP — it defaults to a dry run and to the email domain now in the profile. If Step 1 was skipped, pass domains with the domain the user gave. If the tool is missing or errors without a structured response, say the people re-sort could not be run in this vault version and move on — never move person pages by hand.
Show the returned plan in plain language before anything moves:
"I re-checked [scanned] person pages against [domain]:
- [count] move to Internal — new colleagues, e.g. Priya Shah (priya@example.com matches the new domain)
- [count] move to External — people from the old company
- [count] are already where they belong
- [count] have no email recorded, so I won't guess — they stay put: [names] [Any skipped pages, with the tool's reason, word for word.] Apply these moves?"
On yes, call reroute_people(dry_run=false) and report the ledger honestly from the response: moved, relabeled, anything that failed (relay warnings word for word — a collision is skipped, never overwritten), and that the people index was rebuilt. Ambiguous pages are never moved; offer to add an email to a page so the next run can place it.
3a — goals and priorities. Offer once:
"Your quarter goals and week priorities still describe the old role. I can move both pages, whole, to
07-Archives/Role_Transitions/[YYYY-MM-DD]-[old-role]/and start fresh ones from the blank starter. Nothing is deleted — moving the files back undoes it. Want me to?"
On yes: show the exact source → destination for each file first. Create 07-Archives/Role_Transitions/<YYYY-MM-DD>-<old-role-slug>/ (date = today, slug = the old role lowercased, spaces to hyphens) and move 01-Quarter_Goals/Quarter_Goals.md and 02-Week_Priorities/Week_Priorities.md there under their own names. If a destination file already exists, stop on that conflict and keep both versions — never overwrite. Then reseed the live files from this skill's own starters: copy references/quarter-goals-starter.md to 01-Quarter_Goals/Quarter_Goals.md and references/week-priorities-starter.md to 02-Week_Priorities/Week_Priorities.md, replacing {{WEEK_START_DATE}} with the coming Monday's date. A page that doesn't exist (room off, or never created) gets one calm line and is skipped — no error tone.
3b — projects, one at a time. Walk each page in 04-Projects/, never as a batch. For each:
"[Project name] — last touched [date]. Carry it into the new role (no change), close it (archive to
07-Archives/Projects/with a one-line outcome), or park it (marked on hold, left in place)?"
Every project gets its own answer — never apply one blanket yes to the rest. Close = move the page to 07-Archives/Projects/ keeping its filename, adding the completion date and a one-line outcome at the top. Park = add **Status:** Parked (role transition YYYY-MM-DD) at the top of the page and leave it where it is. Nothing is deleted under any answer.
Read the current pillar names from System/pillars.yaml, then scan open tasks in 03-Tasks/Tasks.md for - Pillar: child bullets naming a pillar that no longer exists. If any:
"[count] open tasks still point at pillars from the old role: [count] at '[old pillar]', [count] at '[old pillar]'. Tell me which new pillar each old one maps to and I'll re-point them in one pass — or leave any group as-is. Here's what one edit looks like:
- Pillar: Fractional Clients | Priority: P2→- Pillar: Customer Growth | Priority: P2"
Apply a confirmed mapping by editing only the - Pillar: child bullets — never the task's title line or its ID. Show one real sample edit from their file before running the pass.
Then hand the pool to the groomer: suggest /goal-backlog to walk the open tasks goal by goal — confirming links, retiring stale work, and setting what gets picked up first. Don't duplicate its grooming here.
/identity-snapshot)"System/integrations/config.yaml and .mcp.json and list any entries that mention the old employer: "These connections still mention [old company]: [list]. I never remove a connection myself — worth a look when you have a minute." If nothing matches, say nothing.Each is an offer made once. A no is final for this session.
End with one screen — exactly what happened, pass by pass, and how each is undone:
"Job change done. The record:
- Settings: [the verification summary, word for word]. Snapshot [id] kept in
System/.dex/transition-capsules/—restore_transition_capsuleputs the two settings files back exactly as they were.- People: [moved] moved, [relabeled] relabeled, [ambiguous] left in place (no email recorded). Running the re-sort again with the old domain reverses it.
- Archives: goals and priorities moved to
07-Archives/Role_Transitions/[folder]/; [count] projects closed, [count] parked, [count] carried. Moving a file back reverses any of it.- Tasks: [count] re-pointed to new pillars.
/goal-backloggrooms the rest.- Skipped: [each skipped pass by name, or 'nothing'].
Nothing was deleted at any step."
Only report what actually happened — a pass that failed or was skipped is named as such, never summarized as done.
The question script lives only in .claude/flows/onboarding.md, via the reset skill — this skill never restates it. System/user-profile.yaml and System/pillars.yaml are written only by the onboarding tools, never by hand from here. File moves in Steps 3–4 are this skill's own work: always previewed, always confirmed, never a delete.
A good transition leaves the user able to say, from the ledger alone, what changed, what carried forward, where the old role's material lives, and how to undo any single pass. Every pass they skipped is recorded as skipped, not silently absorbed.
Update System/usage_log.md to mark job-change transition as used.
Analytics (Silent): Call track_event with event_name change_job_completed and properties passes_completed, passes_skipped, people_moved, projects_archived, tasks_repillared (counts only, never names or content). Fires only if the user opted into analytics; no action if it returns "analytics_disabled".
© davekilleen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in .claude/skills/change-job of davekilleen/Dex.
Open the folder on GitHubat commit d0ffc6b
Change Job next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Change Job this skilldavekilleen/Dex | 494 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Job Application AssistantMadsLorentzen/ai-job-search | 45k | — | ~1.2k | Automated safety check: Notes | MIT | |
| Technical Job Searchgithub/awesome-copilot | 40k | — | ~1.2k | Automated safety check: Pass | MIT | |
| View Transitionsthedaviddias/Front-End-Checklist | 74k | — | ~528 | Automated safety check: Pass | MIT | |
| Vercel React View Transitionssickn33/agentic-awesome-skills | 47k | 1 repos | ~3.1k | Automated safety check: Pass | MIT | |
| Write Guidevercel/next.js | 143k | — | ~1.6k | Automated safety check: Pass | MIT |
MadsLorentzen/ai-job-search
Evaluates job postings against your profile, then tailors a LaTeX CV and cover letter and prepares interview answers for the roles you pursue.
github/awesome-copilot
A skill your agent uses when a software engineer asks for help with job search tasks: parsing or analyzing a job description, tailoring a CV/resume, writing a cover letter, evaluating a job offer…
thedaviddias/Front-End-Checklist
A skill your agent uses when adding page transition animations, image expand/contract effects, shared-element transitions, or improving navigation UX in a single-page or multi-page application.
sickn33/agentic-awesome-skills
Guide React and Next.js view transitions, shared element animations, route transitions, transition types, and reduced-motion-safe UI state animation.
vercel/next.js
Generates technical guides that teach real-world use cases through progressive examples.
reactive-resume/reactive-resume
Runs the job-search pipeline. An agent skill from reactive-resume/reactive-resume.
davekilleen/Dex
This skill should be used when working with DSPy.rb, a Ruby framework for building type-safe, composable LLM applications.
davekilleen/Dex
Adopt a full published Heydex profile by handle ('set me up like @davekilleen').
davekilleen/Dex
Package one workflow — how you use Dex for a specific job — into a shareable DexDiff methodology doc.
davekilleen/Dex
Expert guidance for creating, writing, and refining Claude Code Skills.
davekilleen/Dex
Report a Dex bug to the Dex team with zero homework — Dex investigates locally, builds a privacy-safe report, shows it to you (or auto-sends if you've chosen that), and tracks the ticket until it's…
davekilleen/Dex
This skill should be used when writing Ruby and Rails code in DHH's distinctive 37signals style.
Guided job or role transition: re-run the setup questions with every unanswered setting carried forward and checked afterwards, re-sort people for the new work email domain, archive the old role's…. Change Job is an agent skill from davekilleen/Dex. Guided job or role transition: re-run the setup questions with every unanswered setting carried forward and checked afterwards, re-sort people for the new work email domain, archive the old role's goals, priorities and projects (never deleted), re-point open tasks at the new pillars, and close with a ledger of what changed and how to undo each step.
Change Job fits situations like: the user says I changed jobs; im changing jobs; im now [role] at [company].
Run `npx skills add davekilleen/Dex --skill change-job -a claude-code`. Or copy the skill folder (.claude/skills/change-job in davekilleen/Dex) into .claude/skills/change-job in your project. Claude Code loads it when a task matches its description.
Run `npx skills add davekilleen/Dex --skill change-job -a codex`. Or copy the skill folder (.claude/skills/change-job in davekilleen/Dex) into .agents/skills/change-job in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add davekilleen/Dex --skill change-job -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/change-job, .gemini/skills/change-job, .github/skills/change-job and .opencode/skills/change-job in your project.
SKILL.md names no scripts, command-line tools or credentials: Change Job is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Change Job is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 450 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Change Job: Job Application Assistant (MadsLorentzen/ai-job-search, 45k stars), Technical Job Search (github/awesome-copilot, 40k stars), View Transitions (thedaviddias/Front-End-Checklist, 74k stars) and Vercel React View Transitions (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
davekilleen (a GitHub user) maintains it in davekilleen/Dex, which has 494 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on October 9, 2026.
Source: davekilleen/Dex on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.