# Where Are Claude Code Workflow Definitions for Commands and Skills Located?

> Locate Claude Code workflow definitions for commands and skills within the MadsLorentzen/ai-job-search repository. Discover where Markdown files for commands and reusable skills are stored.

- Repository: [Mads Lorentzen/ai-job-search](https://github.com/MadsLorentzen/ai-job-search)
- Tags: internals
- Published: 2026-08-31

---

**The Claude Code workflow definitions for commands and skills are stored as plain-text Markdown files in the `.claude` directory at the root of the repository, with user commands located in `.claude/commands/` and reusable skill blocks in `.claude/skills/`.**

The AI Job Search framework by MadsLorentzen adopts a declarative configuration approach for its agent runtime. Instead of embedding business logic in compiled source code, the repository maintains all **Claude Code workflow definitions** as human-readable Markdown files. This architecture enables version control, peer review, and rapid iteration of agent behaviors without modifying Python or JavaScript source.

## The `.claude` Directory Structure

All workflow specifications live in a hidden directory named `.claude` at the repository root. This directory serves as the single source of truth for the Claude Code runtime and contains two primary subdirectories:

- **`.claude/commands/`** – Contains high-level user command definitions
- **`.claude/skills/`** – Contains reusable skill modules

The runtime reads these Markdown files at execution time to drive user interactions and perform domain-specific operations.

## Command Definitions Location

Individual command definitions reside in `.claude/commands/`. Each command is implemented as a standalone Markdown file containing step-by-step onboarding logic, prompt templates, and branching rules that CLI agents execute.

Key command files include:

- **[`.claude/commands/setup.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/commands/setup.md)** – Core onboarding workflow that gathers the candidate's profile
- **[`.claude/commands/reset.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/commands/reset.md)** – Logic to clear generated files and restart the setup process
- **[`.claude/commands/rank.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/commands/rank.md)** – Workflow for ranking scraped job postings

These files contain the literal instructions that Claude Code agents parse when a user invokes the corresponding CLI command.

## Skill Definitions Location

Reusable skill definitions are stored in `.claude/skills/`. Unlike commands, each skill occupies its own subfolder containing a [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) file that describes inputs, outputs, and configuration parameters.

Notable skill locations include:

- **[`.claude/skills/job-scraper/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/skills/job-scraper/SKILL.md)** – Generates search queries and drives the `/scrape` pipeline
- **[`.claude/skills/upskill/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/skills/upskill/SKILL.md)** – Provides learning-resource recommendations based on job requirements
- **[`.claude/skills/job-application-assistant/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/skills/job-application-assistant/SKILL.md)** – Orchestrates CV, cover-letter, and interview-prep generation

These skill blocks encapsulate domain-specific knowledge that multiple commands can import and reuse.

## Runtime File Loading Mechanism

The Claude Code driver loads workflow definitions dynamically by reading the Markdown files from disk. The runtime exposes loader functions that map string identifiers to file system paths.

```python

# Pseudo-code used by the Claude-Code driver

from claude import load_command, load_skill

# Load the `setup` command definition

setup_cmd = load_command("setup")          # reads .claude/commands/setup.md

# Load the `job-scraper` skill definition

scraper_skill = load_skill("job-scraper") # reads .claude/skills/job-scraper/SKILL.md

```

Because workflows exist as plain text rather than compiled code, the AI Job Search framework can hot-reload configurations or audit agent behaviors by simply inspecting the `.claude` directory contents.

## Summary

- **Claude Code workflow definitions** are located in the `.claude` directory at the repository root
- **Commands** live in `.claude/commands/` as individual Markdown files (e.g., [`setup.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/setup.md), [`rank.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/rank.md))
- **Skills** reside in `.claude/skills/<skill-name>/SKILL.md` as modular, reusable components
- The runtime uses `load_command()` and `load_skill()` functions to parse these Markdown files at execution time
- All workflow logic is version-controllable plain text, eliminating the need for recompilation when modifying agent behavior

## Frequently Asked Questions

### What file format are the Claude Code workflow definitions stored in?

The workflow definitions use plain-text Markdown (`.md`) files. This format allows the Claude Code runtime to parse human-readable instructions while maintaining compatibility with standard version control systems like Git.

### How do I add a new command to the AI Job Search framework?

Create a new Markdown file in `.claude/commands/` following the naming convention `<command-name>.md`. The file should contain step-by-step instructions, prompt templates, and any branching logic the agent requires to execute the command.

### Where is the job-scraper skill configuration located?

The job-scraper skill configuration is located at [`.claude/skills/job-scraper/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/skills/job-scraper/SKILL.md). This file defines the inputs, outputs, and query generation logic used when the framework scrapes job postings.

### Can I modify the workflow definitions without restarting the application?

Yes. Since the Claude Code runtime reads these Markdown files at execution time rather than compiling them into the binary, you can edit the files in `.claude/commands/` or `.claude/skills/` and the changes will take effect on the next command invocation without requiring an application restart.