- Título:
- job-radar
job-radar
Varre sites de vagas, descarta o que não combina com o seu perfil e publica as compatíveis no Discord, rodando sozinho algumas vezes por dia. Python puro, sem dependências: filtros duros decidem o que passa, uma pontuação de 0 a 100 ordena o resto, e as qualificações saem do próprio currículo em markdown.
Problema
Procurar vaga é rolar listas longas em vários sites, repetindo os mesmos cortes de senioridade, modalidade e salário a cada visita, e reencontrando a mesma vaga anunciada em duas fontes.
Decisões técnicas
Filtros duros e pontuação separados: o filtro responde "eu me candidataria a isso?" e descarta, a pontuação só ordena o que sobrou, para uma vaga ruim não subir somando critérios secundários. As qualificações vêm do currículo, e não de uma lista paralela que envelheceria escondida. Quando nada passa, o canal recebe o funil da varredura, para silêncio nunca confundir "não achou" com "não rodou". Os testes de conector usam respostas reais gravadas, e os conectores respeitam robots.txt e pausam entre requisições.
Resultado
Publicado no GitHub, com conectores para Gupy, repositórios de vagas no GitHub, Programathor e Sólides. Roda por timer do systemd ou cron.
Links
---
title: job-radar
url: https://nandomoreira.dev/lab/job-radar
collection: lab
tech:
- Python
- pytest
- Discord
- systemd
date: 2026-09-28
---
# job-radar
Varre sites de vagas, descarta o que não combina com o seu perfil e publica as compatíveis no Discord, rodando sozinho algumas vezes por dia. Python puro, sem dependências: filtros duros decidem o que passa, uma pontuação de 0 a 100 ordena o resto, e as qualificações saem do próprio currículo em markdown.
## Problema
Procurar vaga é rolar listas longas em vários sites, repetindo os mesmos
cortes de senioridade, modalidade e salário a cada visita, e reencontrando a
mesma vaga anunciada em duas fontes.
## Decisões técnicas
Filtros duros e pontuação separados: o filtro responde "eu me candidataria a
isso?" e descarta, a pontuação só ordena o que sobrou, para uma vaga ruim não
subir somando critérios secundários. As qualificações vêm do currículo, e não
de uma lista paralela que envelheceria escondida. Quando nada passa, o canal
recebe o funil da varredura, para silêncio nunca confundir "não achou" com
"não rodou". Os testes de conector usam respostas reais gravadas, e os
conectores respeitam robots.txt e pausam entre requisições.
## Resultado
Publicado no GitHub, com conectores para Gupy, repositórios de vagas no
GitHub, Programathor e Sólides. Roda por timer do systemd ou cron.
## Links
- Repo: https://github.com/nandomoreirame/job-radar