# How the A-F Evaluation System Uses Weighted Dimensions to Score Job Offers in Career-Ops

> Discover how Career-Ops uses the A-F evaluation system with 10 weighted dimensions. Learn how each dimension contributes 20% to a universal job offer score.

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

---

**Career-Ops evaluates every job posting by generating a six-block A-F report that feeds five weighted input-output dimensions, calculating a final 1-5 global score where each dimension contributes exactly 20%.**

The open-source Career-Ops framework transforms unstructured job descriptions into actionable ratings through its A-F evaluation system. Defined in [`modes/ua/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/ua/oferta.md) and [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md), this pipeline orchestrates LLM workflows to analyze postings against your profile data and compute a comparable score that drives recruitment decisions.

## The Six-Block A-F Report Structure

The evaluation begins with a structured report containing six evidence blocks that capture distinct aspects of a job opportunity:

**Block A – Role summary** extracts the domain, function, seniority level, and reporting structure. This metadata identifies which archetype from your [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) applies, feeding the **North Star alignment** dimension.

**Block B – CV match** generates a line-by-line mapping between the job description requirements and statements in your [`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md). This evidence directly populates the **Match con CV** dimension by quantifying skill and experience alignment.

**Block C – Level & strategy** contains your self-assessment of seniority versus the role requirements. This block influences both the **North Star** dimension (archetype fit) and the **Red flags** dimension (level mismatches).

**Block D – Compensation & demand** pulls market salary data via web search and compares it against benchmarks from Glassdoor or Levels.fyi, generating a normalized score for the **Comp** dimension.

**Block E – Personalisation plan** suggests specific CV and LinkedIn edits. Once applied, these modifications improve your evidence base for the **Match con CV** dimension in subsequent evaluations.

**Block F – Interview plan** builds STAR-plus-R stories that confirm your ability to address the job requirements. Completing these stories mitigates risks flagged in the **Red flags** dimension.

## The Five Input-Output Weighted Dimensions

After generating the six blocks, the system computes five input-output (IO) dimensions that consume the block evidence. Each dimension outputs a normalized score that feeds into the final aggregation.

### Match con CV

This dimension measures alignment between the job description's required skills, experience, and proof-points with the candidate's [`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md) and optional [`article-digest.md`](https://github.com/santifer/career-ops/blob/main/article-digest.md). Block B provides the primary evidence, while Block E supplies post-optimization improvements.

### North Star Alignment

Defined by your target archetypes in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md), this dimension scores how closely the role matches your career trajectory. Block A (role metadata) and Block C (level assessment) provide the input data for this calculation.

### Comp

The compensation dimension compares the role's salary or total compensation against market benchmarks. Block D supplies the raw market data and normalization logic defined in the "Scoring System" section of [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md).

### Cultural Signals

This dimension captures qualitative factors including company culture, growth trajectory, stability, and remote work policies. Evidence for this dimension is extracted across multiple blocks, particularly from Block A (company context) and Block D (demand signals).

### Red Flags

Explicit blockers or warning signs—such as unrealistic requirements, ghost posting indicators, or level mismatches—are captured here. Block C identifies potential mismatches, while Block F (interview plan completion) can mitigate these flags by confirming capability.

## How the Global Score Is Calculated

The system computes the **Global** score as a weighted average of the five IO dimensions. According to the canonical rules in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md), the weights are hard-coded to be equal, with each dimension contributing **20%** to the final figure.

The calculation follows this aggregation logic:

```javascript
// Pseudocode excerpt showing the weighted aggregation
const dimensions = {
  matchCV: computeMatchCV(),
  northStar: computeNorthStar(),
  comp: computeCompensation(),
  culture: computeCultureSignals(),
  redFlags: computeRedFlags(),
};

const globalScore = Object.values(dimensions).reduce((sum, v) => sum + v, 0) / 5;
// Result: decimal between 1.0 and 5.0 (e.g., 4.2/5)

```

The resulting decimal (e.g., **4.2/5**) maps to recommendation tiers defined in the "Score interpretation" section of [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md), guiding whether to pursue, research further, or decline the opportunity.

## Running the Evaluation Pipeline

The A-F workflow is orchestrated through the [`ua/oferta.md`](https://github.com/santifer/career-ops/blob/main/ua/oferta.md) mode, which can be invoked via CLI:

```bash

# Run full evaluation using Gemini backend

node gemini-eval.mjs --mode oferta path/to/job-description.txt

# Alternative: Generic CLI entry point (works with any LLM backend)

career-ops evaluate --file path/to/job-description.txt

```

Both commands execute the six-block generation sequence and then trigger the scoring routine. The workflow mandates saving the report and registering a tracker entry upon completion.

## Summary

- Career-Ops uses a **six-block A-F report** (Blocks A through F) to structure evidence extracted from job descriptions and candidate profiles.
- Five **input-output weighted dimensions**—Match con CV, North Star alignment, Comp, Cultural signals, and Red flags—consume this evidence.
- Each dimension carries an **equal 20% weight** in the final calculation, producing a 1–5 global score that drives recruitment recommendations.
- Core configuration resides in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) (scoring rules) and [`modes/ua/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/ua/oferta.md) (workflow orchestration), while profile data is stored in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) and [`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md).

## Frequently Asked Questions

### What is the difference between the A-F blocks and the IO dimensions?

The **A-F blocks** are evidence containers generated during the analysis phase—structured outputs that capture role summaries, CV mappings, and interview plans. The **IO dimensions** are scoring algorithms that consume this evidence to produce normalized ratings. Blocks feed dimensions; dimensions feed the global score.

### Can I customize the weights for different dimensions?

Currently, the weights are hard-coded to equal 20% per dimension in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md). The architecture supports inheritance across language-specific modes, but the canonical implementation uses uniform weighting to ensure consistent comparability across all evaluated opportunities.

### Where does the system store the North Star archetype definitions?

Candidate-specific target archetypes are defined in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md). This file is referenced by Block A (Role summary) and Block C (Level & strategy) when calculating the **North Star alignment** dimension, ensuring the evaluation measures fit against your stated career goals rather than generic criteria.

### How does the evaluation handle missing salary data in a job posting?

Block D (Compensation & demand) triggers web search queries to gather market benchmarks from sources like Glassdoor and Levels.fyi when explicit compensation data is absent. The **Comp** dimension then normalizes this external data against the role's level and location to generate a comparable score, preventing null values from skewing the global average.