LGPD · BY DESIGN

Seus dados, suas regras

LGPD não é checklist legal. É decisão arquitetural. Veja como cada decisão de código protege você — antes de qualquer compliance review.

21 ações auditadasIP nunca rawExport 1-clickDelete cascade

Princípio editorial

Você é o cliente. Não é o produto.

Quando uma plataforma B2C de carreira é grátis ou subsidiada por edtech/recrutador, o cliente é quem paga — instituição de ensino, ATS, agência de RH. O seu dado vira matéria prima pra venda casada. É o modelo herdado.

No CareerTwin, você paga assinatura direta. Não tem incentivo nenhum pra te vender curso, pra encaminhar seu CV pra recrutador, pra nutrir base de e-mail de parceiro. Decide o que entra (cada fonte é opt-in explícito), decide o que sai (export e delete em 1 click), e nada disso fica escondido em SAC burocrático.


Trilha de auditoria · OWASP A09

21 ações tipadas — todo acesso ao seu dado fica em log

Cada evento sensível grava userId, actorIp (hash), action, target, meta. Resolve o gap A09 do OWASP Top 10 e dá base pra resposta a incidente. Você pode pedir o seu trecho por e-mail.

Autenticação (5)

  • LOGINToda entrada na sessão
  • LOGOUTEncerramento explícito
  • PASSWORD_RESETPedido de troca de senha
  • ACCOUNT_CREATEDCadastro inicial
  • ACCOUNT_DELETEDDireito ao esquecimento exercido

LGPD · Dados pessoais (6)

  • DATA_EXPORTEDVocê baixou seu JSON
  • CONSENT_GRANTEDOpt-in por fonte (CV, LinkedIn, GitHub)
  • CONSENT_REVOKEDRevogação de consentimento
  • PROFILE_UPDATEDEdição de campos do perfil
  • CV_UPLOADEDPDF/texto de currículo enviado
  • CV_DELETEDCV apagado a pedido

Billing (3)

  • BILLING_SUBSCRIPTION_CREATEDAssinatura ativada
  • BILLING_SUBSCRIPTION_CANCELEDCancelamento processado
  • BILLING_PAYMENT_FAILEDPagamento recusado

Segurança · OWASP A09 (3)

  • SECURITY_RATE_LIMIT_HITTentativa de abuso bloqueada
  • SECURITY_BUDGET_EXCEEDEDOrçamento de LLM excedido
  • SECURITY_INVALID_WEBHOOKWebhook não autenticado

Resultados de carreira (4)

  • OUTCOME_REPORTEDVocê reportou contratação/recusa
  • OUTCOME_SURVEY_SENTPesquisa de outcome disparada
  • OUTCOME_SURVEY_DECLINEDVocê optou por não responder
  • DAILY_BRIEFING_SENTResumo diário enviado por e-mail

Retenção declarada

Quanto tempo cada coisa fica — sem letrinha miúda

Cada TTL aqui tem cron rodando em produção. Não é "prometemos apagar", é "código apaga automaticamente".

rawCv (texto do currículo cru)
90 dias
Cron de redação automática zera o texto bruto, mantém só campos estruturados.
linkedinRaw (texto do LinkedIn colado)
90 dias
Mesmo cron — redação automática após estruturação.
Sessão Auth.js
30 dias inativa
Cookie httpOnly + SameSite. Logout explícito invalida na hora.
AuditLog
12 meses
Trilha de eventos sensíveis. LGPD permite reter rastro mínimo legítimo.
BillingEvent.payload
12 meses
Webhook bruto do gateway. Após isso, só hash do payload pra reconciliação.
Conta + dados estruturados
até você pedir
Sem expiração automática. Você paga, você decide quando termina.

Dados técnicos

IP nunca raw. Tracker nenhum sem opt-in.

IP hash (sha256 + salt)

O endereço IP nunca é armazenado em texto puro. Toda gravação passa por hash sha256 com salt rotacionável. Rate-limit e detecção de abuso funcionam, geolocalização reversa não.

actorIp = sha256(IP + SALT) → "8f3a…b21c"

Cookie consent explícito

Banner real, sem dark pattern. Recusar tem o mesmo peso visual de Aceitar. Estritamente necessários (Auth.js, tema) rodam sempre. PostHog/Sentry só carregam após opt-in.

  • Auth.js v5 cookie httpOnly · necessário
  • Tema escuro/claro (localStorage) · necessário
  • PostHog (analytics) · opt-in, respeita DNT
  • Sentry (erros) · opt-in, request body filtrado

Direitos LGPD · 1 click

Acesso, portabilidade, exclusão — sem SAC, sem formulário

Direitos do art. 18 da LGPD executados em UI. Você não liga, não manda e-mail, não preenche planilha. Botão dispara, código executa.

Exportar tudo

Download JSON com perfil + diagnósticos + candidaturas + consentimentos + audit log seu.

GET /api/me/exportBaixar meu JSON

Apagar tudo

Cascade delete: snapshots, candidaturas, outcomes, consentimentos, perfil. AuditLog vira anônimo.

POST /meus-dados (server action)Ir pra Meus dados

Corrigir / Editar

Toda alteração em campo do perfil é versionada. Edita, vê histórico, audit log registra.

PATCH /api/me/preferencesConta

Revogar fonte

Desliga CV, LinkedIn, GitHub individualmente. Dado já estruturado fica até você pedir delete.

POST /api/me/preferencesMeus dados

Comparativo de mercado

Como cada padrão de mercado se posiciona em LGPD

Categorias representam classes de produto, não empresas específicas. Avaliações partem de políticas públicas e comportamento default observável pelo usuário final. Se uma coluna não te representa, mande feedback — privacidade@careertwin.ai.

RecursoPlayer edtech-IARede profissional globalCopiloto generalistaCareerTwin
Hospedagem em região BRparcialforaforavercel · região BR
LGPD by-design (não só ToS)parcialGDPR-firstnão declaradodecisão arquitetural
Export completo 1-clicknãonãonãosim
Delete cascade realnãoparcialnãosim
Audit log público de eventosnãonãonão21 ações tipadas
IP nunca em texto puronão públiconão públiconão públicosha256 + salt
Fórmula do score abertanãonãonãodocs/ALGORITHMS.md

Sub-processadores

Quem mais toca o seu dado — e o quê exatamente

LGPD art. 39: você tem direito de saber a cadeia de tratamento. Aqui está, sem letra miúda.

Anthropic Claude
LLM · análise de CV e redação de explicações
Dados enviados pra inferência. Não usados pra treinar modelos (política Anthropic).
Voyage AI
Embeddings de RAG
Vetoriza chunks de conhecimento. Não recebe seu dado pessoal — só texto de conhecimento curado pelo CareerTwin.
Resend
E-mail transacional
Recebe apenas seu e-mail e nome. Sem conteúdo de currículo.
Sentry (opt-in)
Rastreamento de erros
Request body filtrado, sem PII. Carrega só após você consentir cookies.
PostHog (opt-in)
Analytics anônimas
Sem PII, respeita Do Not Track. Carrega só após consentimento explícito.
Adzuna, Jooble, Greenhouse
Provedores de vagas
Recebem só o cargo-alvo. Sem identificação do usuário.

Encarregado · DPO

Fala direto com a pessoa responsável

Dúvida, denúncia, exercício de direito específico, suspeita de vazamento. Resposta em ≤ 15 dias úteis (LGPD art. 19, § 1º).

privacidade@careertwin.aiReclamação à ANPD (gov.br/anpd)