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 frommodes/_profile.template.mdand 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.mdAFTER this file. User customizations in_profile.mdoverride defaults here."
The Update guide in AGENTS.md reinforces this boundary:
"User-specific customizations (archetypes, scoring weights, narrative) belong in
modes/_profile.md… never inmodes/_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.
modes/_shared.md— Stores the baseline scoring matrix and publishes the "read_profile.mdafter" rule.modes/_profile.template.md— Provides the skeleton for new users; copy this tomodes/_profile.mdto begin personalizing.modes/_profile.md— Your active user-specific overrides file; place the "Scoring Weights" section here.AGENTS.md— Documents where personal settings belong versus system-wide defaults.README.md— Describes the evaluation pipeline and the ten-dimension weighted scoring matrix.
Summary
- System defaults are hard-coded in
modes/_shared.mdand loaded first during every evaluation. - User-specific overrides belong in
modes/_profile.md, which the engine reads afterward. - Because
_profile.mdloads 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →