# What Are the Five Dimensions of the Career-Ops Scoring System?

> Discover the five dimensions of the Career-Ops scoring system: Match con CV, North Star alignment, Comp, Cultural signals, and Red flags. Understand how they create a holistic job score.

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

---

**Career-Ops evaluates every job opportunity across five distinct dimensions—Match con CV, North Star alignment, Comp, Cultural signals, and Red flags—to generate a holistic global score between 1 and 5 that determines whether you should apply, pass, or prioritize the role.**

The open-source `santifer/career-ops` repository provides a data-driven pipeline for job-search decisions. At its core sits the **five dimensions of the career-ops scoring system**, defined centrally in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) (see the "Scoring System" section, lines 61–71), which transforms subjective career preferences into an auditable quantitative framework.

## The Five Dimensions Defined

The system decomposes every job description into five orthogonal factors. Each dimension is scored individually, then synthesized into a final judgment according to the logic in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md).

### Match con CV

This dimension measures how precisely your proven skills, project history, and professional experience map to the role's explicit requirements. The evaluation compares your curriculum vitae against mandatory and preferred qualifications listed in the job description.

### North Star Alignment

Rather than purely tactical fit, this dimension assesses strategic coherence: does the role advance you toward your target career archetypes and long-term narrative? The system references your defined profile in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) to validate whether the opportunity moves you closer to your stated North Star or represents a distracting detour.

### Comp (Compensation)

Mapped against real-time market data, this score reflects salary positioning. A **5** indicates top-quartile compensation for the role and location; a **1** signals pay significantly below market rate. This dimension prevents undervaluation while flagging suspiciously high offers that may indicate unrealistic expectations.

### Cultural Signals

This captures qualitative company attributes: growth trajectory, organizational stability, remote-work policies, and team dynamics. The evaluation criteria are guided by your personalized settings in [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml), ensuring the culture assessment reflects your specific non-negotiables rather than generic benchmarks.

### Red Flags

The final dimension acts as a deal-breaker detector, screening for legal inconsistencies, ethical concerns, logistical impossibilities (such as visa restrictions), or structural issues like excessive turnover signals. Any significant red flag automatically depresses the global score regardless of other strengths.

## Calculating the Global Score

After individual dimension scoring, the system synthesizes a **Global** score ranging from 1 to 5. Importantly, this synthesis is **non-arithmetical**; it represents a holistic judgment that prioritizes critical mismatches (especially Red Flags and North Star misalignment) over minor deficiencies in less critical areas.

Interpretation thresholds, defined in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md), translate the numeric output into actionable recommendations:

- **4.5+**: Strong match; immediate application recommended.
- **4.0–4.4**: Good match; worth applying.
- **3.5–3.9**: Decent match; apply only with a specific strategic reason.
- **<3.5**: Not recommended; ethical-use guidance suggests passing.

## Implementation in the Codebase

The scoring logic lives in specific configuration and template files within the repository. The canonical definitions reside in **[`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md)**, which specifies dimension descriptions, weighting logic, and interpretation thresholds. When the pipeline generates a report, the `oferta` mode (defined in [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md)) injects these five scores into the evaluation template. User-specific inputs that drive the Cultural and North Star dimensions come from [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml) and [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) respectively.

You can access these dimensions programmatically:

```javascript
// Load the scoring table from the shared mode file
import { readFile } from 'fs/promises';
const shared = await readFile('modes/_shared.md', 'utf8');

// Extract the dimension rows (simple regex for illustration)
const dimensionRows = shared.match(/\| (Match con CV|North Star alignment|Comp|Cultural signals|Red flags) \| ([^\|]+) \|/g);
console.log('Scoring dimensions:\n', dimensionRows.join('\n'));

```

To execute a live evaluation and see the five-dimensional output:

```bash

# CLI-style: the `oferta` mode prints the five-dimensional scores

node node_modules/.bin/codex exec "career-ops oferta https://example.com/job" | grep -A5 "## Score"

```

## Summary

- The **santifer/career-ops** repository implements a **five-dimensional scoring system** to standardize job evaluations.
- Dimensions include **Match con CV**, **North Star alignment**, **Comp**, **Cultural signals**, and **Red flags**.
- Configuration lives in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md), while user preferences reside in [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml) and [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md).
- The **Global** score (1–5) synthesizes dimensions non-arithmetically, with specific thresholds guiding application decisions.
- Scores ≥4.5 indicate strong matches, while scores <3.5 suggest passing on the opportunity.

## Frequently Asked Questions

### How does Career-Ops handle conflicting scores across the five dimensions?

The system uses holistic synthesis rather than arithmetic averaging. According to the source code in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md), critical dimensions like **Red flags** and **North Star alignment** carry veto-like weight; a severe misalignment in either can cap the Global score below 3.5 regardless of perfect scores in **Match con CV** or **Comp**.

### Can I customize the weighting of the five dimensions?

While the core dimension definitions in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) are standardized, you influence prioritization through [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml). For example, flagging remote work as mandatory in your profile elevates the importance of the **Cultural signals** dimension, effectively weighting it higher in the final holistic judgment without changing the underlying math.

### Where is the 1–5 scale defined, and what constitutes a "good" score?

The scale and interpretation thresholds are hardcoded in the "Scoring System" section of [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md). A **good** match technically starts at **4.0**, though the system reserves strong recommendations for scores **≥4.5**, reflecting the high bar for competitive career moves.

### How do I run the scoring system against a live job description?

Execute the `oferta` mode via the CLI, passing the job posting URL. The pipeline fetches the description, evaluates it against the five dimensions using your profile configuration, and outputs a structured report with individual dimension scores and the final Global score.