# What Is the Mode Layer in CareerOps? The Complete Guide to AI Prompt Architecture

> Discover the Mode Layer in CareerOps, the AI prompt architecture that defines job scoring, CV generation, and interview prep, keeping AI behavior separate from your data.

- Repository: [Santiago Fernández de Valderrama/career-ops](https://github.com/santifer/career-ops)
- Tags: deep-dive
- Published: 2026-08-22

---

**The Mode Layer is the "brain" of CareerOps—a collection of Markdown prompt files in the `modes/` directory that define AI behavior for scoring jobs, generating CVs, and interview preparation, completely separate from user data and system scripts.**

CareerOps is an open-source job search automation toolkit designed to streamline application workflows. The **Mode Layer** serves as its central intelligence system, storing plain-text Markdown prompts that instruct AI agents exactly how to evaluate opportunities and generate tailored application materials.

## How the Mode Layer Works

According to the [`ARCHITECTURE.md`](https://github.com/santifer/career-ops/blob/main/ARCHITECTURE.md) file lines 36-38, the Mode Layer contains "`modes/*.md` … the *brain*: scoring, evaluation, apply, scan, interview, etc. prompts". This architecture separates **what** the AI should do from **when** and **where** it executes.

### Separation of Concerns

The Mode Layer maintains a strict boundary between system instructions and user data. The updater scripts read these prompt files and feed them to any AI-coding CLI—such as Claude Code, Codex, OpenCode, Gemini, Qwen, or Antigravity—or to the built-in Node evaluators.

Because the prompts are pure Markdown, they remain version-controlled and safe to update without touching your personal files. The system guarantees that the updater never modifies your CV, profile, or tracker data located elsewhere in the repository.

### Model-Agnostic Architecture

The plain-text Markdown format makes the Mode Layer **model-agnostic**. You can swap underlying AI providers without changing a single line of code. The same [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) file works whether you are running Claude Code locally or calling OpenAI's API through the evaluation scripts.

## Core Files in the Mode Layer

The `modes/` directory contains several critical files that define CareerOps behavior:

### modes/_shared.md (Global Scoring Logic)

This file houses the core scoring algorithms, archetype detection rules, and global evaluation criteria used across all operations. When the system scores a job posting or evaluates a CV match, it references the definitions in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) to ensure consistency.

### modes/oferta.md (Job Evaluation Blocks)

This file defines the A-H evaluation blocks used for every job-post analysis. When you run `node oferta.mjs`, the script loads these specific prompt blocks to structure its output regarding company culture, technical requirements, and compensation alignment.

### modes/_profile.md (User Customization)

Located in the Mode Layer but intended for user-specific overrides, this file captures your target roles, preferred narrative style, and personal career story. It allows the AI to tailor outputs to your background while maintaining the structural rules defined in shared prompts.

## Practical Usage Examples

Run a scan operation that writes results to [`data/pipeline.md`](https://github.com/santifer/career-ops/blob/main/data/pipeline.md) without directly using prompts:

```bash
node scan.mjs

```

Evaluate a specific posting by loading the Mode Layer prompts:

```bash
node oferta.mjs --url https://example.com/job/123

```

Internally, the `oferta.mjs` script reads [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) for scoring rules and [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) for the A-H evaluation blocks.

## Customizing and Extending the Mode Layer

Because CareerOps separates prompts from code, you can customize behavior by editing Markdown files directly:

```bash

# Modify global scoring weights

code modes/_shared.md

```

Add market-specific vocabulary for international job searches:

```bash

# Copy base templates to a new language directory

cp -r modes/_shared.md modes/ja/

# Edit Japanese market terms

vim modes/ja/_shared.md

```

For German-speaking markets, quickly localize terminology:

```bash
sed -i '' 's/Salary/Gehalt/g' modes/de/_shared.md

```

The `modes/de/`, `modes/zh/`, and `modes/ar/` directories demonstrate how CareerOps supports localization while maintaining the same underlying evaluation logic.

## Summary

- The **Mode Layer** resides in the `modes/` directory and functions as CareerOps' decision engine through plain-text Markdown prompts.
- It separates AI behavior definitions from user data and system scripts, ensuring safe updates and version control.
- Key files include [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) for global rules, [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) for job evaluation blocks, and [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) for personal customization.
- The architecture is model-agnostic, supporting Claude Code, Codex, Gemini, and other AI coding assistants without code changes.
- Localization is handled through subdirectories like `modes/de/` or `modes/ja/`, allowing market-specific terminology while preserving core logic.

## Frequently Asked Questions

### What file format does the Mode Layer use?

The Mode Layer uses **plain-text Markdown files** (`.md`) exclusively. This format ensures human readability, easy version control via Git, and universal compatibility with any AI system that accepts text prompts.

### Can I use the Mode Layer with different AI models?

Yes. The Mode Layer is **model-agnostic** by design. Whether you use Claude Code, OpenAI Codex, Gemini, Qwen, or Antigravity, the scripts read the same Markdown files and feed them to your chosen provider's CLI or API.

### How do I add support for a new language or market?

Create a new subdirectory under `modes/` (e.g., `modes/ja/` for Japanese), copy the base templates like [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md) into it, and translate the terminology while preserving the structural instructions. The system will automatically reference these files when processing market-specific operations.

### Does updating the Mode Layer affect my personal data?

No. The architecture enforces a strict boundary where Mode Layer files (system prompts) are completely separate from your user data (CV, profile, tracker). Updating or modifying files in `modes/` never touches your personal application history or documents stored elsewhere in the repository.