2 pontos por GN⁺ 2024-12-29 | 1 comentários | Compartilhar no WhatsApp
  • Um POC que une scripts em Python e LLMs para automatizar o processo de busca de emprego, em que entradas repetitivas e a redação de e-mails personalizados viram gargalos, desde a coleta de vagas até a geração de e-mails de candidatura personalizados
  • A coleta de vagas começa com cópia manual de HTML, em vez de web scraping, contornando diferenças estruturais entre sites e a possibilidade de alucinações por LLMs
  • O HTML bruto passa por um parser e por prompts de LLM, sendo transformado em JSON estruturado com campos como job_title, job_company, job_skills e application_instructions
  • A geração da carta de apresentação recebe o currículo junto com os detalhes da vaga e é configurada para falhar quando faltam informações obrigatórias, evitando o envio de e-mails com cara de template
  • O POC conectou extração de vagas, parsing de descrições detalhadas e geração de candidaturas personalizadas, chegando no fim a um nível em que era possível enviar 250 candidaturas em 20 minutos

Candidaturas a vagas vistas como trabalho repetitivo

  • Candidatar-se a vagas envolve um fluxo contínuo de copiar e colar as mesmas informações, ajustar o currículo e escrever cartas de apresentação
  • Por causa dessa repetitividade e de um processo relativamente estruturado, foi considerado um bom candidato à automação
  • O fluxo básico é o seguinte
    • Encontrar vagas
    • Verificar requisitos
    • Pesquisar a empresa
    • Enviar currículo e carta de apresentação
    • Aguardar resposta
  • Como resultado da implementação, foi possível enviar 250 candidaturas a vagas em 20 minutos, e a pessoa diz ter recebido uma proposta de emprego antes de concluir o sistema

Como o POC foi construído

  • Obtenção da lista de vagas

    • A primeira etapa era reunir um grande volume de vagas
    • Tentativas de web scraping foram feitas, mas a estrutura variava entre os sites de emprego, aumentando o custo de automação
    • Também foi testada a abordagem de enviar a página web inteira para uma LLM organizar os dados, mas havia dois problemas
      • O custo era alto
      • Havia o desejo de evitar a possibilidade de a LLM alucinar requisitos da vaga
    • No fim, a opção escolhida foi copiar manualmente o HTML bruto
    • Foi aceita como uma abordagem simples, mas funcional
  • Limpeza do HTML bruto

    • Os campos necessários eram extraídos do HTML copiado e convertidos em dados estruturados
    • O formato-alvo era um JSON com chaves como job_link, job_id, job_role, employer, location, work_arrangement e salary
    • A abordagem consistia em mostrar ao ChatGPT uma amostra de HTML e o formato de saída desejado, deixando a criação do script de parsing a cargo dele

Parsing de informações detalhadas das vagas

  • Uma requisição GET era enviada para cada vaga para obter a descrição completa
  • A resposta vinha como HTML bruto, misturada a elementos da estrutura do site, como barra de navegação, pop-ups e rodapé
  • Um parser HTML separado foi escrito para manter apenas o corpo da vaga de fato
  • Alguns sites tinham etapas adicionais, como clicar em um botão para ver o e-mail do recrutador ou detalhes da empresa
  • Ao trabalhar com um site de vagas por vez, bastava entender o padrão daquele site uma única vez
  • Entre as requisições, foi configurado um atraso de 2 a 3 segundos para evitar bloqueio de IP

Criação de dados estruturados com LLM

  • As vagas têm componentes básicos parecidos, mas a localização de skills ou requisitos varia bastante entre os sites
  • Um prompt de LLM analisava o conteúdo HTML e o convertia em um objeto JSON válido
  • As chaves a serem extraídas eram as seguintes
    • contact_email
    • application_instructions
    • job_posting_text
    • job_posting_link
    • additional_info
    • job_title
    • job_company
    • job_department
    • job_location
    • job_skills
    • job_instructions
  • Como chaves opcionais, eram usadas hiring_manager_name, job_portal etc.
  • Foi solicitado que job_posting_text fosse convertido para formato Markdown

Prompt de geração da carta de apresentação

  • O ponto central de uma boa carta de apresentação foi tratado como contexto, inserindo na LLM tanto o currículo quanto os detalhes da vaga
  • O prompt exigia que o e-mail de candidatura fosse gerado em um formato pronto para envio
  • Ele foi projetado para retornar erro, em vez de criar um e-mail incompleto, quando informações obrigatórias estivessem ausentes
    • Campos obrigatórios: nome do cargo, nome da empresa, descrição da vaga, conteúdo do currículo
    • Campos opcionais recomendados: nome do recrutador, departamento, localização, método de candidatura, fonte de indicação, lista de skills exigidas
  • A saída era um objeto JSON, contendo status, error_message e email
  • email incluía os seguintes itens
    • Assunto
    • Corpo em HTML
    • Corpo em texto simples
    • Pontos principais abordados
    • Skills destacadas
    • Experiências do currículo compatíveis com os requisitos da vaga
    • Informações ausentes que, se existissem, poderiam fortalecer a candidatura
    • Análise do tom do e-mail
  • O corpo HTML foi limitado a tags básicas como p, br, b, i, ul e li, para compatibilidade com clientes de e-mail
  • Essa estrutura é um mecanismo para criar e-mails personalizados que conectam a experiência real aos requisitos da vaga, em vez de e-mails genéricos no estilo “vi sua vaga”

Envio e rastreamento de e-mails

  • A etapa final era enviar de fato os e-mails de candidatura gerados
  • As condições necessárias eram as seguintes
    • Envio de e-mails com aparência profissional
    • Rastreamento do histórico real de envios
    • Monitoramento das respostas dos recrutadores
    • Evitar classificação como spam
  • Na fase de testes, todos os e-mails eram enviados primeiro para uma conta de teste
  • Ao enviar para recrutadores reais, recomenda-se colocar a si mesmo em BCC para confirmar que o envio aconteceu
  • Na fase de POC, foi usado um provedor de e-mail simples, como Mailgun
  • A Parte 2 foi anunciada como tratando da rejeição da solicitação à AWS e da falha ao operar um servidor de e-mail próprio, ocorridas ao tentar criar um sistema completo de gestão de e-mails

Resultado do POC e próximos passos

  • O POC executava a extração da lista de vagas, o parsing e a geração de candidaturas personalizadas com alguns scripts em Python
  • O desafio seguinte era transformar os scripts em uma aplicação real
  • Os objetivos de expansão eram os seguintes
    • Processar vários sites de emprego
    • Rastrear o histórico de candidaturas
    • Gerenciar respostas por e-mail
    • Não ser bloqueado por sistemas de RH
  • A Parte 2 deve abordar o processo de construção da aplicação real, as decisões técnicas e os trade-offs

1 comentários

 
GN⁺ 2024-12-29
Opiniões no Hacker News
  • Há muito debate sobre quem tem mais responsabilidade pela situação atual, recrutadores ou candidatos, mas, do ponto de vista de quem procura emprego, não sei o que devo fazer
    Nos últimos seis meses, procurei emprego de forma bastante ativa e, como tenho mais de 10 anos de experiência em desenvolvimento de software, venho olhando principalmente vagas de desenvolvedor sênior. Não usei LLMs em nenhum momento no currículo ou nas cartas de apresentação, e só me candidatei a lugares onde eu achava que atendia aos requisitos e aceitaria uma oferta
    Ainda assim, não sei como sinalizar que 1) sou uma pessoa real, 2) a experiência e as habilidades do meu currículo são verdadeiras e 3) tenho interesse real naquela função. Mesmo fazendo isso, os resultados foram terríveis: fiz umas 10 a 12 triagens iniciais por telefone, passei por elas com facilidade, mas depois só cheguei às entrevistas finais umas 3 ou 4 vezes, e recebi 0 ofertas
    Fico me perguntando por que eu deveria continuar com esse método se ele não vai me levar a lugar nenhum. Não sei que motivo haveria para não mudar para uma abordagem de shotgun, disparando candidaturas automaticamente para todos os anúncios que mais ou menos batem com os requisitos; e o único outro jeito de sinalizar que sou alguém com experiência real é ter um conhecido dentro da empresa que possa me avalizar, mas isso quase nunca acontece

    • Há tempos vejo, em um grande Slack privado, pessoas desesperadas tentando candidaturas automáticas e uso de LLMs; a taxa de resposta é péssima, mas é comum compensarem isso com candidaturas em massa
      O problema é que, mesmo quando acabam conseguindo emprego, muitas vezes é em empresas ruins. Lugares com gerentes de contratação incompetentes que não conseguem distinguir texto ruim gerado por LLM de uma candidatura real, e com processos de entrevista em que trapacear com LLM é tão fácil que os colegas também acabam parecendo todos pilotos de LLM
      Dá para tentar, e pode ser melhor do que nada. Mas, se você espera um bom emprego em uma boa empresa, é bem provável que isso não entregue o resultado desejado
    • Cerca de 4 meses atrás eu era o gerente de contratação para 3 posições, e o volume de candidaturas falsas era inacreditável. 90% eram totalmente falsas ou tinham o mesmo texto de IA generativa, então acabei começando a olhar apenas currículos que tinham um link do LinkedIn funcionando
      Depois de ver currículos ruins demais, fiquei bem mais tolerante quando havia algo que parecesse indicar uma pessoa real, mesmo que os requisitos não batessem perfeitamente. Por exemplo, uma seção de hobbies pessoais. Há muitos conselhos dizendo para não incluir esse tipo de item, mas, em um mar de lixo falso e copiado e colado, isso acaba fazendo a pessoa se destacar
    • Lamento pela sua situação na busca por emprego, mas, pela minha experiência, quadros de vagas são quase inúteis. Especialmente agora, todas as vagas no LinkedIn recebem centenas, até milhares de candidatos, e Indeed, ZipRecruiter e Dice provavelmente estão igualmente saturados
      Na minha última busca, candidatei-me a quase 300 vagas, mas no fim consegui meu novo emprego porque um recrutador que conheci em um pequeno meetup de JavaScript me falou sobre a posição
      É só uma anedota, mas minha perspectiva definitivamente mudou; quando eu começar seriamente a próxima busca, pretendo ir a muitos meetups e ser muito mais ativo em open source
    • A situação é completamente insana, e acho que, se algo não mudar, haverá uma grande mudança na forma de contratar
      Não quero reescrever minha experiência recente, mas há um tópico de umas 6 semanas atrás em que descrevi isso concretamente: https://news.ycombinator.com/item?id=42137229
      Eu estava em uma boa posição e pude dedicar tempo a isso, mas, se precisasse de um emprego rapidamente, honestamente não sei o que teria feito
    • Eu iria na direção oposta: reduziria a automação e faria mais trabalho de campo
      Perguntaria às pessoas da minha rede se conhecem lugares procurando alguém com as habilidades necessárias, e entraria em comunidades online e offline alinhadas às minhas habilidades e interesses
      Se, por esse caminho, alguém que me conhece — ou alguém que conhece alguém que me conhece — fizer uma apresentação calorosa ao gerente de contratação, normalmente dá para ir para o começo da fila. Se eu estivesse procurando emprego agora, faria isso; fora isso, há ruído demais
      0: também funciona para startups: https://paulgraham.com/ds.html
  • Sou gerente de software e, de uma forma ou de outra, venho conduzindo entrevistas e contratações há 13 anos.
    No ano passado fiz duas contratações de engenheiros de software: a da primavera foi normal, e a do outono foi brutal. No outono houve uma enxurrada de candidatos e, olhando em retrospecto, a maioria parece ter usado IA de algum modo.
    No outono, a taxa de pessoas que passavam pela análise de currículo e pela triagem inicial por telefone subiu de repente, mas todos desabavam na entrevista técnica. A taxa de reprovação na entrevista técnica foi muito pior do que o normal.
    Tínhamos um recrutador dedicado, e não sei 100% quais ferramentas ele usava, mas no fim comecei a analisar os currículos manualmente, um por um. Eram centenas, então levou tempo, mas o problema de uma triagem inicial ótima e uma entrevista técnica péssima continuou.
    Então decidimos excluir candidatos que mencionavam muito IA, LLM e ciência de dados. Precisávamos classificar de algum jeito quase mil candidatos. Nosso caso de uso é um tanto específico: não envolve JavaScript nem parsers, e a economia de tempo também não é grande. Com isso, uma grande leva de candidatos saiu do processo e ele passou a parecer mais normal.
    Também mudamos as entrevistas de volta para somente presenciais. A triagem técnica inicial ainda é remota, mas antes da COVID as entrevistas eram 100% presenciais; depois ficamos híbridos, e agora nosso grupo voltou a exigir presença física.

    • Uma dica para quem contrata engenheiros para vagas remotas: mesmo que o candidato saiba que o processo é 100% remoto, diga que “pode haver uma avaliação técnica presencial”.
      Hoje há uma quantidade absurdamente grande de candidatos falsos, e a única maneira de fazê-los desistir por conta própria é avisar que talvez tenham que aparecer em algum lugar pessoalmente.
      Já aconteceu de dizermos: “Você mora em Flint, Michigan? Por acaso temos um funcionário a 20 minutos daí; você poderia encontrá-lo?”, e a pessoa de repente sair do processo.
      Há tantos golpistas estrangeiros explorando a onda de home office nos EUA que eles chegam a encobrir os candidatos reais, e isso é realmente grave.
    • Trabalho como contratado desde 2017 e desisti de usar agências de recrutamento para encontrar trabalho no Reino Unido.
      Na minha área, provavelmente estou perto de ser o especialista número 1 do mundo, e me candidato a funções que pedem explicitamente um SME nessa área. Não é uma questão técnica; embora não dê para saber de verdade, dá para dizer que estou anos-luz à frente dos outros candidatos. Não é arrogância, é como a realidade parece ser.
      Só que agora as agências nem sequer entram em contato. Acho que elas não leem meu currículo nem minha candidatura, e que isso acontece porque centenas de candidaturas chegam na primeira hora. Parece que pegam a primeira pessoa que pareça boa o suficiente, seguem com ela e vão preencher o próximo contrato.
      A conclusão é que, por melhor que você seja, não adianta nada se seu currículo não for visto. Especialmente se você não se candidatar nos primeiros 10 minutos; para ser visto, é preciso jogar esse jogo e automatizar as candidaturas.
      Então, se você não quer jogar esse jogo, a questão é como encontrar hoje empresas que precisem de suas habilidades.
    • Sou engenheiro de plataforma, e essa experiência é quase idêntica à nossa. Também precisamos filtrar candidatos em massa e, ao mesmo tempo, filtrar abusadores de LLM.
      Não sou contra usar LLMs em contextos apropriados, mas é um grande problema quando candidatos os usam de forma inadequada para contornar o processo. Tentamos impor o mínimo de carga possível nas entrevistas, fazer perguntas relevantes em vez de pegadinhas e atualizar o status o mais rápido possível.
      Mas muitos candidatos não parecem dispostos a retribuir a mesma cortesia. Esse comportamento nos leva a depender mais da nossa rede existente para encontrar candidatos “confiáveis”, o que pode criar vieses adicionais ou excluir injustamente candidatos que não têm rede de contatos. Somos uma organização remote-first, então todas as entrevistas são remotas.
      Daqui para a frente, penso em testar técnicas primitivas de IA adversarial, como compartilhar um diagrama na tela e adicionar anotações irrelevantes, deixando claro que são irrelevantes. Entrevistas presenciais também podem fazer parte da solução.
    • Fico me perguntando o que exatamente um gerente de contratação pode fazer para facilitar a vida de quem procura emprego. No máximo, melhorar a qualidade das respostas.
      Mesmo depois de seis entrevistas, candidatos rejeitados não recebem um único feedback positivo e são tratados como lixo por um e-mail de recusa sem alma. Do ponto de vista do candidato, não tenho nenhuma compaixão pela empresa que está me contratando, e vou usar tudo que puder, incluindo IA, se julgar que é uma forma mais eficiente.
      Para mim, um emprego é simplesmente uma transação comercial, e não me interessam sermões nobres de gerentes de contratação.
    • No Natal, encontrei um amigo que dá aulas como professor temporário em uma universidade local, e ele disse que, este ano, por causa do abuso de LLMs, reprovou mais alunos do que em toda a sua carreira docente anterior somada.
      Ele não usa ferramentas de detecção de LLM, mas diz que textos com sinais de uso de LLM são fáceis de identificar. Curiosamente, no tema específico dele, o ChatGPT usa em excesso algumas palavras obscuras pouco comuns, e essas palavras aparecem várias vezes nos ensaios dos alunos que abusaram da ferramenta.
      Ele também pegou alunos que citavam muitos artigos e livros fora da lista de leitura indicada, ou até livros que nem existem. Basta perguntar qual é a fonte e de onde tiraram o texto para pegá-los.
      Vejo muitos paralelos agora em recrutamento e entrevistas de engenheiros de software júnior. Tínhamos um problema de avaliação com boa reputação, usado por anos, mas agora está claro que muitos candidatos jovens obtêm a resposta com LLM. Quando se pede que expliquem a própria solução na entrevista, dizem que “não se lembram” de como funciona ou por que escolheram aquele método.
      Para quem trabalha remotamente há muito tempo, é triste. Vejo muito mais abuso descarado entre candidatos remotos, e quando os chamamos para uma entrevista presencial, os trapaceiros com LLM parecem se assustar e desistir imediatamente, mas isso custa muito tempo e dinheiro para todo mundo.
  • Do ponto de vista de um gerente de contratação, ser inundado por currículos enviados automaticamente é exatamente o que menos queremos
    Publiquei uma vaga recentemente e, em 2 dias, chegaram mais de 100 currículos; 99% estavam longe de ter aderência. Foi difícil filtrar tantos currículos para encontrar alguém que valesse entrevistar
    Quando há ruído demais, bons candidatos também podem acabar sendo ignorados ou rejeitados por engano, e assim o ciclo vicioso continua
    Sei que o mercado está ruim e há muitos candidatos, mas envios automáticos e bombardear sites de vagas não funcionam. Pelo menos não nos lugares importantes

    • Talvez não seja o caso da sua empresa, mas parece algo que as empresas contratantes trouxeram para si mesmas ao rejeitar imediatamente candidatos qualificados por IA, publicar vagas fantasma, sumir depois de entrevistas etc.
      Se um candidato qualificado precisa fazer centenas de candidaturas para conseguir marcar uma única entrevista, dá para culpá-lo por automatizar? Pelo contrário, se ele tem a iniciativa e a capacidade de automatizar isso bem, pode ser uma ótima contratação. Isto é, se ainda não tiver conseguido emprego
    • Quadros públicos de vagas sempre foram cheios de candidatos spam de baixo esforço, mas as ferramentas de IA amplificaram muito esse problema
      O mais triste é ver a apatia da IA e das redes sociais se espalhar para jovens mentorados. Faço mentoria voluntária há anos, e as turmas recentes foram contaminadas pela sensação de que o mercado de trabalho é apenas um jogo a ser otimizado
      É lamentável ver jovens inteligentes e motivados aprenderem a pensar sobre o mercado de trabalho em lugares como Reddit e TikTok. Lá, ensinam que se esforçar é tosco, e que a única forma de preservar a dignidade é dedicar menos esforço ao trabalho, mentir em entrevistas, testar os limites de quão pouco se pode trabalhar e atuar como se estivesse em uma demissão silenciosa. E racionalizam esse comportamento como culpa das empresas e dos CEOs, não como escolha própria
      A recente desaceleração do setor de tecnologia foi um grande choque de realidade para essas pessoas. O clima em algumas turmas mudou daquela apatia arrogante, nascida do mercado estranho de 2021–2022, em que se acreditava que mesmo sendo demitido daria para conseguir na semana seguinte um emprego novo com 20% de aumento, para serem demitidos por baixo desempenho e ficarem bastante humildes
      A nova versão dessa apatia é acreditar que, como a IA vai tomar os empregos de qualquer jeito, o jogo é enganar as candidaturas com LLMs, passar pelas entrevistas e, depois de contratado, aguentar o máximo de tempo possível
      O problema ficou tão sério que uma empresa retirou sua colaboração com o nosso quadro interno de vagas, citando a disseminação de candidaturas geradas por LLMs e trapaça evidente com LLMs durante entrevistas. Por outro lado, quem realmente aprende e se esforça de forma autêntica entra automaticamente em algo como o top 25% simplesmente por não depender de LLMs para comunicação e programação
      Não sei como isso termina. O mercado de trabalho parece continuar se dividindo entre empregos que levam o trabalho a sério e empregos em que, desde que ninguém seja pego, todo mundo só fica no pingue-pongue de LLMs
    • Por causa do spam automatizado de recrutamento e da ética básica frouxa do setor, a ponto de aparecerem posts no HN se gabando de apps que ajudam a trapacear em entrevistas com LLMs, alguns amigos que ajudam com contratações já voltaram às entrevistas presenciais
      O mais absurdo é que esses empregos são 100% remotos. As entrevistas acontecem em coworkings. Este é o mundo em que vivemos agora
    • Isso é uma resposta natural aos métodos de triagem automatizada que o lado das contratações vem usando há anos. Na corrida armamentista iniciada pelo lado das contratações, finalmente os dois lados ficaram um pouco mais equilibrados
      Claro que, como resultado, todo mundo sai perdendo, e a situação ficou pior do que se essa corrida armamentista nunca tivesse começado. Mas os gerentes de contratação deveriam ter pensado nisso antes de filtrar pessoas automaticamente. A responsabilidade é do lado das contratações
    • Fico pensando qual é a alternativa. Não parece ser “analise com cuidado e candidate-se a algumas vagas altamente relevantes”. Do ponto de vista do candidato, é difícil ver desvantagem em não jogar o jogo dos números
  • Sou uma pessoa que automatiza tudo e normalmente gosto desse tipo de coisa, mas conduzi minha busca de emprego de uma forma completamente diferente
    Em vez de sair espalhando candidaturas, passo cerca de uma semana pesquisando profundamente uma empresa onde quero trabalhar e identificando em que função eu entraria. Tudo é 100% manual e concentrado, e o número total de empresas não passa de 8
    Candidaturas indiscriminadas podem funcionar quando você é mais júnior, mas, quanto mais avançada a carreira, mais seletivo é preciso ser sobre onde gastar tempo com entrevistas. Porque a função é de longo prazo e tem grande impacto na vida

    • No fundo, eu sigo uma abordagem parecida. O problema é que uma candidatura bem pensada fica enterrada no meio de inúmeros candidatos. Muita gente também usa ferramentas parecidas com a mencionada acima
      As ferramentas usadas por recrutadores ou RH também são péssimas e fáceis de enganar. Basta espalhar estrategicamente palavras-chave e frases no currículo, mesmo sem experiência real. Como resultado, o gerente de contratação não consegue chamar bons candidatos para entrevista, e bons candidatos não conseguem oportunidades de entrevista
      O problema central não é apenas o sistema ser ruim, mas o fato de que, nos últimos 2–3 anos, tanta gente em TI perdeu o emprego que acabou não restando opção além de candidaturas indiscriminadas. De qualquer forma, é preciso ganhar o pão
      Isso não vai melhorar até que as contratações se recuperem e a demanda por trabalho aumente, enquanto alguns profissionais de TI migrem para outros setores e a oferta de mão de obra diminua. Parece o que aconteceu em 2000 e 2008
    • Parece uma abordagem nobre e boa, mas acho que bastaria levar um ghosting ou uma rejeição apressada para desistir dela
      Há motivos ruins demais para uma candidatura ser ignorada, então não acho que esse método funcione tão bem. A menos que você consiga chegar ao gerente por networking
    • Se você investe tanto esforço e mesmo assim recebe ghosting, não vale o investimento
    • Fico curioso para saber quando foi a última vez que esse método funcionou e qual era o contexto e o tipo de função para a qual você se candidatou
    • Fico curioso se, depois disso, você faz networking dentro da empresa para conseguir a entrevista ou se se candidata online. Gostaria de saber mais sobre a abordagem manual
      Acho que os dois métodos são válidos. Usei uma abordagem automatizada em namoro online e hoje sou casado, então funcionou
      Acho que uma abordagem automatizada para empresas funcionaria de forma parecida com namoro online. Só que, ao contrário do namoro online, sinto que, no caso de empresas, se você conseguir chegar à etapa de entrevista, uma abordagem fortemente direcionada pode funcionar melhor
      O maior motivo pelo qual uma abordagem direcionada não funciona tão bem em namoro é que você precisa descobrir com quem tem química. No trabalho, não é preciso descobrir esse tipo de coisa, ou pelo menos isso não é exigido no mesmo nível de intimidade de um relacionamento romântico
  • Eu também fiz assim e consegui um emprego em 3 meses
    Antes da automação, a parte mais tediosa era copiar e colar as informações relevantes na carta de apresentação, atualizar o conteúdo, criar o documento Word da carta e colocar uma cópia do currículo na pasta da respectiva empresa/vaga. Também adicionei automaticamente os detalhes da vaga à tabela do Notion, ou seja, ao quadro Kanban, onde eu acompanhava as candidaturas em aberto
    Antes, o processo inteiro levava de 30 a 45 minutos, mas depois passou a levar menos de 2 minutos. Não é que eu tenha me candidatado a mais vagas; passei a conseguir preparar as candidaturas em muito menos tempo, e usei o tempo restante para me concentrar em pesquisar a empresa e a função
    O ChatGPT tornou todo o processo muito fluido, e vivemos em uma época incrível

  • Se um gerente de contratação está sendo inundado por currículos, pode usar tarefas impopulares e instruções manuais como filtro

    1. Na página de envio da candidatura, coloque algo como “Todos os currículos ou cartas de apresentação devem copiar e aplicar a frase a seguir; se ela não estiver presente, a candidatura será excluída da análise”. Isso testa se o candidato realmente leu e seguiu as instruções, e permite rejeição automática com uma simples busca por string
    2. Para o 1% dos candidatos que seguiram as instruções, na etapa de filtro técnico, exija uma tarefa impopular que demonstre experiência prévia em programação. No meu caso, como desenvolvedor JavaScript, era uma tarefa de mover um nó DOM de uma posição para outra. Consegui reduzir 22 candidatos a 2, sem contar muito mais gente que desistiu no meio
    • Fico curioso se a tarefa de mover o DOM de uma posição de nó para outra é open-book
      O DOM pode ser percorrido de várias maneiras. Mesmo de olhos fechados, eu conseguiria improvisar algo com childNodes e nextSibling, mas a melhor opção provavelmente seria a classe TreeWalker. Já usei antes, mas não conseguiria escrever uma implementação funcional no quadro branco sem dar uma olhada rápida no MDN para refrescar a memória
      Se você filtrar candidatos apenas por terem memorizado padrões web cada vez maiores, vai deixar passar muitos bons candidatos
    • O primeiro método é algo que um LLM consegue resolver com a mesma facilidade
  • Não concordo com a ideia de que o segredo de uma boa carta de apresentação seja o contexto
    Sei que a situação mudou bastante desde que eu estava procurando emprego, há pouco mais de 4 anos, mas a carta de apresentação não é um lugar para mostrar que você leu a vaga e encaixou detalhes específicos do cargo em um template; é a única oportunidade de mostrar personalidade
    Acho que uma boa carta de apresentação pode mudar o jogo. Consegui meu primeiro emprego como desenvolvedor porque o gerente de contratação e os desenvolvedores seniores gostaram da minha carta. Também é um bom filtro de fit cultural. Eu não sou uma pessoa excessivamente séria e não quero trabalhar em uma empresa que espere isso de mim, então sempre incluo um pouco de humor
    No começo deste ano, quando precisei contratar um pouco, passei alguns minutos a mais lendo cartas de apresentação procurando algo que fugisse do convencional, mas não encontrei. Todo mundo seguia aqueles templates sem graça que aparecem ao pesquisar rapidamente no Google “como escrever uma carta de apresentação”
    O currículo não transmite se eu sou o tipo de pessoa com quem alguém gostaria de trabalhar. Havia 200 currículos de pessoas capazes de fazer o trabalho que eu queria contratar. Se você está competindo apenas pelo currículo com outras 199 pessoas de competência técnica equivalente, uma boa carta de apresentação pode ser uma vantagem competitiva
    Claro, sei que o ambiente de contratação hoje é completamente diferente, então minha perspectiva pode estar errada. Ainda assim, acho que ainda existem gerentes de contratação que leem cartas de apresentação e, se um dia eu começar a procurar um novo emprego, vou gastar alguns minutos a mais na minha

    • Pensei a mesma coisa ao ver parte do prompt. Sinceramente, se você fornecer amostras de cartas de apresentação que escreveu pessoalmente no passado, o resultado será muito mais pessoal, imitando seu estilo de escrita e sua personalidade
      O problema das candidaturas em massa é uma questão à parte; o candidato deve corresponder ao esforço que o gerente de contratação dedica. Se as primeiras etapas são automatizadas e só a fase final é lida por uma pessoa, a carta de apresentação gerada deve ser revisada manualmente
    • Depende muito da empresa. Já entrevistei mais de 200 pessoas e nunca vi uma carta de apresentação
  • É bem legal, mas parece mais útil como um projeto de demonstração caprichado do que como algo realmente funcional
    Para começar, o envio automatizado de candidaturas provavelmente não vai causar uma boa impressão em gerentes de contratação. Além disso, assim como você provavelmente não quer otimizar sua vida para se sair bem em primeiros encontros, também não deveria querer otimizar sua vida para procurar emprego
    A vida é mais plena quando você encontra o que quer e consegue sustentá-lo no longo prazo

    • Concordo
      Parece otimizar para o objetivo errado: passar pelo máximo possível de triagens, independentemente da adequação a muitas funções
      Pessoalmente, minhas experiências mais bem-sucedidas tanto na busca por emprego quanto trabalhando foram quando eu conhecia alguém dentro da empresa, conseguia contornar completamente a triagem inicial de currículos e enviava um currículo e uma carta de apresentação cuidadosamente adaptados, com forte apoio de pessoas que me conheciam
      Sei que nem todo mundo tem esse luxo, mas tentei manter networking constante dentro e fora do trabalho, e isso, em geral, ajudou a filtrar empregos ruins ou funções incompatíveis, poupando tempo dos dois lados
  • Estou há meses procurando emprego sem resultados, verificando manualmente o LinkedIn e o Indeed todos os dias para encontrar novas vagas, olhando os requisitos e conferindo se minhas habilidades e experiência se encaixam
    Esse processo também ajuda a entender quais áreas preciso reforçar. Depois pesquiso a empresa e o setor. Quando chego ao ponto de decidir que tenho interesse, que há bom encaixe e que estou pronto para me candidatar, já há centenas de candidatos. O LinkedIn mostra o número de candidatos
    Eu pensava: “só se passaram 3 dias, como isso é possível?”, mas o motivo é exatamente esse

    • Uma boa forma de verificar se suas habilidades e experiência se encaixam é esperar até chegar um e-mail de convite para entrevista
      A montanha-russa emocional de convencer a si mesmo sobre uma empresa e no fim não dar certo dói demais. E esse custo fica só com o candidato. É natural querer adiar isso até ter certeza de que, pelo menos em algum grau, há uma possibilidade que você pode controlar
      O resultado nunca depende inteiramente do seu próprio desempenho e das suas ações. Há muitas vagas para funções sem orçamento, empresas com contratação congelada e anúncios em que um candidato já aprovado só está esperando a proposta formal
      Acho que o esforço investido em pesquisar uma candidatura deveria ser uma função do esforço exigido do candidato para avançar à próxima etapa e do respeito que o empregador demonstra pelo candidato. O esforço necessário para uma triagem por telefone é muito baixo, e o respeito é quase zero
    • Também existem serviços manuais de candidatura. Literalmente há pessoas que fazem disso um trabalho, candidatando-se a vagas, e dá para encontrar gente oferecendo esse serviço no r/slavelabour
      Às vezes cobram um valor fixo por candidatura, às vezes uma porcentagem do primeiro salário do novo emprego
      https://www.reddit.com/r/slavelabour/search/?q=job+applicati...
    • É comum haver 100 candidatos na primeira hora
      Meu conselho para os dois lados é: não usem quadros de vagas; é melhor usar o próprio site
    • Ouvi dizer que o número de candidatos no LinkedIn não é nada do que as pessoas imaginam
      Não lembro os detalhes, mas desde então parei de levar isso a sério
    • Para referência, pela minha experiência, hoje o LinkedIn é provavelmente um dos piores lugares para uma pessoa real que realmente sabe trabalhar procurar emprego
      Como todo mundo simplesmente aperta o botão de candidatura em qualquer lugar para ver se alguma coisa pega, a relação sinal-ruído é um lixo completo. Se a empresa tem uma seção de carreiras no site, sempre se deve priorizar esse caminho
  • Quando vejo posts assim, fico pensando que eu estou fazendo algo errado, ou que eles estão fazendo algo errado
    Nunca enviei centenas de candidaturas. Quando procuro emprego, pesquiso algumas empresas em que quero trabalhar e escrevo algumas candidaturas bem pensadas; em geral pelo menos recebo resposta, e na maioria das vezes também sou chamado para entrevista
    Claro que tenho diploma universitário, mas muita gente aqui também deve ter. Moro em uma cidade de médio porte na Alemanha; se isso influencia, deveria tornar mais difícil encontrar emprego, não mais fácil
    Não estamos com falta de profissionais técnicos qualificados agora? Em muitos lugares, o critério de contratação parece ser “qualquer pessoa que entre pela porta”. Acho que nós também contrataríamos praticamente qualquer pessoa que saiba programar, seja confiável e consiga trabalhar em equipe

    • Há profissionais técnicos de sobra, mas faltam bons profissionais técnicos. É incrivelmente difícil distinguir os dois na etapa do currículo. Quando uma vaga é publicada online, chegam centenas de candidaturas em poucos dias
      Imagine que você é um bom profissional técnico: candidatou-se a uma empresa, mas outras 200 pessoas também se candidataram. Como a empresa precisa eliminar automaticamente alguns candidatos, seu currículo pode ir para o lixo por ter sido pego por uma heurística simples, ou porque você teve azar e eles descartaram a metade inferior sem nem olhar
      E agora, o que fazer? A questão passa a ser se você vai gastar muito tempo na semana seguinte repetindo esse processo, ou se vai baixar os critérios e se candidatar a mais 200 empresas
    • A Alemanha parece diferente. Aqui as coisas parecem acontecer muito mais por indicação boca a boca, então acho que o spam de LLM não se espalhou tanto quanto no Reino Unido ou nos EUA
      A maioria das vagas simplesmente não é anunciada tão publicamente, e algum amigo avisa sobre uma oportunidade dizendo algo como “conheço alguém que consegue fazer isso”
    • Eu também moro na Alemanha e, pela minha experiência, mesmo que haja escassez, isso não adianta se o que o RH pergunta não estiver refletido na experiência do currículo do último ano
      Mesmo que você tenha feito aquilo 5 anos atrás. E nas cartas de recomendação não pode haver nada negativo embalado como feedback positivo