Buscador de vagas de trabalho para desenvolvedores no Brasil
As vagas de desenvolvimento de software estão espalhadas por várias plataformas. O Vagas Dev coleta automaticamente as vagas dessas fontes, guarda tudo em um único banco e permite consultar e filtrar por cargo, empresa, nível, modalidade (remoto, híbrido, presencial), local e vagas para pessoas com deficiência.
O sistema é formado por uma API REST, que busca vagas novas periodicamente em segundo plano, e por uma interface web para navegar pelas vagas e abrir a candidatura no site de origem. Os dois serviços são distribuídos como imagens Docker e podem ser hospedados por qualquer pessoa: veja Execute você mesmo. Também existe uma instância pública:
Warning
O projeto está em fase inicial de desenvolvimento. Caso queira contribuir, abra uma issue ou PR no repositório.
Funcionalidades¶
- Busca periódica automática: a API coleta vagas novas assim que inicia e depois a cada
INTERVAL_SYNCminutos, sem intervenção manual. - Sem vagas duplicadas: vagas já registradas (mesmo ID externo e mesma fonte) são ignoradas, não importa quantas vezes a coleta rode.
- Nível da vaga deduzido do título: estágio, júnior, pleno ou sênior, quando o título indica.
- API REST centralizada: todas as vagas de todas as fontes em um único endpoint, com filtros por texto no título, empresa, fonte, local, modalidade, nível e vagas PCD, além de paginação. Veja os endpoints.
- Sincronização manual: dispare uma coleta sob demanda por endpoint, sem esperar o próximo ciclo.
- Interface web: lista de vagas com filtros, painel de detalhes, tema claro e escuro e layout para celular.
- Arquitetura extensível: uma nova fonte exige apenas um novo scraper; persistência e deduplicação já estão prontas.
Fontes suportadas¶
| Fonte | Método | Status |
|---|---|---|
| Gupy | API pública | Indisponível: o endpoint usado pelo scraper passou a responder 404 |
| Scraping da página de busca | Disponível (vagas remotas; sem empresa e descrição) |
Tecnologias utilizadas¶
- FastAPI: API REST assíncrona
- SQLAlchemy (async) + Alembic: ORM, acesso ao banco e migrations
- PostgreSQL: banco de dados
- APScheduler: agendamento das coletas
- httpx + BeautifulSoup: requisições HTTP e scraping
- Pydantic: validação e serialização de dados
- Next.js + React: interface web (exportada como site estático)
- Docker: execução da API, da interface e do banco