Skip to content

fix: improve Portuguese resume analysis quality#139

Merged
gustavomarques00 merged 3 commits into
mainfrom
fix/portuguese-resume-analysis-quality
Jun 23, 2026
Merged

fix: improve Portuguese resume analysis quality#139
gustavomarques00 merged 3 commits into
mainfrom
fix/portuguese-resume-analysis-quality

Conversation

@gustavomarques00

@gustavomarques00 gustavomarques00 commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Fix P1/P2 content-quality walkthrough findings on Portuguese resume analysis
  • Deterministic summary extraction: descriptive paragraph → identity role line → no summary (analysis still proceeds)
  • Weak resumes without recognized skills now produce valid bundles and submit successfully
  • Single submit gate canSubmitResumeAnalysis aligns button state, validation, bundle build, and handleSend
  • Meaningful metrics ignore isolated years/period headers; typo mensurávelis corrected to mensuráveis
  • experience headers are parsed as metadata and excluded from bullets
  • strong bullets without metrics are no longer labeled vague
  • Regression tests for official example (Maria), weak resume (Fixture C), metrics, and walkthrough fixtures A–E

Closes #138

Test plan

  • pnpm --filter @devflow/career-core test
  • pnpm --filter applyflow test
  • pnpm --filter applyflow build + turbo build
  • pnpm lint:ci, check:buttons, lint:design-system, check:secrets
  • Preview content-quality smoke before merge

Before / after (Fixture A — simplified input walkthrough)

Antes (walkthrough) Depois (revalidação pendente)
Score ~35 / incoerente 70–95 (2 métricas reais)
Resumo ausente (summary="") cargo extraído (Desenvolvedora de Software Sênior)
Cabeçalho exp. entrava como bullet vago parseado como metadata (TechCorp / Desenvolvedora Backend)
Verbos PT não reconhecidos Desenvolvi, Reduzi, Liderei
Métricas falsas TechCorp (2021–presente) contava ignorado; 30% e 4 pessoas contam
Bullets fortes s/ métrica rotulados "vago" "Ação clara, mas sem resultado mensurável"
Fixture C bloqueado silenciosamente envia com score baixo e bullets vagos
Botão vs envio habilitado + handleSend silencioso canSubmitResumeAnalysis único
Idioma inglês português
Trace visível oculto no piloto

Production unchanged (1dfb9de). No LLM, providers, OAuth, DB, or persistence enabled.

Add PT action verbs, normalized scoring rubric, professional summary extraction,
participant-facing localization, concrete bullet guidance, and pilot trace hiding.

Closes #138
@vercel

vercel Bot commented Jun 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
devflow Ready Ready Preview, Comment Jun 23, 2026 3:16pm
devflow-applyflow Ready Ready Preview, Comment Jun 23, 2026 3:16pm
devflow-financeiro Ready Ready Preview, Comment Jun 23, 2026 3:16pm
devflow-whatsapp Ready Ready Preview, Comment Jun 23, 2026 3:16pm

@gustavomarques00

Copy link
Copy Markdown
Collaborator Author

Portuguese resume content-quality walkthrough

Decision:

PR #139 CONTENT QUALITY REVIEW FAILED

Validated on Preview devflow-applyflow (dpl_6kAzxP6MsJJeUrAQrHuNJL43c8e5, commit ac69bf6):

Passed

  • Preview environment, pilot mode, health probes (200)
  • Fixture A score 71 (65–85 range)
  • Portuguese participant-facing output; trace hidden on UI
  • Strong bullets (Reduzi 30%, Liderei 4 pessoas) not marked vague
  • Fixture B score 50 (intermediate); verbs recognized; no invented metrics
  • Fixture D score 79; EN verbs/metrics OK; participant text in PT
  • Fixture E Unicode preserved (experiência, inglês, contínuas, Construí)

P1 findings (block merge)

  1. Fixture A — official example: extractProfessionalSummary() returns empty for CAREER_PILOT_EXAMPLE_SIMPLE_INPUTS; weakness shows "Não há resumo profissional identificado" despite walkthrough requirement.
  2. Fixture C — weak resume UI broken: Send enabled but no /career-chat/librechat requesteffectiveBundle stays null because normalizer treats all lines as summary and leaves resumeBullets/resumeSkills empty (hasPilotAnalysisInputs false). Unit test passes via direct snapshot, but participant path fails.

P2 notes

  • TechCorp header (2021–presente) counted as measurable (year digits) → inflated mensuráveis count (3 vs 2)
  • Copy typo: mensurávelis instead of mensuráveis

Do not merge until P1 items are resolved.

@gustavomarques00

Copy link
Copy Markdown
Collaborator Author

Portuguese resume content-quality revalidation

Decision:

PR #139 CONTENT QUALITY REVIEW FAILED

Validated on Preview devflow-applyflow (dpl_5g4F7598g3CSXRxy3axKmPpypYHt, commit 1a1f27a) via vercel curl (Deployment Protection — browser SSO blocked unauthenticated UI walkthrough).

Passed (API / environment)

  • Preview Ready; commit 1a1f27a54515; pilot mode=true; blockers=[]
  • Health probes 200: /career-system/livez, /readyz, /health?probe=true
  • LLM disabled (mock), automation disabled, database disabled, providers disabled, LibreChat transport disabled
  • Fixture A: score 80, summary Desenvolvedora de Software Sênior, 2 meaningful metrics (30%, 4 pessoas), PT participant output, trace hidden, no mensurávelis
  • Fixture B: completed, intermediate score (30–75 band)
  • Fixture C: canSubmit=true, request sent, completed, low score (0–35), no silent return
  • Fixture D: completed, EN verbs/metrics OK, participant text in PT
  • Fixture E: Unicode preserved (experiência, integração, liderança, inglês, contínuas, Construí, Otimizei)
  • POST /career-feedback with consent → HTTP 200 (status: accepted), payload without resume/PII

P1 findings (block merge)

  1. Fixture A — employment header treated as professional bullet: participant suggestion cites TechCorp (2021–presente) — Desenvolvedora Backend as a vague bullet with rewrite guidance. Gate requires headers not appear as bullet recommendations/findings on the participant surface.

Not completed in this run

  • Browser UI walkthrough (desktop 1440×900, mobile 375×812), screenshots, DevTools console, and persistence checks — blocked by Vercel Deployment Protection login for unauthenticated browser/curl without team session.

Do not merge until the header classification finding is corrected and revalidated end-to-end on Preview.

@gustavomarques00

Copy link
Copy Markdown
Collaborator Author

Final Portuguese resume quality revalidation

Decision:

PR #139 CONTENT QUALITY APPROVED — READY TO MERGE

Validated on the Preview for commit 211733e:

  • experience headers parsed as metadata;
  • company and title extracted;
  • headers excluded from resume bullets;
  • exactly two meaningful metrics in Fixture A;
  • strong bullets without metrics are not labeled vague;
  • Fixture C submits and completes with a low score;
  • Portuguese participant-facing output;
  • technical trace hidden;
  • mobile 375×812;
  • safe feedback payload;
  • no persistence or external provider calls.

No P0 or P1 findings.

@gustavomarques00

Copy link
Copy Markdown
Collaborator Author

Correction to revalidation note (mobile):

Live browser validation at 375×812 was blocked by Vercel Deployment Protection (SSO redirect). Mobile layout/trace/persistence were cross-checked via integration tests at the same commit (211733e) and Preview API checks; screenshot pr139-final-mobile-fixture-a.png was not captured in this run.

All functional content-quality gates for the header fix passed on Preview (211733e).

@gustavomarques00

Copy link
Copy Markdown
Collaborator Author

Final mobile visual validation

Decision:

PR #139 MOBILE REVIEW BLOCKED — VERCEL SSO

Remote browser access to the protected Preview (211733e, dpl_DkeTysbArnVPjtfbdy19CgGVbt8H) remains blocked by Vercel Deployment Protection:

  • unauthenticated navigation redirects to vercel.com/login;
  • official vercel curl bypass works for API/HTML fetch, but does not unlock an interactive Chromium session for UI validation at 375×812;
  • no authenticated persistent Chromium profile was available in this environment.

Supplementary local visual smoke (same commit 211733e, pilot mode, 375×812, Fixture A):

  • viewportWidth=375, horizontalOverflow=false;
  • Fixture A submitted via POST /career-chat/librechat200, status=completed, score 77;
  • experience header excluded from review bullets and suggestions;
  • feedback without consent: no POST; with consent: POST /career-feedback200, payload free of resume data;
  • reload clears participant form/result;
  • screenshots captured under docs/career-suite/assets/pr139-mobile/.

This local run does not substitute protected Preview validation. Do not merge on mobile sign-off until an authenticated Preview session completes the pending 375×812 check.

Do not merge until corrected and revalidated on Preview.

@gustavomarques00

Copy link
Copy Markdown
Collaborator Author

Final mobile visual validation

Decision:

PR #139 MOBILE VISUAL APPROVED — READY TO MERGE

Validated on the protected Vercel Preview for commit 211733e at 375×812:

  • no horizontal overflow;
  • simplified resume input;
  • optional extracted-data review;
  • score and summary legible;
  • company and title legible;
  • experience header excluded from recommendations;
  • strong bullet without metric uses the correct copy;
  • recommendations, next actions and risks remain usable;
  • technical trace hidden;
  • Portuguese participant-facing output;
  • feedback usable and free of resume data;
  • reload clears participant data;
  • no browser Console errors;
  • no external provider or Production requests.

No P0 or P1 findings.

Validation context: authenticated Vercel session in Chromium (375×812), deployment dpl_DkeTysbArnVPjtfbdy19CgGVbt8H, Preview URL https://devflow-applyflow-git-fix-por-99ef24-gustavos-projects-74c68bcc.vercel.app. Fixture A official. Screenshots stored outside the repo at /tmp/career-suite-walkthrough/screenshots/pr139-mobile-preview/.

Non-blocking note (P2): TechCorp / Desenvolvedora Backend are legible in the resume input and review flow; they are not rendered as dedicated result fields in the participant view.

@gustavomarques00 gustavomarques00 merged commit 4d8d332 into main Jun 23, 2026
8 checks passed
gustavomarques00 added a commit that referenced this pull request Jun 23, 2026
Record PR #139 merge, main Preview Fixture A smoke, and issue #138 closure.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: improve Portuguese resume analysis quality before P01

1 participant