Executando verificação de segurança...
3

Pitch: destilei o DeepSeek V4 por $5 pra classificar vagas no meu side project

Eai, gente!

Queria testar umas coisas novas em Rust e aprender web scraping com um problema real, então peguei um problema que eu mesmo tinha: encontrar vagas que pagam bem, recentes, com salário, visto etc.

O experimento virou o Hiretik:

https://hiretik.com/brasil

Hoje agrega cerca de 280k vagas tech de 18 ATS. Para o Brasil, ~15k vagas e 2k
remotas. Os números tão sempre mudando pq é um trabalho contínuo.

Tráfego

O Cloudflare reporta ~333k requests/dia. Desses, ~99.9% são scraper de IA (Meta, Llama, etc). Posso bloquear no robots.txt mas deixei como stress test free. O backend é só um binário Rust com Tokio e a stack é minimalista, aguenta de boa.

Stack

  • Binário Rust/Tokio em uma VPS Hetzner, systemd nativo
  • Postgres como banco e fila com FOR UPDATE SKIP LOCKED, sem Redis, sem fila externa.
  • Meilisearch só para busca full-text (impressionante como é mais fácil de mexer do que o ElasticSearch, é só um binário que vc manda umas informações e já tem buscas super rápidas)
  • Astro SSR no frontend, praticamente sem React e Javascript
  • Cloudflare na frente

Como to fazendo mestrado com ML e tenho uma 4090, usei o projeto pra brincar com ML também. Comecei extraindo as infos dos ATS tudo só com regex e heurística. No final destilei o DeepSeek V4 num MMBERT (custo-benefício ótimo, deu pra treinar tudo com $5) pra classificar salário, remoto/híbrido/presencial, tech vs não-tech, visto. Obviamente não ta perfeito mas foi legal.

LLM não substitui parser (pelo menos não ainda). Tinha tentado rodar só um Qwen2.5-7B local mas o MMBERT ficou bem melhor.

Bugs e gargalos

  1. Logos e descrições das empresas: maioria dos ATS não tem, tive que puxar de outras fontes e ainda falta um monte. Bem chatinho.
  2. vCPU durante ingestão: reparse completo (1.3kk linhas, 18 plataformas) leva ~15 min, +1k rows/seg.
  3. Disco: crescendo (to guardando os salários para saber se aumentaram ou diminuíram em 6 meses, um ano etc).

Feedback

  1. A página do Brasil está legal ou devo melhorar? O objetivo do site é achar vagas que pagam acima da média, então não dei muito valor pra empresas menores, mas posso mudar.
  2. Alguma empresa BR top faltando?

Se rolar interesse, posso escrever depois só sobre o pipeline ML, Postgres como queue ou outra coisa.

Carregando publicação patrocinada...
1

Muito interessante a stack e o desafio. A página está bem bacana. Pena que este tema esteja muito batido. Muito projeto pessoal de job boards, isso talvez afaste o pessoal desse tipo de post. Agradeço por compartilhar.

1

Valeu. Muito obrigado pelo feedback.
E sim, acho que com tantos projetos de currículo e job board o post passou despercebido, mas ainda recebi algumas visitas e pelo menos um comentário!

1

Fiquei com dúvida com relação ao DeepSeek por $5. Esse é o custo por milhão ou é um plano mensal? Também fiquei impressionado com o tempo total que a integração, muito rapido. Como você tem lidado com os bloqueios?

1

O Deepseek foi o custo para treinar meu próprio modelo. Com ~20k reqs da pra destilar algo próximo do DeepSeek V4 para tasks específicas (ainda consegue usar o cache deles para diminuir o custo)
Sobre bloqueios, a maioria dos ATS são amigáveis. Se vc não martelar a API eles aceitam de boa (a parada é guardar os dados raw, no caso de você querer reparsear no futuro). O objetivo dos ATS é divulgar as vagas mesmo. Eu tenho um proxy mas acabou que nem foi muito necessário.