A página de privacidade voltada à pessoa usuária para Transforme meu papel. O que lemos, o que descartamos, o que uma linha de auditoria contém, por que um ID de sessão anônima é pseudonímico e como funcionam salvar e excluir conta.
Uma única linha sem conteúdo é escrita por sessão na tabela transform_ingestions. Seu propósito é operacional: nos permite responder "quantas sessões foram concluídas com sucesso hoje, em quais jurisdições, em quais locales?" sem nunca registrar uma descrição de vaga.
Essa é a lista completa. A migração que cria esta tabela tem zero colunas que poderiam carregar conteúdo da descrição da vaga. Um teste de integração enumera uma lista de colunas proibidas e quebra o CI se alguma nova coluna parecer com conteúdo de descrição de vaga.
Toda sessão de Transforme meu papel gera um UUID aleatório — o ID de sessão. O ID é pseudonímico: é gerado por sessão, nunca ligado a um fingerprint, nunca derivado de um identificador e nunca reutilizado entre sessões. Uma sessão nova produz um UUID novo.
Quando você faz login no meio da sessão ou salva o plano, seu user_id é gravado na linha de auditoria e em qualquer plano salvo; antes do login, a sessão é totalmente anônima. O ID de sessão não é por si só identificador — é um handle interno para o armazenamento de sessão em memória.
Persistência zero. O texto atravessa a extração e é descartado imediatamente. Nenhum arquivo temporário, entrada de log ou linha de banco contém o texto.
Limite rígido de 60 minutos. Bytes passam por um caminho de processamento efêmero em memória; se um fallback de arquivo temporário precisar ser usado, uma varredura aplica o limite de 60 minutos. Após 60 minutos os bytes estão garantidamente fora, independente do estado do pipeline.
Salvar é só para registrados. A ação de salvar persiste os recursos estruturados — o envelope de candidatos extraídos, a resolução de mapeamento, a saída de síntese de lacuna, o pacote do plano — na tabela saved_transform_plans, chaveada pelo seu ID de usuário. Não persiste a descrição da vaga, a URL, os bytes de upload, o nome do arquivo ou qualquer outro campo no formato de conteúdo.
Um refinamento zod defensivo rejeita qualquer carga útil que carregue chaves no formato de conteúdo no momento da escrita, independentemente de como o ponto de chamada foi construído. Se um caminho de código futuro tentar passar um campo 'jdText' ou 'pasteContent' pelo endpoint de salvar, a escrita falhará com um erro de contrato de privacidade.
Se você ativar as notificações de mudança em um plano salvo, o resumo diário é enviado para o endereço de e-mail da sua conta. O e-mail lista os títulos dos seus próprios planos salvos que mudaram — ele é entregue apenas a você, proprietário do plano. Nunca registramos o endereço do destinatário nem qualquer conteúdo de plano salvo; um envio que falha é registrado apenas com o identificador da inscrição e o tipo de erro. Cada resumo tem um link de cancelamento em um clique, e cancelar a inscrição remove completamente o registro da inscrição.
Os modos colar-texto e upload são protegidos por uma marcação explícita de direitos. A marcação afirma que você detém os direitos de compartilhar o conteúdo — tipicamente porque você o autorou, foi publicado para distribuição geral ou seu empregador permite. O modo coleta-de-URL não é protegido pela marcação porque a coleta acontece contra a web pública com robots.txt respeitado. A marcação em si não é persistida como conteúdo; apenas mode='upload' ou mode='text-paste' é registrado na linha de auditoria.
Planos salvos e assinaturas de avisos de mudança caem em cascata na exclusão do usuário (ON DELETE CASCADE). Se você excluir sua conta, toda linha que referencia seu user_id em saved_transform_plans e transform_plan_subscriptions é excluída com a conta.
Linhas de auditoria se comportam de modo diferente: user_id é anulável com ON DELETE SET NULL. A linha operacional é preservada (para que a análise agregada por jurisdição ainda funcione), mas seu vínculo com sua identidade cai — a linha é anonimizada, não excluída. Se precisar excluir a linha de auditoria também, contate o suporte.
O painel de agente curado na visão do plano responde a perguntas a partir de um contexto pré-construído apenas com os candidatos estruturados. O contexto do agente nunca carrega a descrição da vaga, a URL ou os bytes de upload — isso é verificado nas 30 conversas curadas de amostra que acompanham a superfície (10 cada em EN / pt-BR / FR). O painel renderiza um indicador 'Esta conversa não é salva'; se você fizer login e salvar o plano, o indicador muda para 'Salvo na sua conta; a descrição da vaga não é retida'.
Um middleware de log compatível com Pino tira qualquer nome de campo que pareça com conteúdo (jdText, jdUrl, jdMarkdown, uploadBytes, rawJd, sourceUrl, extractedText, uploadFilename, mais 9 formatos adicionais adicionados durante a revisão de privacidade/legal) e redige strings parecidas com URL em campos de texto livre antes que os logs saiam da requisição. Isso é opt-in para a superfície Transforme meu papel — o scrubber não mascara campos de URL legítimos em outras partes do código.