fix(match): prioritize meaningful job terms

This commit is contained in:
cesnimda
2026-08-09 18:47:21 +02:00
parent f2d1963c61
commit da1aa8bb2a
5 changed files with 208 additions and 22 deletions
+10 -10
View File
@@ -1065,13 +1065,13 @@ export const translations = {
matchScoreBand_Partial: "Partial match",
matchScoreBand_Low: "Low match",
matchScoreBand_Unknown: "Not enough signal",
matchScoreKeywordsCovered: "{matched}/{total} keywords",
matchScoreKeywordsCovered: "{matched}/{total} important terms",
matchScoreNoSignal: "Add more CV detail or a fuller job description to get a reliable score.",
matchScoreDeterministicHint: "Deterministic keyword coverage — no AI, so the score is stable and repeatable. For a written opinion on strengths and gaps, see the AI section below.",
matchScoreMatched: "Matched keywords",
matchScoreMissing: "Missing keywords",
matchScoreDeterministicHint: "Deterministic important-term coverage — no AI, so the score is stable and repeatable. For a written opinion on strengths and gaps, see the AI section below.",
matchScoreMatched: "Important terms already in your CV",
matchScoreMissing: "Important terms from the job to review",
matchScoreNoneYet: "No matches found yet.",
matchScoreAllCovered: "Every keyword is covered.",
matchScoreAllCovered: "Every important term is covered.",
matchScoreSectionCoverage: "Where your CV covers this role",
matchScoreLearningPath: "Learning path",
matchScoreLearningPathHint: "Job-specific skill gaps from the deterministic match. Verify real evidence before adding a skill to your profile.",
@@ -2195,13 +2195,13 @@ export const translations = {
matchScoreBand_Partial: "Delvis match",
matchScoreBand_Low: "Lav match",
matchScoreBand_Unknown: "For lite grunnlag",
matchScoreKeywordsCovered: "{matched}/{total} nøkkelord",
matchScoreKeywordsCovered: "{matched}/{total} viktige begreper",
matchScoreNoSignal: "Legg til mer CV-innhold eller en fyldigere stillingstekst for en pålitelig score.",
matchScoreDeterministicHint: "Deterministisk nøkkelorddekning — ingen AI, så scoren er stabil og repeterbar. For en skriftlig vurdering av styrker og svakheter, se AI-seksjonen under.",
matchScoreMatched: "Treff på nøkkelord",
matchScoreMissing: "Manglende nøkkelord",
matchScoreDeterministicHint: "Deterministisk dekning av viktige begreper — ingen AI, så scoren er stabil og repeterbar. For en skriftlig vurdering av styrker og svakheter, se AI-seksjonen under.",
matchScoreMatched: "Viktige begreper i CV-en",
matchScoreMissing: "Viktige begreper fra stillingen å vurdere",
matchScoreNoneYet: "Ingen treff ennå.",
matchScoreAllCovered: "Alle nøkkelord er dekket.",
matchScoreAllCovered: "Alle viktige begreper er dekket.",
matchScoreSectionCoverage: "Hvor CV-en dekker denne rollen",
matchScoreLearningPath: "Læringssti",
matchScoreLearningPathHint: "Jobbspesifikke ferdighetsgap fra den deterministiske matchen. Bekreft reell erfaring før du legger en ferdighet til profilen.",
@@ -76,12 +76,15 @@ afterEach(() => {
jest.clearAllMocks();
});
test('match score panel shows the score, matched and missing keywords', async () => {
test('match score panel shows the score and honest important-term labels', async () => {
renderDialog();
expect(await screen.findByText('82%')).toBeInTheDocument();
expect(await screen.findByText(/strong match/i)).toBeInTheDocument();
expect(await screen.findByText('4/6 keywords')).toBeInTheDocument();
expect(await screen.findByText('4/6 important terms')).toBeInTheDocument();
expect(await screen.findByText('Important terms already in your CV')).toBeInTheDocument();
expect(await screen.findByText('Important terms from the job to review')).toBeInTheDocument();
expect(screen.queryByText(/matched keywords/i)).not.toBeInTheDocument();
// Matched keyword chips
expect(await screen.findByText('C#')).toBeInTheDocument();