# How to Customize Archetypes and Scoring Weights for Your Career Field in Career-Ops

> Customize Career-Ops archetypes and scoring weights for your career field by editing modes/_profile.md and synchronizing config/profile.yml. Tailor your career path effectively.

- Repository: [Santiago Fernández de Valderrama/career-ops](https://github.com/santifer/career-ops)
- Tags: how-to-guide
- Published: 2026-07-03

---

**To customize archetypes and scoring weights in Career-Ops, edit the [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) file to define your target roles and override default weights, while keeping [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml) synchronized with your target role list.**

Career-Ops evaluates job offers through a layered scoring system that separates system defaults from user-specific customizations. The **archetype table** defines the roles you target, while **scoring weights** control how each evaluation signal contributes to your final score. Both configurations live in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md), ensuring your personal career preferences stay synchronized across every evaluation cycle.

## Understanding the Evaluation Architecture

Career-Ops implements a three-tier configuration system. The base layer resides in [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md), which defines a **10-dimension scoring matrix** with default weights of 1.0 for dimensions like Compensation, Growth Potential, and Technical Fit.

The middle layer, [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md), contains global defaults applied across all evaluations.

Finally, [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) serves as the user-specific override layer. According to the pipeline rules documented in [`_shared.md`](https://github.com/santifer/career-ops/blob/main/_shared.md), the system reads [`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md), then [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml), and finally [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) to apply your personal customizations last.

## Customizing Archetypes in modes/_profile.md

Archetypes represent the specific roles you want to evaluate, such as "Data Engineer" or "ML Engineer". To define these, edit the markdown table in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) as documented in [`docs/CUSTOMIZATION.md`](https://github.com/santifer/career-ops/blob/main/docs/CUSTOMIZATION.md).

The table requires three columns:

- **Archetype**: The role title
- **Thematic axes**: Key skills or focus areas (e.g., "data pipelines, ETL")
- **What they buy**: The value proposition that matters to this role

```markdown
| Archetype | Thematic axes | What they buy |
|-----------|---------------|---------------|
| **Data Engineer** | data pipelines, ETL, cloud storage | Reliable, scalable data infra |
| **ML Engineer** | model training, feature pipelines | Production-ready ML systems |
| **Product Manager** | roadmap, UX, metrics | User impact and market fit |

```

## Overriding Scoring Weights

After the archetype table, add a **"Scoring Weights"** section to override the defaults from [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md). Each dimension listed here receives a numeric multiplier that scales its contribution to the final score.

Available dimensions include:

- Compensation
- Growth Potential
- Team & Culture
- Technical Fit
- Impact Scope

```markdown

## Scoring Weights

| Dimension | Weight |
|-----------|--------|
| Compensation | 1.5 |
| Growth Potential | 1.2 |
| Team & Culture | 1.0 |
| Technical Fit | 2.0 |
| Impact Scope | 1.3 |

```

When present, these values replace the built-in weights defined in [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md). The evaluator multiplies each dimension's raw score by your specified weight before calculating the final total.

## Synchronizing Target Roles in config/profile.yml

To ensure the scanner only pulls relevant opportunities, update [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml) with your target roles under the `target_roles` key. This list must align with the archetypes defined in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md).

```yaml
target_roles:
  - Data Engineer
  - ML Engineer
  - Product Manager

```

Keeping these files synchronized ensures the pipeline filters incoming offers against your north-star roles before running the weighted evaluation.

## Runtime Execution Flow

During evaluation, Career-Ops processes your configuration in sequence:

1. Loads your CV data from [`cv.md`](https://github.com/santifer/career-ops/blob/main/cv.md)
2. Reads personal settings from [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml)
3. Applies custom archetypes and weights from [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) (overriding defaults)
4. The evaluator in [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) builds the 10-dimension scoring matrix, applying your custom multipliers
5. Generates the final report (blocks A–F) displaying weighted scores
6. Determines whether to auto-generate a PDF or flag the offer for follow-up based on score thresholds

## When to Edit System Defaults

User-specific tweaks belong exclusively in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md). If you need to change global settings for every user—such as adding an 11th scoring dimension or modifying the base prompt—edit [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) and [`batch/batch-prompt.md`](https://github.com/santifer/career-ops/blob/main/batch/batch-prompt.md) instead.

**Never** place personal archetype definitions or individual weight preferences in the shared files, as these changes would affect all users of the system.

## Summary

- **Define archetypes** in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) using a markdown table with thematic axes and value propositions
- **Override scoring weights** in the same file's "Scoring Weights" section to prioritize dimensions critical to your field
- **Sync target roles** in [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml) to ensure the scanner filters for relevant opportunities
- **Reserve system edits** for [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) and [`batch/batch-prompt.md`](https://github.com/santifer/career-ops/blob/main/batch/batch-prompt.md) only when changing global defaults
- **Runtime application**: The pipeline automatically reads your customizations after defaults, applying your weights to the 10-dimension matrix from [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md)

## Frequently Asked Questions

### Can I add new scoring dimensions beyond the default 10?

Yes, but this requires editing system-wide files. Add new dimensions to [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) and update [`batch/batch-prompt.md`](https://github.com/santifer/career-ops/blob/main/batch/batch-prompt.md) to include the new criteria in the evaluation prompt. User-specific weight overrides in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) can only modify existing dimensions defined in [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md).

### What happens if I don't specify custom weights in modes/_profile.md?

If the "Scoring Weights" section is absent or empty, the system uses the default 1.0 weights defined in [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md). Every dimension receives equal weight, and the evaluation proceeds using the standard 10-dimension matrix without modification.

### Do I need to restart Career-Ops after editing my profile files?

No. The pipeline reads [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) at runtime during each evaluation cycle. Changes to your archetype table or scoring weights take effect immediately on the next job offer evaluation without requiring a system restart or service reload.

### Can I create different weight profiles for different archetypes?

The current architecture supports a single weight profile per user in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md). While you can define multiple archetypes in the table, the scoring weights apply universally across all evaluations. To switch weight profiles between different career tracks, you would need to modify the weights section in [`modes/_profile.md`](https://github.com/santifer/career-ops/blob/main/modes/_profile.md) before running evaluations for that specific archetype.