# How CareerOps Evaluates "Match con CV" (Block A) for Job Offers: The Complete Technical Guide

> Discover how CareerOps evaluates Match con CV for job offers. Our technical guide explains the programmatic cross-referencing process, identifying matches and gaps for accurate candidate scoring.

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

---

**CareerOps evaluates "Match con CV" by programmatically cross-referencing every job description requirement with line-level evidence from the candidate's CV, documenting exact matches and gaps to generate a qualitative alignment score that feeds into the final 1-5 rating.**

The **santifer/career-ops** repository implements a deterministic, data-driven pipeline for assessing how well a candidate's documented experience aligns with a specific job posting. The evaluation occurs within **Block A – Role Summary**, treating the "Match con CV" dimension as a rigorous evidence-mapping exercise rather than subjective interpretation.

## The Six-Step Match con CV Evaluation Pipeline

The evaluation workflow is hardcoded in [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) and executes sequentially to ensure reproducible results across different job descriptions and candidate profiles.

### Step 1: Archetype Detection

Before any matching occurs, the system classifies the job description (JD) into one of six predefined archetypes—such as AI Platform, Agentic, or Technical AI PM—during `Step 0` of the evaluation. This classification, defined at [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) lines 42-48, tailors the subsequent requirement weighting and evidence prioritization to role-specific expectations.

### Step 2: CV Ingestion

The mode explicitly loads the canonical candidate profile by executing a `Read cv.md` instruction before processing requirements. This ensures the evaluation references the single source of truth located at the project root ([`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md)), as specified at [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) lines 97-99. The system maintains this CV context throughout the pipeline to enable line-by-line verification.

### Step 3: Build the Requirement-to-CV Mapping Table

For each requirement extracted from the JD, the system searches [`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md) for exact line references and constructs a markdown table titled **"Match with CV"** (the visual representation of the "Match con CV" evaluation). This table is archetype-aware: an FDE (Forward Deployed Engineer) role emphasizes delivery-speed proof points, while an SA (Solutions Architect) role stresses system-design achievements. The mapping logic resides at [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) lines 101-107.

### Step 4: Identify and Mitigate Gaps

Any JD requirement lacking direct CV evidence is cataloged in a dedicated *Gaps* subsection. The system categorizes each gap with a mitigation strategy—distinguishing between **hard blockers**, **nice-to-have** preferences, **adjacent experience** that partially satisfies the requirement, or suggested **portfolio projects** and phrasing ideas to address the deficit. This gap analysis appears at [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) lines 109-114.

### Step 5: Score the "Match con CV" Dimension

The scoring rubric lives in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md). The *Match con CV* dimension specifically measures **"Skills, experience, proof points alignment"** (lines 65-68). The evaluator judges the completeness and quality of the mapping table and gap mitigations: a thorough, line-by-line alignment with concrete evidence yields a high sub-score, while missing or weakly linked items lower the rating.

### Step 6: Integrate into the Global Score

After all five dimensions are scored individually, the *Match con CV* sub-score is combined qualitatively—not arithmetically—into the final 1-5 rating. The integration logic, described at [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) lines 71-78, weighs the alignment evidence against other Blocks (B through G) to produce a holistic candidacy assessment.

## Running the Match con CV Evaluation

You can trigger the Block A evaluation pipeline using the `oferta` mode command. The tool accepts either a live URL or raw JD text.

Evaluate a live job posting to generate the full A-G report including the Match con CV table:

```bash
career-ops oferta https://example.com/job/1234

```

Process raw JD text directly when a URL is unavailable:

```bash
career-ops oferta --jd-text "We need a Senior AI Platform Engineer with 5+ years of Kubernetes and MLflow experience..."

```

Both commands execute the `oferta` mode logic and print a markdown report. To extract only the CV-matching table for quick validation:

```bash
career-ops oferta https://example.com/job/1234 | grep -A5 "## Block A — Match with CV"

```

## Key Source Files and Architecture

Understanding the file structure reveals how the "Match con CV" evaluation maintains separation of concerns between workflow orchestration, scoring definitions, and candidate data.

- **[`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md)** – Defines the main evaluation orchestration, archetype detection, and the Block A workflow that generates the requirement-to-CV mapping table.

- **[`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md)** – Contains the universal scoring system, including the *Match con CV* dimension definition measuring skills and proof points alignment, plus the global score interpretation framework.

- **[`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md)** – The canonical candidate resume file read by the evaluation engine to perform requirement validation and line-reference extraction.

- **[`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md)** – Stores user-customized archetype narratives and proof points that influence how Block A tailors the matching table to emphasize relevant experience.

- **`analyze-patterns.mjs`** – Contains the regex patterns used to extract the *Match con CV* sub-score from generated reports, enabling downstream analytics and trend tracking.

## Summary

- **Block A** in CareerOps serves as the evaluation zone for "Match con CV," treating alignment as a deterministic mapping exercise.
- The pipeline follows six strict steps: archetype detection, CV ingestion, requirement mapping, gap analysis, dimension scoring, and global integration.
- Evidence is drawn from [`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md) and cross-referenced against job requirements at the line level, producing a markdown table of matches and a structured gap mitigation plan.
- Scoring occurs in [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) and evaluates the quality of proof points, not just keyword presence.
- The system supports both URL-based and text-based job description inputs via the `career-ops oferta` command.

## Frequently Asked Questions

### How does CareerOps handle missing experience in the Match con CV evaluation?

When a job requirement lacks direct evidence in [`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md), the system creates a gap entry with a mitigation classification. It distinguishes between hard blockers (missing mandatory skills), nice-to-have preferences (optional qualifications), adjacent experience (transferable skills), and actionable recommendations such as portfolio projects or specific phrasing suggestions to bridge the gap during interviews.

### What is the difference between Block A and the other evaluation blocks?

Block A specifically focuses on **"Role Summary"** and the *Match con CV* dimension, evaluating historical evidence and proven skills. Subsequent blocks assess different dimensions: Block B covers strategic alignment, Block C addresses technical architecture depth, and Blocks D through G evaluate other specific competencies. Each block receives an individual sub-score before qualitative integration into the final 1-5 rating.

### Can I customize which CV sections the system prioritizes for specific job types?

Yes. The [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) file allows you to define archetype-specific narratives and highlight particular proof points. When the system detects an archetype (such as Technical AI PM or Agentic Engineer) during Step 0, it weights the mapping table to emphasize the experience categories defined in your profile, ensuring the "Match con CV" evaluation highlights your most relevant qualifications first.

### Is the Match con CV score calculated arithmetically or subjectively?

The *Match con CV* dimension is scored qualitatively based on the completeness and quality of evidence mapping, but it is **not** a simple arithmetic average. According to [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md), the final 1-5 rating emerges from a holistic interpretation of all five dimension sub-scores, allowing strong alignment in one area to compensate for minor gaps in another when justified by the evidence.