# Career-Ops Language Modes: Supported Languages for Job Applications

> Explore supported languages for job applications in Career-Ops. Discover English, German, French, Japanese, and Turkish modes for enhanced international applications.

- Repository: [Santiago Fernández de Valderrama/career-ops](https://github.com/santifer/career-ops)
- Tags: api-reference
- Published: 2026-06-10

---

**Career-Ops supports five language modes for job applications: English (default), German, French, Japanese, and Turkish, each with dedicated directories under `modes/` containing locale-specific templates and vocabulary.**

The `santifer/career-ops` repository provides a multilingual system for managing job applications across different markets. Its **language mode** architecture allows the system to generate localized evaluation reports, CVs, and application scripts that match the language of specific job postings. The system organizes these capabilities into distinct language packs stored in separate directories under the `modes/` folder, as documented in the *Language Modes* section of [`AGENTS.md`](https://github.com/santifer/career-ops/blob/main/AGENTS.md).

## Supported Language Modes in Career-Ops

The Career-Ops language mode system supports five distinct locales. Each mode contains translated templates, shared utilities, and market-specific vocabulary files.

### English (Default Mode)

The base configuration resides in the `modes/` directory at the repository root. This English mode handles all job applications when no specific locale is requested or configured. Files like [`evaluation.md`](https://github.com/santifer/career-ops/blob/main/evaluation.md), [`apply.md`](https://github.com/santifer/career-ops/blob/main/apply.md), and [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md) provide the standard templates for application processing.

### German (DACH Market)

Located in `modes/de/`, this pack serves German-language postings and candidates in Germany, Austria, and Switzerland (DACH region). Key files include [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md) for common utilities, [`angebot.md`](https://github.com/santifer/career-ops/blob/main/angebot.md) for job offers, [`bewerben.md`](https://github.com/santifer/career-ops/blob/main/bewerben.md) for application workflows, and [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md) for pipeline management.

### French (Francophone Market)

The `modes/fr/` directory contains templates for French-language postings across France, Belgium, Switzerland, and Quebec. This pack includes [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md), [`offre.md`](https://github.com/santifer/career-ops/blob/main/offre.md) for job listings, [`postuler.md`](https://github.com/santifer/career-ops/blob/main/postuler.md) for application procedures, and [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md).

### Japanese (Japan Market)

Stored in `modes/ja/`, this mode supports Japanese-language job postings and Japan-based candidates. The directory contains [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md), [`kyujin.md`](https://github.com/santifer/career-ops/blob/main/kyujin.md) (job postings), [`oubo.md`](https://github.com/santifer/career-ops/blob/main/oubo.md) (application), and [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md).

### Turkish (Turkey Market)

The `modes/tr/` directory provides Turkish language support for the Turkey market. Files include [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md), [`is-ilani.md`](https://github.com/santifer/career-ops/blob/main/is-ilani.md) (job announcements), [`basvuru.md`](https://github.com/santifer/career-ops/blob/main/basvuru.md) (application), and [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md).

## How Career-Ops Selects a Language Mode

The system determines which language mode to activate through three distinct mechanisms, as implemented in the configuration layer.

1. **Explicit Request**: Users can specify a language mode directly during operation. When a user requests German output, the agent reads from `modes/de/` instead of the default directory.

2. **Profile Configuration**: The [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml) file accepts a `language.modes_dir` setting that forces all subsequent operations to use a specific language pack. Setting this to `modes/fr` redirects all template loading to the French directory.

3. **Automatic Detection**: The system can analyze job descriptions and suggest switching to the matching language mode when content is detected in German, French, Japanese, or Turkish.

If none of these conditions are met, Career-Ops defaults to the English mode in `modes/`.

## Configuring Language Modes in Career-Ops

You can configure language modes through YAML configuration files or command-line flags.

### Profile-Based Configuration

Set the `language.modes_dir` property in your [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml) to persistently use a specific language:

```yaml

# config/profile.yml

name: Jane Doe
email: jane@example.com
location: Berlin, Germany
timezone: Europe/Berlin
target_roles:
  - Senior Backend Engineer
  - Data Platform Lead

# Force German language modes

language:
  modes_dir: modes/de

```

### Command-Line Selection

When using CLI wrappers like OpenCode, pass a language flag to temporarily override the default:

```bash

# Assuming the OpenCode CLI wrapper is installed

opencode run "career-ops scan" --language de

```

This wrapper internally sets `language.modes_dir` to `modes/de/` before invoking the scanner.

### Runtime Switching

During conversations, the system can switch modes on the fly:

```

User: Please evaluate this French job posting.
Assistant: Switching to French language modes… (reads from `modes/fr/`).

```

The assistant reads the appropriate files under `modes/fr/` (e.g., [`offre.md`](https://github.com/santifer/career-ops/blob/main/offre.md), [`postuler.md`](https://github.com/santifer/career-ops/blob/main/postuler.md)) without modifying system configuration files.

## File Structure and Key Components

Each language mode follows a consistent structure within the repository:

| Directory | Language | Key Files |
|-----------|----------|-----------|
| `modes/` | English (default) | [`evaluation.md`](https://github.com/santifer/career-ops/blob/main/evaluation.md), [`apply.md`](https://github.com/santifer/career-ops/blob/main/apply.md), [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md) |
| `modes/de/` | German | [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md), [`angebot.md`](https://github.com/santifer/career-ops/blob/main/angebot.md), [`bewerben.md`](https://github.com/santifer/career-ops/blob/main/bewerben.md), [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md) |
| `modes/fr/` | French | [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md), [`offre.md`](https://github.com/santifer/career-ops/blob/main/offre.md), [`postuler.md`](https://github.com/santifer/career-ops/blob/main/postuler.md), [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md) |
| `modes/ja/` | Japanese | [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md), [`kyujin.md`](https://github.com/santifer/career-ops/blob/main/kyujin.md), [`oubo.md`](https://github.com/santifer/career-ops/blob/main/oubo.md), [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md) |
| `modes/tr/` | Turkish | [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md), [`is-ilani.md`](https://github.com/santifer/career-ops/blob/main/is-ilani.md), [`basvuru.md`](https://github.com/santifer/career-ops/blob/main/basvuru.md), [`pipeline.md`](https://github.com/santifer/career-ops/blob/main/pipeline.md) |

The [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml) stores user-specific language preferences, while [`AGENTS.md`](https://github.com/santifer/career-ops/blob/main/AGENTS.md) documents the complete language mode system architecture.

## Summary

- Career-Ops supports **five language modes**: English (default), German, French, Japanese, and Turkish.
- Language packs reside in `modes/` for English and `modes/<locale>/` for other languages (e.g., `modes/de/`, `modes/fr/`).
- Selection occurs via **explicit requests**, **profile configuration** in [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml), or **automatic detection** of job description languages.
- Each pack contains [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md) utilities and localized files like [`angebot.md`](https://github.com/santifer/career-ops/blob/main/angebot.md) (German) or [`offre.md`](https://github.com/santifer/career-ops/blob/main/offre.md) (French).
- The system defaults to English modes when no specific locale is configured or detected.

## Frequently Asked Questions

### What languages does Career-Ops support by default?

Career-Ops ships with English as the default language mode, located in the root `modes/` directory. Additionally, it includes four dedicated language packs: German (`modes/de/`), French (`modes/fr/`), Japanese (`modes/ja/`), and Turkish (`modes/tr/`). These packs contain fully translated templates and locale-specific vocabulary for their respective markets.

### How do I switch to German language modes in Career-Ops?

You can switch to German modes by setting `language.modes_dir: modes/de` in your [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml) file, or by using the `--language de` flag when invoking CLI commands. The system will then read from `modes/de/` files like [`angebot.md`](https://github.com/santifer/career-ops/blob/main/angebot.md) and [`bewerben.md`](https://github.com/santifer/career-ops/blob/main/bewerben.md) instead of the default English templates.

### Can Career-Ops automatically detect the language of a job posting?

Yes, the system can analyze job descriptions and suggest switching to the appropriate language mode when it detects content in German, French, Japanese, or Turkish. If no language is detected or specified, Career-Ops defaults to the English mode in `modes/`.

### Where are language mode files stored in the repository?

Language mode files are stored in the `modes/` directory structure. English files reside directly in `modes/`, while other languages have subdirectories: `modes/de/` for German, `modes/fr/` for French, `modes/ja/` for Japanese, and `modes/tr/` for Turkish. Each subdirectory contains a [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md) file for common utilities and language-specific template files.