# How to Update Search Queries Without Re-Running Full /setup in AI Job Search

> Update search queries in AI Job Search efficiently. Use the --section search flag to refresh criteria without a full setup, saving time and resources.

- Repository: [Mads Lorentzen/ai-job-search](https://github.com/MadsLorentzen/ai-job-search)
- Tags: how-to-guide
- Published: 2026-08-05

---

**Use the `--section search` flag to refresh only your search criteria while skipping the complete profile rebuild.**

The **AI Job Search** framework by MadsLorentzen modularizes the onboarding process so you can evolve your job-search preferences without tedious re-processing. Instead of repeating the full `/setup` command—which re-imports your CV, re-detects languages, and re-extracts experience—you can target specific configuration stages independently.

## Why Update Search Queries Separately?

Job searches are iterative. You might start with broad keywords like "software engineer," then narrow to "machine learning engineer," add new locations, or adjust salary expectations. Re-running the entire `/setup` pipeline wastes time and computational resources when only your **search criteria** have changed.

The framework solves this by segmenting setup into discrete, **idempotent sections** that can be refreshed in isolation.

## Using --section search to Refresh Queries

The `/setup` command accepts a `--section` parameter that jumps directly to the search-configuration stage. This bypasses all profile-building steps and updates only the query definitions.

```bash

# Update search queries without touching your CV, experience, or language settings

/setup --section search

```

### How It Works Internally

According to the source code in [`.claude/commands/setup.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/commands/setup.md) (lines 391-411), the command:

1. Detects the `--section search` flag and skips preceding stages
2. Parses [`documents/search.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/documents/search.md) (or equivalent configuration files)
3. Writes updated queries to skill files under `.claude/skills/job-application-assistant/`
4. Leaves all other profile data untouched

Because this operation is **idempotent**, running it multiple times simply overwrites the search-related entries—never corrupting or duplicating existing data.

## Creating Your search.md Configuration File

Place a [`search.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/search.md) file in your `documents/` folder to define granular search parameters:

```markdown

# Search configuration

keywords:
  - "machine learning"
  - "data scientist"
  - "MLOps engineer"

locations:
  - "remote"
  - "Copenhagen"
  - "Berlin"

salary_min: 60000
salary_currency: "EUR"

```

When you execute `/setup --section search`, the framework ingests this file and regenerates the internal search queries accordingly.

## Available Section Options

You can combine multiple sections or explore other isolated updates. List all available options with:

```bash
/setup --help

# Output: --section <profile|experience|search|...>

```

**Common section combinations:**

- **`--section search`** — Update keywords, locations, and salary requirements
- **`--section experience`** — Refresh work history extraction
- **`--section profile`** — Rebuild core candidate profile from CV

## File Reference

| File | Purpose |
|------|---------|
| [`.claude/commands/setup.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/commands/setup.md) | Implements `/setup` command and `--section` flag parsing (lines 391-411) |
| [`documents/README.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/documents/README.md) | Documents folder layout and search configuration file formats |
| [`SETUP.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SETUP.md) | User guide with "Re-running setup" subsection covering `--section search` |
| [`tests/test_lint_skills.py`](https://github.com/MadsLorentzen/ai-job-search/blob/main/tests/test_lint_skills.py) | Unit tests verifying `--section` option correctly isolates search step |

## Summary

- **`/setup --section search`** updates only search criteria without full profile re-processing
- Configuration lives in [`documents/search.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/documents/search.md) and outputs to `.claude/skills/job-application-assistant/`
- The operation is idempotent—safe to run repeatedly
- Multiple sections can be targeted for broader but still selective updates

## Frequently Asked Questions

### What happens if I run /setup without the --section flag?

Running `/setup` without flags executes the **complete onboarding pipeline**: CV import, language detection, experience extraction, and search configuration. This overwrites all existing profile data with fresh extractions.

### Can I update multiple sections in one command?

Yes. The `--section` parameter accepts multiple values. Consult `/setup --help` for the exact syntax, which typically allows comma-separated or repeated flags depending on the CLI implementation.

### Where are the generated search queries stored?

The framework writes processed queries to skill files under `.claude/skills/job-application-assistant/`. These are internal artifacts—you should maintain your source configuration in [`documents/search.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/documents/search.md) and regenerate via `/setup --section search`.

### Is there a way to preview changes before applying them?

The current implementation in [`.claude/commands/setup.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/commands/setup.md) does not include a dry-run mode. Review your [`search.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/search.md) file carefully before executing, or version-control your `.claude/skills/` directory to enable rollback if needed.