How to Customize Scoring Weights and Archetype Profiles in Career-Ops

You customize scoring weights and archetype profiles in Career-Ops by editing your personal modes/_profile.md file for target role definitions and adjusting the dimension percentages in modes/triage.md, while the layered file-loading pipeline guarantees your changes override system defaults.

Career-Ops evaluates each job posting against a set of weighted dimensions and target-role archetypes that are defined in Markdown mode files. To customize scoring weights and archetype profiles, you maintain a local modes/_profile.md that supersedes the shared defaults and optionally tweak the percentages in modes/triage.md. This guide covers the exact file paths, table syntax, and load order used by the Career-Ops pipeline.

Create Your Personal Profile File

If you have not already created a personal profile, copy the template once and then edit the resulting file:

cp modes/_profile.template.md modes/_profile.md

After this one-time setup, all future personalization happens inside modes/_profile.md. This file is designated as the user layer, so edits you make there survive repository updates.

Customize Archetype Profiles in modes/_profile.md

The Archetype Table Structure

Inside modes/_profile.md, the section titled Your Target Roles contains a table that defines each archetype you want the scorer to prioritize. According to the template at [modes/_profile.template.md – lines 13-30](https://github.com/santifer/career-ops/blob/main/modes/_profile.template.md#L13-L30), every row has three columns:

  • Archetype — a short name used internally by the scorer.
  • Thematic axes — the key themes that the archetype cares about.
  • What they buy — the value proposition you should emphasize when matched.

The system reads this file after modes/_shared.md, so any row you add or modify in your profile wins over the defaults.

Adding or Modifying Target Roles

To add a new role, append a row to the table using standard Markdown pipe syntax. For example, to introduce a Data Engineer archetype:


## Your Target Roles

| Archetype | Thematic axes | What they buy |
|-----------|---------------|---------------|
| **AI Platform / LLMOps Engineer** | Evaluation, observability, reliability, pipelines | Someone who puts AI in production with metrics |
| **Data Engineer** | Pipelines, ETL, warehousing | Builds reliable data platforms |

When the pipeline runs, it includes this archetype in its evaluation logic and references the thematic axes and value proposition during scoring.

Adjust Scoring Weights in modes/triage.md

Default dimension weights live in modes/triage.md around lines 57-70. The percentages express the relative importance of each factor when the overall score is computed. The default structure looks like this:

**Archetype fit (weight 30%)** …
**Comp (weight 25%)** …
**Location (weight 25%)** …
**CV match estimate (weight 15%)** …

To customize scoring weights, change the percentage values to match your priorities. For example, if location matters most, you could raise Location to 35% and reduce Archetype fit to 20%:

**Archetype fit (weight 20%)** …
**Comp (weight 20%)** …
**Location (weight 35%)** …
**CV match estimate (weight 25%)** …

After saving modes/triage.md, the scorer uses the new percentages for all subsequent evaluations.

How the Pipeline Loads Your Changes

During a run, Career-Ops loads mode files in a strict order that protects your personalizations:

  1. modes/_shared.md — system-wide defaults.
  2. modes/_profile.md — your personal overrides.
  3. Mode-specific files such as modes/triage.md — scenario configuration.

Because your profile is read after _shared.md, any archetype or narrative customization you place in _profile.md is guaranteed to take precedence. The data contract documented in [AGENTS.md](https://github.com/santifer/career-ops/blob/main/AGENTS.md#user-layer-never-auto-updated-personalization-goes-here) formalizes this rule, stating that the user layer is never auto-updated.

Run an Evaluation with Custom Settings

Once your archetypes and weights are in place, execute a triage evaluation from the CLI:

node codex exec "run career-ops triage --url https://example.com/job"

The command reads your personalized modes/_profile.md and the updated weights in modes/triage.md, then scores the posting against your custom criteria.

Summary

Frequently Asked Questions

What is the difference between modes/_profile.template.md and modes/_profile.md?

modes/_profile.template.md is the version-tracked default shipped with the repository. You copy it to modes/_profile.md to create your local user layer. Only the copy is read during scoring, and because the data contract in AGENTS.md marks this layer as never auto-updated, your changes survive future repository pulls.

Can I add multiple custom archetypes to the same profile?

Yes. The Your Target Roles table in modes/_profile.md accepts any number of rows. Each row defines a distinct archetype with thematic axes and a value proposition, and the scorer references every valid row during triage.

Will editing modes/triage.md affect only future evaluations?

Yes. The scorer reads the weight percentages from modes/triage.md at runtime. Any changes you save to that file are applied immediately to the next evaluation without requiring a restart or rebuild.

Where does Career-Ops enforce that user customizations are not overwritten?

The protection is defined in AGENTS.md under the user-layer rule. The pipeline loads modes/_shared.md first and then modes/_profile.md, so your personal profile is intentionally isolated from system defaults and will not be overwritten by updates to shared mode files.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →