Repository navigation
Conversation
Benevanio
requested review from
hltav,
nayarakarinesilva and
pedrosilvaadev
as code owners
October 7, 2026 16:51
Benevanio
requested review from
GiovanniDonati,
PedroLucas1337,
RuhanFreitas,
jeremiassnts and
nayrabra
and removed request for
Copilot
October 7, 2026 16:52
nayarakarinesilva
previously approved these changes
Oct 7, 2026
hltav
previously approved these changes
Oct 8, 2026
Benevanio
dismissed stale reviews from hltav and nayarakarinesilva
via
October 11, 2026 13:08
b5dd2df
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved moderate issues affect authorization, response headers, payload limits, service exposure, and preview robustness.
4 open findings
What changed in this PR
This PR integrates ATS resume generation and analysis through ats-forge, including backend APIs, frontend preview/editing, personalization, and supporting documentation and tests.
Changes:
- Adds authenticated resume generation and analysis endpoints.
- Adds frontend generation forms, ATS preview, scoring, and downloads.
- Integrates Docker configuration, environment variables, documentation, and tests.
| File | Change | Final review comments |
|---|---|---|
SECURITY_AUDIT_LINEAR_CARDS.md |
Adds security audit documentation. | Nit (1): Move to a dedicated audit PR or explain its scope. |
README.md |
Updates Linear reference. | — |
LOCAL_DEVELOPMENT.md |
Documents local ats-forge usage. |
— |
frontend/tests/unit/infrastructure/resumeApi.test.ts |
Tests the frontend resume API. | — |
frontend/tests/unit/components/ResumePreview.test.tsx |
Tests ATS preview rendering. | — |
frontend/tests/unit/components/ProfileTab.test.tsx |
Tests profile integration. | — |
frontend/tests/unit/components/GenerateResumeCard.test.tsx |
Tests generation form flows. | — |
frontend/src/domains/new_dashboard/infrastructure/resumeApi.ts |
Implements resume API calls. | — |
frontend/src/domains/new_dashboard/components/profile/ResumePreview.tsx |
Renders resume and ATS analysis. | Moderate (2): Safely default missing recommendations to an empty list. |
frontend/src/domains/new_dashboard/components/profile/ProfileTab.tsx |
Integrates the generator into the profile. | — |
frontend/src/domains/new_dashboard/components/profile/GenerateResumeCard.tsx |
Adds the resume generation form. | Nit (1): Add accessible labels to experience fields. |
docker-compose.yml |
Adds the ats-forge service. |
Moderate (4): Avoid exposing port 8089 without mandatory authentication. |
backend/tests/unit/scripts/seed.test.ts |
Tests asynchronous seed completion. | — |
backend/tests/unit/scripts/backfillUserPii.test.ts |
Tests asynchronous backfill completion. | — |
backend/tests/unit/resume/resume.service.test.ts |
Tests the resume service. | — |
backend/tests/unit/resume/resume.mapper.test.ts |
Tests profile normalization. | — |
backend/tests/unit/resume/resume.controller.test.ts |
Tests the resume controller. | — |
backend/tests/unit/resume/resume.client.test.ts |
Tests ATS client communication. | — |
backend/tests/integration/routes/resume.routes.test.ts |
Tests integrated resume routes. | — |
backend/src/scripts/seed.ts |
Exposes asynchronous seed completion. | — |
backend/src/scripts/backfillUserPii.ts |
Exposes asynchronous backfill completion. | — |
backend/src/routes/resume.routes.ts |
Defines resume endpoints. | — |
backend/src/modules/resume/schemas/resume.schemas.ts |
Validates resume requests. | Moderate (4): Add an aggregate payload limit consistent with the JSON parser limit. |
backend/src/modules/resume/resume.types.ts |
Defines resume contracts. | — |
backend/src/modules/resume/resume.service.ts |
Orchestrates profile mapping and generation. | — |
backend/src/modules/resume/resume.mapper.ts |
Normalizes candidate data. | — |
backend/src/modules/resume/resume.controller.ts |
Handles resume responses and headers. | Moderate (4): Expose Content-Disposition on every successful response.Moderate (1): Avoid placing an unbounded full ATS report in X-Ats-Report. |
backend/src/modules/resume/resume.client.ts |
Implements the ats-forge HTTP client. |
— |
backend/src/config.ts |
Adds ATS configuration. | — |
backend/src/app.ts |
Registers resume routes. | Moderate (1): Enforce active-user/session-revocation checks for blocked users. |
.env.example |
Documents ATS environment variables. | — |
🧠 Review effort: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+89
to
+98
| if (resume.atsReport) { | ||
| res.setHeader("X-Ats-Score", String(resume.atsReport.score)); | ||
| res.setHeader( | ||
| "X-Ats-Report", | ||
| Buffer.from(JSON.stringify(resume.atsReport), "utf-8").toString("base64"), | ||
| ); | ||
| res.setHeader( | ||
| "Access-Control-Expose-Headers", | ||
| "X-Ats-Score, X-Ats-Report, Content-Disposition", | ||
| ); |
Comment on lines
+14
to
+15
| // Capped below the app-wide 16kb JSON body limit (see app.ts). | ||
| jobDescription: z.string().max(12000).optional(), |
Comment on lines
+60
to
+62
| # Publicado porque o frontend (navegador) chama o ats-forge diretamente. | ||
| ports: | ||
| - "8089:8089" |
Comment on lines
+420
to
+424
| {atsReport.recommendations.length > 0 && ( | ||
| <div className="rounded-xl border border-border bg-card p-4 shadow-sm"> | ||
| <p className="text-sm font-semibold">Recomendações</p> | ||
| <ul className="mt-2 list-disc space-y-1 pl-4 text-xs text-muted-foreground"> | ||
| {atsReport.recommendations.map((r, i) => ( |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Descrição
Otimização da geração de currículos para ATS, com melhorias na estrutura e apresentação do currículo e preparação do fluxo para personalização baseada na descrição da vaga. O currículo passa a priorizar informações, experiências e competências mais relevantes para cada oportunidade, mantendo o conteúdo fiel às informações reais do candidato e compatível com ATS.
Também foi estruturado o conceito de enriquecimento do perfil através de fontes profissionais como GitHub e LinkedIn, permitindo utilizar projetos, tecnologias, experiências e outras informações públicas relevantes durante a geração do currículo. A adaptação considera os requisitos e palavras-chave da vaga para produzir um currículo mais direcionado à oportunidade.
Linear link
https://linear.app/candidateappbr/issue/PAV-177/otimizar-geracao-de-curriculo-para-ats
Como foi testado