Mapa da aula
Aula 04 publicada. Mapa, exemplo, EX016.
flowchart TD
N0["4.1 Mapeamento de dados"]
N1["4.2 Revisão da retenção"]
N2["4.3 Análise da base legal"]
N3["4.4 Recomendações"]
N4["Laboratório — Currículos de candidatos além do prazo"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX016"]
Desenho lógico
flowchart LR
N0["4.1 Mapeamento de dados"]
N1["4.2 Revisão da retenção"]
N2["4.3 Análise da base legal"]
N3["4.4 Recomendações"]
N4["Laboratório — Currículos de candidatos além do prazo"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX016"]
[4.1 Mapeamento de dados]
|
v
[4.2 Revisão da retenção]
|
v
[4.3 Análise da base legal]
|
v
[4.4 Recomendações]
|
v
[Laboratório — Currículos de candidatos além do prazo]
|
v
[Exemplo resolvido] --> [Exercício EX016]
Objetivos de aprendizagem
Você vai (1) aplicar o mapeamento de dados, a revisão da retenção e a análise da base legal; (2) analisar a retenção de currículos num laboratório; (3) recomendar mudanças.
4.1 Mapeamento de dados
Marta monta um mapa de dados da Halden com cada categoria de dados, sua fonte, finalidade, sistema, destinatários e retenção. As categorias incluem contatos, currículos, anotações de entrevistas, referências, documentos de autorização de trabalho, resultados de verificação de antecedentes e respostas de monitoramento de diversidade. O mapa mostra que as respostas de diversidade ficam guardadas com os nomes no sistema de recrutamento, embora só sejam usadas em estatísticas anônimas. Ela recomenda guardá-las separadas e sem nomes, o que apoia a minimização e reduz o impacto de uma violação no banco principal. O prestador de TI confirma que é viável.
4.2 Revisão da retenção
A política da Halden diz que os currículos dos candidatos não aprovados são excluídos seis meses depois do último contato, salvo se o candidato aceitar ficar no banco de talentos. Marta confere a prática com uma cópia sintética do banco de candidatos. O laboratório mostra que 1.792 de 2.500 candidatos, 71,7%, passaram dos seis meses sem aceite do banco de talentos, então a política não vem sendo aplicada; a maioria desses perfis tem anos. Também encontra 216 candidatos do banco de talentos sem contato há mais de dois anos, cujo aceite provavelmente está desatualizado e deveria ser renovado ou encerrado.
4.3 Análise da base legal
Com a responsável pela proteção de dados, Marta revisa as bases legais. Tratar candidaturas para uma vaga específica se apoia em diligências pré-contratuais a pedido do candidato, pelo artigo 6(1)(b) do GDPR e pelo art. 7º, V, da LGPD. Manter candidatos no banco de talentos para vagas futuras se apoia no consentimento, que precisa ser específico e revogável. As verificações de autorização de trabalho se apoiam em obrigação legal. As verificações de antecedentes exigem análise cuidadosa, sobretudo de registros criminais, que o artigo 10 do GDPR restringe. Ela documenta cada base, e os consultores recebem um resumo do que podem usar para cada finalidade.
4.4 Recomendações
Marta recomenda três mudanças: rodar uma rotina automática de exclusão dos currículos vencidos depois de um teste em modo somente relatório; enviar um pedido de renovação aos candidatos do banco de talentos sem contato há dois anos e excluir os que não responderem; e separar os dados de diversidade dos nomes. Ela estima que só a primeira mudança remove mais de dois terços dos perfis guardados. O diretor-geral aprova, e o prestador de TI agenda o trabalho, com Marta preparando o plano de teste. Cada mudança tem responsável e data, e a primeira execução real da exclusão fica marcada para depois do teste.
Laboratório — Currículos de candidatos além do prazo de retenção
"""Check candidate CVs against a retention rule in a synthetic recruitment database (stdlib only)."""
import random, datetime
random.seed(21)
today = datetime.date(2026, 10, 1)
cands = []
for i in range(2500):
last = today - datetime.timedelta(days=random.randint(0, 1500))
pool = random.random() < 0.18 # candidate agreed to stay in talent pool
cands.append((i, last, pool))
rule = 183 # six months after last contact
expired = [c for c in cands if (today - c[1]).days > rule and not c[2]]
pool_old = [c for c in cands if c[2] and (today - c[1]).days > 730]
print(f"candidates {len(cands)}; past six months without pool consent {len(expired)} ({100*len(expired)/len(cands):.1f}%)")
print(f"talent-pool candidates with no contact for over two years {len(pool_old)}")
Execute com python3 lab_cvs.py. Saída verificada:
candidates 2500; past six months without pool consent 1792 (71.7%)
talent-pool candidates with no contact for over two years 216
Exemplo resolvido
Marta mapeia as categorias de dados, encontra 1.792 de 2.500 candidatos (71,7%) além da retenção e 216 entradas desatualizadas no banco de talentos, documenta as bases legais e recomenda a exclusão, a renovação do consentimento e a separação dos dados de diversidade.
Caso sintético. Os registros são sintéticos; os artigos 6(1)(b) e 10 do GDPR e o art. 7º da LGPD são reais.
Erros e limites
Alguns registros podem ser necessários para ações judiciais; combine as exceções antes de excluir.
Exercícios
- EX016 — Dados de diversidade. O que o mapa mostrou sobre as respostas de diversidade?
Mostrar critérios de avaliação
Rubrica: 3 = guardadas com nomes, embora usadas de forma anônima;; 2 = menciona nomes;; 1 = vago;; 0 = nenhuma. - EX017 — Currículos vencidos. Quantos candidatos passaram dos seis meses sem aceite do banco de talentos?
Mostrar critérios de avaliação
Rubrica: 3 = 1.792 de 2.500, 71,7%;; 2 = aproximada;; 1 = errada;; 0 = nenhuma. - EX018 — Banco desatualizado. Quantos candidatos do banco de talentos estavam sem contato há mais de dois anos?
Mostrar critérios de avaliação
Rubrica: 3 = 216;; 2 = parcialmente correta;; 1 = errada;; 0 = nenhuma. - EX019 — Base do banco de talentos. Que base legal apoia o banco de talentos?
Mostrar critérios de avaliação
Rubrica: 3 = consentimento;; 2 = parcialmente correta;; 1 = contrato;; 0 = nenhuma. - EX020 — Dados criminais. Que artigo restringe os dados de registros criminais?
Mostrar critérios de avaliação
Rubrica: 3 = artigo 10;; 2 = parcialmente correta;; 1 = outro;; 0 = nenhuma.