Role presets¶
A preset is a complete config/skills.yaml for one role family. Loading one (Settings → Role
preset, or POST /api/presets/load) copies it over skills.yaml, keeps a timestamped backup
beside it, and rescores. Fetch-time rules apply from the next Refresh.
Shipped presets¶
| Id | Name | Covers |
|---|---|---|
sre-devops |
SRE / DevOps / Platform | site reliability, DevOps, platform, infrastructure, observability, Kafka/Elastic platform administration |
qa-sdet |
QA / SDET / Test automation | SDET, test automation, quality engineering, performance/release testing |
Anatomy¶
preset: # shown in the Settings dropdown
name: QA / SDET / Test automation
description: ...
relevance: # what is fetched at all (regexes, case-insensitive)
title_terms: [ '\bqa\b|quality assurance|\bsdet\b', ... ]
desc_rescue_groups: [ 'selenium|playwright|cypress', ... ]
min_groups: 3 # description groups needed to rescue a non-matching title
search_terms: [qa engineer, sdet, ...] # queries for keyword-only boards (Workday, iCIMS, Phenom, Oracle HCM, amazon.jobs)
view: # the Jobs page's one-click view
label: QA view
roles: [SDET, QA, Automation]
days: 30
role_titles: ... # scoring, exactly as in skills.yaml
title_blockers: ...
title_penalties: ...
seniority_bonus: ...
skills: ...
freshness_bonus: ...
source_points: ...
location_points: ... # keys: home, home_state, remote_us, remote_global, us_other, non_us, unknown
experience_bonus: ...
flags: ...
fit_profile_default: | # seed for resume/fit-profile.md on first use; never overwrites an existing one
# Fit profile ...
Writing a new preset¶
- Copy the closest shipped preset to
config/presets/<id>.yaml(lowercase, hyphens). - Rewrite
relevance.title_termsfirst - it decides what exists in the inbox at all. Keep it broad; blockers and penalties can trim later, but a posting the prefilter rejected is gone. search_terms: 5-9 short queries. Each costs one request per keyword-only board per refresh.role_titleslabels become the Roles filter; name them the way you'd say them.fit_profile_default: describe core / adjacent / specialist / product bands for the family in the candidate's voice. This is what the fit scorer reads until feedback rewrites it.- Run
python -m unittest discover -s tests- add a case liketest_qa_preset_relevanceasserting a canonical title is relevant and an off-family title is not. - Open a PR; the preset is the whole change. Adzuna
queries(Settings → Adzuna) are separate and worth updating in the same PR's description.
Nothing in a preset may reference a person, a city or a work-authorization status - those
live in resume/ and Settings → Home.