Pedi ao o3 para me traçar um perfil com links salvos no Pocket
(noperator.dev)- Com o fim do Pocket se aproximando, ao migrar artigos salvos, foi constatado que 878 links do Pocket acumulados ao longo de cerca de 7 anos, de 2018-07-12 a 2025-06-26, poderiam servir como dados para inferir um perfil pessoal
- Foi pedido ao o3 que, usando apenas a lista de URLs salvas, estimasse atributos pessoais como idade, gênero, local de residência, nível educacional, profissão, renda, orientação política, situação familiar e interesses de saúde
- O resultado apontou para alguém entre meados dos 30 e início dos 40 anos, morando na costa da Virgínia, engenheiro de software sênior/staff, casado e com vários filhos pequenos; idade, localização e tamanho da família bateram com bastante precisão
- As respostas do o3 pareceram mais convincentes quando o CSV foi colado diretamente no corpo do prompt do que quando anexado como arquivo; no modo com anexo, ele tendia a ficar excessivamente preso à análise de amostras em Python
- Ficou claro que até simples “curtidas” ou rastros de links salvos permitem inferências significativas, e que esse tipo de capacidade analítica está disponível para quase qualquer pessoa, não só para empresas de publicidade como Google ou Facebook
A lista de itens salvos no Pocket virou dados de experimento
- Como o Pocket será encerrado, ao migrar os artigos salvos foi constatado que a lista de links salvos era grande o bastante para ser usada como dados de preferências pessoais
- A exportação CSV do Pocket foi examinada rapidamente com
xsv- As colunas eram
title,url,time_added,tags,status - Um item de exemplo incluía o artigo salvo
The Uncertain Future of American Libraries - O total de itens salvos era 878
- O período de salvamento ia de 2018-07-12 a 2025-06-26
- As colunas eram
- O experimento de geoadivinhação com o o3 feito por Simon Willison veio à mente, e decidiu-se verificar o que seria possível descobrir sobre a própria pessoa usando apenas a lista de URLs
O pedido de profiling feito ao o3
- Foi usado o o3 em uma conversa temporária do ChatGPT, sem usar o recurso de memory do ChatGPT
- Foi pedido que ele fizesse um perfil da pessoa com base na lista de artigos salvos no Pocket
- As dimensões de inferência foram definidas de forma ampla, indo de dados pessoais a padrões de vida
- Idade, gênero, localização geográfica
- Nível educacional, setor/área de atuação, cargo
- Faixa de renda, orientação política, propensão a riscos
- Forma de aprendizado, dieta informacional
- Situação de relacionamento, se tem filhos e idade dos filhos
- Interesses de saúde, grandes transições de vida, padrões sazonais de interesse
O perfil pessoal criado pelo o3
- Com base nos temas, fontes e datas de salvamento dos artigos, o o3 gerou um best-guess portrait, mais próximo de uma “narrativa coerente” do que de uma inferência definitiva
- As principais estimativas demográficas foram as seguintes
- Idade: meados dos 30 a início dos 40 anos
- Gênero: masculino
- Localização: costa da Virgínia
- Educação: BS/MS em ciência da computação ou área semelhante
- Profissão: engenheiro de software sênior/staff especializado em segurança e infraestrutura
- Renda: cerca de US$ 150 mil a US$ 220 mil por domicílio
- Família: casado, 3 a 4 filhos pequenos, sendo pelo menos um toddler
- Como evidências, foram usados artigos técnicos sobre software, IA, cibersegurança e finanças aparecendo junto com textos sobre vida familiar, homeschooling e prática católica
- A psicologia e os interesses também foram estimados com relativa especificidade
- Orientação política: fiscalmente conservador, civil-libertário e socialmente tradicionalista
- Propensão a riscos: alta na carreira, média nas finanças
- Forma de aprendizado: autodirigida, centrada em texto, com preferência por textos longos e áudio
- Dieta informacional: 60% deep-tech, 20% finanças pessoais/FIRE, 10% criação de filhos e tarefas domésticas, 10% fé e cultura
- Trajetória de vida: transição de hacker IC puro para liderança técnica, vida centrada na família e uma fase orientada a FI
- A partir de pistas mais sutis, também inferiu fé, privacidade e self-hosting, inclinação a DIY, interesses de saúde como Zone-2 training e sono, além de impulso para escrever
Precisão e diferença no modo de entrada
- O resultado foi bastante preciso e, na primeira leitura, chegou a ser assustador
- Mesmo acreditando que a maior parte do dataset fosse composta por artigos do Hacker News, foi especialmente surpreendente que o o3 acertasse detalhes como faixa etária, localização e tamanho da família
- O experimento mostra o quanto é possível inferir apenas a partir de “curtidas” ou rastros de itens salvos
- A qualidade do resultado variou conforme o modo de entrada
- Quando os dados CSV eram colados diretamente no corpo do prompt, a resposta parecia mais precisa
- Quando o CSV era enviado como anexo, o o3 tendia a ficar preso demais a amostragem e análise em Python
- Nesse modo, a narrativa final parecia menos convincente
Recomendação personalizada e capacidade analítica ao alcance de todos
- A ideia de que empresas de publicidade traçam perfis de usuários com base em interesses expressos já é uma premissa familiar
- No passado, parecia que a capacidade analítica de tirar conclusões significativas a partir de múltiplos pontos de dados estava restrita a empresas como Google ou Facebook
- Agora, a mudança mais interessante é que o mesmo tipo de tecnologia pode ser usado publicamente por quase qualquer pessoa
- Esse perfil será usado para alimentar um sistema pessoal de recomendação de conteúdo
- Como referência, foi linkado um personal content recommendation system
- No processo de migração, houve uma mudança para o Wallabag e também uma transição do Inoreader para o FreshRSS
- A avaliação é que, em 2025, self-hosting ficou muito mais fácil do que no passado, e que o Caddy teve um papel importante nisso
- Para explorar o CSV, foi usado o xsv
- Embora, até 2 meses atrás, parecesse não ser mais mantido, a sensação é de que suas funcionalidades estão bastante completas
1 comentários
Opiniões no Hacker News
Depois de ler este texto, também me lembrei de que eu tinha um arquivo da minha conta do Pocket, então coloquei os mesmos prompts, com 4.200 itens, no o3, no Gemini 2.5 Pro e no Opus 4
A UI do ChatGPT bloqueou o envio dizendo que a entrada era grande demais. Eram cerca de 80 mil tokens, menos que o tamanho de contexto de 200 mil do o3, mas mesmo assim aconteceu
O Gemini 2.5 Pro acertou bem o perfil em termos de personalidade e interesses, mas errou as previsões de faixa etária, função, localização e se eu tinha filhos
O Opus 4 acertou de forma muito mais impressionante e previu corretamente Amsterdam como cidade onde moro, minha faixa etária e até meu status de relacionamento, mas não tratou da questão de eu ter filhos ou não
Os dois modelos falharam em acertar minha função, mas dá para entender. Na prática sou cientista de dados, mas gosto de escrever software, então leio bastante sobre a prática de engenharia de software; como não tenho oportunidade de fazer esse tipo de coisa na empresa, acabo programando projetos pessoais e precisei aprender bastante sobre design de sistemas etc. Por isso, ambos me viram como engenheiro de software
No geral foi um experimento divertido, e chamou a atenção o fato de ambos os modelos terem apontado fotografia como meu principal hobby. Mas, se tivessem visto também meu histórico de visualização do YouTube, provavelmente teriam dito tênis com confiança. Juntar o histórico de visualização do YouTube com o arquivo do Pocket parece interessante, já que os temas e interesses que costumo consumir em vídeo são diferentes dos que consumo em texto, mas obter esses dados não parece fácil
Este texto é um bom exemplo:
https://takeout.google.com/settings/takeout/custom/youtube?p...
Depois, combinei
pupejqpara fazer o parsing dos títulos dos vídeos no arquivo HTML:cat watch-history.html \| pup '.outer-cell .mdl-grid .content-cell:nth-child(2) json{}' \| jq -r '.[] .children[0] | select(.tag != "br") | select(.text | startswith("https://www.youtube.com/watch?v=") | not) | .text' \> videos.txtIsso não quer dizer que o trabalho que você faz hoje na empresa não possa ser transferido para uma trilha de função relacionada
A maior coisa que aprendi com minha exportação do Pocket foi que 99% dos textos estavam como não lidos. Não sei muito bem o que dá para inferir de mim com isso além de uma coleta compulsiva de links :D
Deve haver muitos dados assim; por exemplo, o grafo de recomendações da Amazon poderia atribuir pesos diferentes a itens na lista de desejos e a itens comprados
Hoje em dia, sinto que muita gente está convergindo para a ideia de analisar os próprios dados com IA, assim como empresas usam nossos dados para oferecer conteúdo hiperpreciso
Recentemente li https://labs.rs/en/browsing-histories/ e apliquei isso ao meu histórico completo de navegação
Fiz a mesma coisa com os históricos de conversas do ChatGPT/Claude, e o mais assustador foi deixar um LLM ver meu histórico de comentários no Reddit
A principal dificuldade é ter uma janela de contexto grande o bastante e rastrear o contexto entre várias fontes de dados. Um método que estou explorando é usar um grafo de conhecimento para acompanhar o perfil do usuário. Dá para comprimir padrões de comportamento em uma estrutura consultável, mas a construção do grafo em si vira um problema computacional
A maioria das startups de IA com que trabalhei recentemente acabou chegando a algo como “dar ao LLM acesso a um banco de dados vetorial feito de um conjunto de documentos de texto e a um grafo de conhecimento”. Os documentos de texto podem ser faturas, documentos jurídicos, documentos fiscais, relatórios diários, transcrições de reuniões, código etc.
Espero que surjam sistemas de recomendação de conteúdo pessoal ou de profiling baseados em IA. O incentivo econômico é o oposto do modelo das big techs. Em vez de otimizar engajamento e receita de anúncios, otimiza a utilidade para o usuário
Na era dos leitores RSS, eu consumia muito conteúdo curado de tecnologia e design, e isso me ajudou a desenvolver bastante meu gosto e conhecimento nessa área. Também ajudou a me conectar com pessoas legais e interessantes
Um app de que gosto é https://www.dimensional.me/, mas a abordagem de MBTI e testes de personalidade poderia ser mais rigorosa. Não um teste de personalidade; dá para imaginar colocar no sistema tudo o que consumo, escrevo e faço em dispositivos digitais, e atualizar continuamente um grafo de conhecimento sobre mim
Lendo milhares de textos no ensino médio, foi realmente útil para construir modelos mentais cada vez melhores de como a tecnologia funciona. Muita coisa mudou, mas boa parte dos modelos que criei naquela época ainda é bem precisa e útil quando quero me aprofundar nas áreas que me interessam
Claro, uma prisão confortável é melhor do que uma prisão de engajamento, mas às vezes talvez seja preciso sair dela
A curadoria da era dos leitores RSS não era feita por pessoas com quem você nem sempre concordava?
Criei uma ferramenta parecida que faz profiling de contas do HN e tira sarro delas: https://hn-wrapped.kadoa.com/
É engraçada e às vezes meio assustadora
Edit: o nome de usuário diferencia maiúsculas de minúsculas
Ainda assim, foi bem preciso:
Predictions
Personal Projects
After a deep dive into archaic data storage, you'll finally release 'Magnetic Tape Master 3000' – a web-based app that simulates data retrieval from a reel-to-reel, complete with authentic 'whirring' sound effects. It'll be a niche hit with historical computing enthusiasts and anyone who misses the good old days of physical media.
Totalmente brutal
“Você vai descobrir um buraco negro de upvotes do HN até então desconhecido. É onde todos os comentários bem estruturados e sutis sobre instabilidade econômica são sugados para o esquecimento, enquanto ‘Show HN: minha lista de tarefas feita em Rust’ recebe 500 pontos.”
É cruel, mas ficou bem feito
Além disso, é bem engraçado
Tenho me interessado muito por esse tipo de coisa recentemente. Isso inclui não só textos salvos no Pocket, mas também meta-análise dos históricos de conversas do ChatGPT/Gemini/Claude
Estou usando um script de resumo RSS hiperpersonalizado e descobri que os feeds RSS com mais itens realmente relevantes para mim são bem diferentes daqueles que leio casualmente
A próxima coisa que quero tentar é criar um modelo de mundo generativo alinhado aos meus interesses e à relevância para mim. Diferentes partes desse modelo de mundo poderiam ser atualizadas e investigadas em ciclos diferentes
Assim, para mim, “notícias” passariam a ser o diff das mudanças que uma notícia causa nesse modelo de mundo. Além disso, como eu poderia sempre ter uma versão local e offline do modelo de mundo atual, isso parece útil para filtrar ou ordenar caixa de entrada, calendário, mensagens, tweets etc. com um modelo local
Antigamente, por diversão e curiosidade, fiz um pequeno script que fazia esse tipo de coisa com perfis do HN. Ele usava o histórico de posts e comentários para inferir perfil, como localização, orientação política, carreira, idade e gênero
A principal motivação foi ver opiniões surpreendentes em várias threads de comentários e ficar curioso sobre de onde elas poderiam ter vindo. Não tenho nenhuma ideia de quão precisos os perfis eram, mas foi um experimento interessante para ver a capacidade dos LLMs de fazer esse tipo de coisa
Do ponto de vista de alguém com um contexto familiar católico mais de esquerda, achei interessante ele ter julgado como conservador por causa de católico. Parece que esse tipo de católico é mais comum no nordeste dos EUA
Isso diz algo sobre qual é a importância média da religião em 2025
Hoje não sou católico, mas aquela igreja dos anos 80 e 90 era uma boa igreja
Se houver centenas de links salvos em uma lista plana, provavelmente é um depósito honesto chamado “ler depois”; dá para fazer a IA ou processamento de linguagem natural classificar tudo, para facilitar apagar itens que já não interessam
Texto interessante. Estranhamente, me deu vontade de ter usado mais o Pocket
Como observação lateral, estou ficando realmente cansado do tom padrão que aparece nas respostas de LLMs. Dá para reconhecer o formato típico de uma saída tagarela:
Frase batida! Depois de várias palavras que um humano comum talvez dissesse, finalmente vem a resposta essencial de que 2 mais 2 é 4. Mais palavras que soam plausivelmente humanas!
Entendo, claro, que internamente é assim que isso funciona de verdade. Pela natureza do treinamento, um LLM precisa tatear de forma prolixa até chegar ao ponto. Mas não há esperança de remover isso com um pós-processamento para cortar o supérfluo? Quero destilar só a resposta real dentro do motor de inferência, sem usar outra máquina de corpus linguístico
É como o velho problema das receitas na internet. O que eu quero é isto:
500g wheat flour
280ml water
10g salt
10g yeast
Mas o que recebo na prática é isto:
It was at the age of five, sitting
on my grandmother’s lap in the
cool autumn sun on West Virginia
that I first tasted the perfect loaf…
As pessoas dizem que querem uma coisa, mas o comportamento real e o dinheiro vão para outro lugar
Concordo que existe enrolação desnecessária. Mas não acho que “só me dê a receita” seja o que as pessoas realmente querem. E também não acho que esse ponto de vista seja uma exceção peculiar. Você já quis de fato receber uma receita sem contexto nenhum assim e prepará-la?
A OpenAI disse que está trabalhando para tornar as saídas do ChatGPT mais configuráveis
Não sou especialista, mas, nos modelos que “pensam”, eu gostaria que essa etapa de concisão acontecesse no fim. Internamente, pode pensar de forma tão prolixa quanto quiser; para mim, basta dar a resposta
Tenho pensado na possibilidade de organizar todas as minhas abas com um LLM. Sou um daqueles terríveis colecionadores de abas que deixou o contador “:D” no celular por tempo demais
Normalmente faço uma limpeza geral periodicamente, mas há muito tempo não tinha motivação para isso. Só preciso de um jeito fácil de despejar as abas em algo como um CSV, como fizeram com o Pocket
10 threads de
gpt-4-nanoclassificaram lotes de 10 favoritos cada, e processaram 10.000 favoritos em poucos minutos