How to Override Default Scoring Weights per User in Career-Ops: A Step-by-Step Guide

You can override default scoring weights in Career-Ops by creating a modes/_profile.md file with custom dimension values, which the engine loads after modes/_shared.md so your keys shadow the system defaults.

The Career-Ops evaluation pipeline ranks opportunities using a weighted scoring matrix defined in the santifer/career-ops repository. Because the built-in system defaults in modes/_shared.md are designed as universal baselines, the project supports user-specific overrides through a simple file-based configuration system. Learning how to override default scoring weights per user in Career-Ops ensures your personal priorities—such as compensation over culture or vice versa—drive the final rank.

Where Default and Override Weights Live

Career-Ops separates system configuration from user-specific personalization across two primary files.

  • modes/_shared.md — Contains the baseline scoring matrix and the hard-coded weights used by every evaluation.
  • modes/_profile.md — Holds your personal overrides, including custom scoring weights, archetypes, and narrative settings. If this file does not exist, copy the skeleton from modes/_profile.template.md and rename it.

According to the Career-Ops source code in modes/_shared.md, the engine enforces a strict load order: it reads _shared.md first to establish defaults, then reads _profile.md afterward. The file explicitly states the RULE: Read _profile.md AFTER this file, which means any key you redefine in your profile automatically replaces the shared default for that user only.

Step-by-Step: Override Default Scoring Weights per User

Follow these steps to personalize your evaluation matrix without touching shared source.

1. Create or Open Your Profile File

If modes/_profile.md is missing, generate it from the template:

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

2. Add the Scoring Weights Section

Open modes/_profile.md and add a section that redefines the dimensions you want to customize. The keys must match the dimension names used in the shared file:


## Scoring Weights

# The numbers are relative weights that must sum to 1 (or 100 %).

# They replace the defaults from `modes/_shared.md`.

match_cv:      0.30   # Skills & proof-point alignment

north_star:   0.20   # Fit with user archetypes (read from _profile.md)

comp:         0.15   # Salary / market comparison

culture:      0.15   # Company culture & remote policy

red_flags:    0.10   # Negative adjustments (red-flag signals)

global:       0.10   # Overall weighted average (optional)

Only the dimensions you explicitly list are overridden. Any dimension you omit falls back to the default value defined in modes/_shared.md.

3. Apply Archetype-Specific Tweaks (Optional)

If you want a different weighting strategy for a specific career archetype, nest the values under the archetype name:


## Archetype-Specific Weights

AI Platform:
  match_cv:    0.35
  north_star: 0.25
  comp:        0.10

When the engine classifies an offer under that archetype, it swaps in the per-archetype map instead of the generic block.

4. Save and Evaluate

After saving modes/_profile.md, run any standard evaluation command to apply the new weights:

node gemini-eval.mjs

The pipeline will pick up your personalized matrix on the next run.

Why the Override Mechanism Works

The override behavior is intentional and enforced by documentation inside the repository itself.

In modes/_shared.md, the engine’s loading contract is spelled out directly:

"RULE: Read _profile.md AFTER this file. User customizations in _profile.md override defaults here."

The Update guide in AGENTS.md reinforces this boundary:

"User-specific customizations (archetypes, scoring weights, narrative) belong in modes/_profile.md … never in modes/_shared.md."

Because _profile.md is parsed strictly after _shared.md, any identically named keys function as shadow values. This architecture keeps the core system untouched while giving each user a private scoring matrix.

Practical Code Examples

Simple Global Weight Override

The example below shifts 40 % of the score weight to CV alignment:


## Scoring Weights

match_cv:    0.40
north_star: 0.25
comp:       0.15
culture:    0.10
red_flags:  0.10

After saving, executing node gemini-eval.mjs will compute scores using the 40 % emphasis on match_cv rather than the system default of approximately 20 %.

Archetype-Specific Weighting

This configuration applies different priorities when evaluating an AI Solutions Architect role:


## Scoring Weights

match_cv:    0.25
north_star: 0.20
comp:       0.20
culture:    0.20
red_flags:  0.15

## Archetype-Specific Weights

AI Solutions Architect:
  match_cv: 0.30
  north_star: 0.25

If the offer is classified as AI Solutions Architect, the engine uses the nested map; otherwise, it falls back to the generic weights above.

Key Files in the Override Flow

Understanding the role of each file helps you avoid editing the wrong source.

Summary

  • System defaults are hard-coded in modes/_shared.md and loaded first during every evaluation.
  • User-specific overrides belong in modes/_profile.md, which the engine reads afterward.
  • Because _profile.md loads after _shared.md, any matching keys shadow the defaults without modifying shared source.
  • Only dimensions you explicitly redefine are overridden; omitted dimensions retain their system defaults.
  • Optional nested archetype maps let you apply role-specific scoring strategies inside the same profile file.

Frequently Asked Questions

What file do I edit to override default scoring weights in Career-Ops?

You edit modes/_profile.md. The repository is designed so that modes/_shared.md remains untouched, while _profile.md holds all user-specific customizations. If the file does not exist, copy it from modes/_profile.template.md before adding your weights.

Do I need to modify modes/_shared.md to change my personal weights?

No. According to the rule documented in modes/_shared.md and the guidance in AGENTS.md, personal settings such as scoring weights should never be placed in modes/_shared.md. Changing the shared file would affect all users and violate the project's separation between system defaults and personal overrides.

Can I assign different weights to different job archetypes?

Yes. Inside modes/_profile.md, you can add an Archetype-Specific Weights section and nest dimension values under the archetype name, such as AI Platform or AI Solutions Architect. When the engine matches an offer to that archetype, it substitutes the per-archetype weights for the generic set.

What happens if I leave out a scoring dimension in _profile.md?

The engine falls back to the default value defined in modes/_shared.md. You only need to declare the dimensions you want to customize; the override system is partial by design, so omitting a key preserves the original system weight.

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 →