Autenticação (5)
LOGINToda entrada na sessãoLOGOUTEncerramento explícitoPASSWORD_RESETPedido de troca de senhaACCOUNT_CREATEDCadastro inicialACCOUNT_DELETEDDireito ao esquecimento exercido
LGPD · BY DESIGN
LGPD não é checklist legal. É decisão arquitetural. Veja como cada decisão de código protege você — antes de qualquer compliance review.
Princípio editorial
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
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.
LOGINToda entrada na sessãoLOGOUTEncerramento explícitoPASSWORD_RESETPedido de troca de senhaACCOUNT_CREATEDCadastro inicialACCOUNT_DELETEDDireito ao esquecimento exercidoDATA_EXPORTEDVocê baixou seu JSONCONSENT_GRANTEDOpt-in por fonte (CV, LinkedIn, GitHub)CONSENT_REVOKEDRevogação de consentimentoPROFILE_UPDATEDEdição de campos do perfilCV_UPLOADEDPDF/texto de currículo enviadoCV_DELETEDCV apagado a pedidoBILLING_SUBSCRIPTION_CREATEDAssinatura ativadaBILLING_SUBSCRIPTION_CANCELEDCancelamento processadoBILLING_PAYMENT_FAILEDPagamento recusadoSECURITY_RATE_LIMIT_HITTentativa de abuso bloqueadaSECURITY_BUDGET_EXCEEDEDOrçamento de LLM excedidoSECURITY_INVALID_WEBHOOKWebhook não autenticadoOUTCOME_REPORTEDVocê reportou contratação/recusaOUTCOME_SURVEY_SENTPesquisa de outcome disparadaOUTCOME_SURVEY_DECLINEDVocê optou por não responderDAILY_BRIEFING_SENTResumo diário enviado por e-mailRetenção declarada
Cada TTL aqui tem cron rodando em produção. Não é "prometemos apagar", é "código apaga automaticamente".
Dados técnicos
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"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.
Direitos LGPD · 1 click
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.
Download JSON com perfil + diagnósticos + candidaturas + consentimentos + audit log seu.
GET /api/me/exportBaixar meu JSON →Cascade delete: snapshots, candidaturas, outcomes, consentimentos, perfil. AuditLog vira anônimo.
POST /meus-dados (server action)Ir pra Meus dados →Toda alteração em campo do perfil é versionada. Edita, vê histórico, audit log registra.
PATCH /api/me/preferencesConta →Desliga CV, LinkedIn, GitHub individualmente. Dado já estruturado fica até você pedir delete.
POST /api/me/preferencesMeus dados →Comparativo de mercado
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.
| Recurso | Player edtech-IA | Rede profissional global | Copiloto generalista | CareerTwin |
|---|---|---|---|---|
| Hospedagem em região BR | parcial | fora | fora | vercel · região BR |
| LGPD by-design (não só ToS) | parcial | GDPR-first | não declarado | decisão arquitetural |
| Export completo 1-click | não | não | não | sim |
| Delete cascade real | não | parcial | não | sim |
| Audit log público de eventos | não | não | não | 21 ações tipadas |
| IP nunca em texto puro | não público | não público | não público | sha256 + salt |
| Fórmula do score aberta | não | não | não | docs/ALGORITHMS.md |
Sub-processadores
LGPD art. 39: você tem direito de saber a cadeia de tratamento. Aqui está, sem letra miúda.
Encarregado · DPO
Dúvida, denúncia, exercício de direito específico, suspeita de vazamento. Resposta em ≤ 15 dias úteis (LGPD art. 19, § 1º).