Eduardo Sá
Voltar ao portfólioBack to portfolio

Automação da busca e do controle de candidaturasJob search and application tracking automation

Projeto próprio · 2026 · concepção, desenvolvimento e documentaçãoPersonal project · 2026 · design, development and documentation

O problemaThe problem

Buscar vagas manualmente todos os dias consome tempo e deixa passar oportunidades. As mesmas vagas reaparecem, fica difícil lembrar onde já me candidatei, e o controle acaba espalhado entre o site, planilhas e anotações.

Searching for jobs by hand every day takes time and misses openings. The same postings keep coming back, it is hard to remember where I already applied, and tracking ends up scattered across the website, spreadsheets and notes.

O que fizWhat I did

Construí uma rotina diária que faz a busca, guarda um histórico sem duplicatas, filtra o que não interessa e organiza o resultado em planilhas. As candidaturas feitas são registradas num banco de dados Access, que já era meu controle pessoal.

I built a daily routine that runs the search, keeps a duplicate-free history, filters out what is not relevant and organizes the result in spreadsheets. Applications are recorded in an Access database that was already my personal tracker.

Como funcionaHow it works

  1. BuscarSearchPesquisa vagas para vários termos de busca e uma localização definidos em um arquivo de configuração.Searches postings for several search terms and a location set in a configuration file.
  2. Descartar o que já foi vistoSkip what was already seenCompara cada vaga com o histórico pelo número da vaga e ignora as já candidatadas, consultando o acompanhamento de candidaturas do próprio site.Compares each posting with the history by job ID and skips the ones already applied to, using the site's own application tracker.
  3. Ler cada vaga novaRead each new postingExtrai título, empresa, local, modalidade, se aceita candidatura simplificada e o trecho de requisitos.Extracts title, company, location, work model, whether it accepts quick apply, and the requirements section.
  4. FiltrarFilterSepara vagas fora da localização desejada, para não poluírem a lista de pendentes.Sets aside postings outside the target location so they do not clutter the pending list.
  5. OrganizarOrganizeGera planilhas das vagas pendentes e das novas do dia, além de um ranking das qualificações mais pedidas.Produces spreadsheets of pending and new-today postings, plus a ranking of the most requested skills.
  6. Registrar candidaturasRecord applicationsSincroniza o status editado na planilha e grava as candidaturas no banco de dados Access.Syncs the status edited in the spreadsheet and writes applications to the Access database.

ResultadosResults

Vagas novas por diaNew postings per day
Média de 30 vagas por dia, com filtros (localização, Easy Apply e vagas já candidatadas) para enviar currículos às vagas mais aderentes.An average of 30 new postings per day, with filters (location, Easy Apply and already-applied postings) to send résumés to the best-fit openings.
Tempo economizadoTime saved
[preencher: minutos por dia, antes e depois][fill in: minutes per day, before vs. after]
Candidaturas registradasApplications recorded
[preencher: total até hoje][fill in: total so far]
[inserir print da planilha de vagas, sem dados pessoais][insert screenshot of the jobs spreadsheet, without personal data]

Cuidados de engenhariaEngineering care

Sites mudam o tempo todo. Em outubro de 2026 a página de busca mudou de estrutura e a rotina deixou de encontrar as vagas; o diagnóstico e o ajuste foram feitos no mesmo dia, mantendo o histórico válido. A rotina também reabre o navegador periodicamente para evitar travamentos e salva capturas de tela quando algo falha, para facilitar o diagnóstico.Websites change all the time. In October 2026 the search page changed its structure and the routine stopped finding postings; it was diagnosed and fixed the same day, with the history kept valid. The routine also restarts the browser periodically to avoid hangs and saves screenshots when something fails, to make diagnosis easier.

Cada versão é publicada com um registro de mudanças e uma impressão digital de cada arquivo, o que mostra com precisão o que mudou de uma versão para outra.Each version ships with a change log and a fingerprint of every file, showing exactly what changed from one version to the next.

FerramentasTools

  • Node.js
  • Puppeteer
  • JSON / CSV
  • Microsoft Access
  • WSL / Ubuntu
  • Git