v1.8.0 - Job Radar, Public Feeds & Wishlist Alerts¶
A v1.8.0 adiciona o Radar de Vagas ao SotuHire web-first. O objetivo é ajudar a pessoa a monitorar fontes públicas configuradas manualmente, comparar oportunidades com uma wishlist local e gerar alertas locais para revisão humana.
Objetivo da versão¶
Transformar o fluxo de intake em um fluxo mais proativo:
currículo + wishlist + fontes
→ rodada manual do Radar
→ normalização e deduplicação
→ comparação com wishlist/currículo
→ alertas locais
→ revisão manual
→ salvar na Caixa de Entrada ou Candidaturas
Fontes suportadas¶
| Fonte | Status v1.8.0 | Observação |
|---|---|---|
| RSS/Atom público | Implementado | Refresh manual, limitado por fonte e sem salvar automaticamente no tracker. |
| Página pública simples | Parcial | Usa leitura pontual segura quando o utilitário existente permite. |
| API oficial | Estrutura preparada | Depende de contrato oficial documentado e adapter específico. |
| CSV/JSON/manual/extensão | Integrado | Continuam entrando pela Caixa de Entrada e podem ser filtrados por origem. |
Limites de segurança¶
- Sem scraping de SERP.
- Sem crawler amplo.
- Sem login automático.
- Sem captura de cookie, token ou sessão.
- Sem bypass de CAPTCHA.
- Sem auto-apply.
- Fontes bloqueadas devem orientar importação manual.
- APIs com chave devem armazenar segredo apenas no backend local quando um adapter real existir.
Como funciona o Radar¶
O backend adiciona modules/radar com:
JobWishlist;RadarSource;RadarRun;RadarResult;RadarAlert;RadarMatch;- adapters documentados para RSS, página pública simples, API oficial e CSV/JSON recorrente.
A API expõe:
GET /api/v1/radar/wishlists
POST /api/v1/radar/wishlists
PATCH /api/v1/radar/wishlists/{wishlist_id}
DELETE /api/v1/radar/wishlists/{wishlist_id}
GET /api/v1/radar/sources
POST /api/v1/radar/sources
PATCH /api/v1/radar/sources/{source_id}
DELETE /api/v1/radar/sources/{source_id}
POST /api/v1/radar/run
GET /api/v1/radar/runs
GET /api/v1/radar/results
PATCH /api/v1/radar/results/{result_id}
POST /api/v1/radar/results/{result_id}/save-inbox
POST /api/v1/radar/results/{result_id}/save-tracker
GET /api/v1/radar/alerts
PATCH /api/v1/radar/alerts/{alert_id}
GET /api/v1/radar/stats
Todos usam o envelope { ok, data, warnings, request_id }.
Wishlist¶
A wishlist guarda cargos alvo, skills obrigatórias/desejáveis, senioridade, locais, modelo de trabalho, termos excluídos, empresas incluídas/excluídas e score mínimo para alertas.
Se não houver wishlist, a rodada pode usar palavras-chave rápidas, mas o produto orienta criar uma wishlist para alertas mais úteis.
Alertas¶
Alertas são locais e persistidos no mesmo store local do Radar. Eles indicam:
- novas vagas acima do score mínimo;
- duplicatas;
- erros de fonte;
- histórico de rodada.
Notificação de navegador continua roadmap.
Match com currículo e wishlist¶
O score final do Radar é calculado no backend. O frontend apenas exibe:
- Pontuação Radar;
- Pontuação de compatibilidade;
- ATS estimado;
- motivos do match;
- evidências usadas;
- lacunas;
- próximas ações.
Quando há currículo enviado na rodada, sinais do currículo entram como evidência adicional. Sem currículo, o score usa wishlist e texto da vaga.
IA opcional¶
A IA pode explicar por que a vaga combina usando o prompt job_radar_match_explanation_v1.
Regras:
- IA não altera score final;
- IA não inventa requisitos ou experiência;
- fallback local mantém a rodada funcional;
- nenhuma API key retorna ao frontend.
Manual vs automático¶
Automático local:
- refresh manual de fontes configuradas;
- normalização;
- deduplicação;
- cálculo local de score;
- geração de alertas locais.
Manual:
- escolher fontes;
- revisar cada resultado;
- salvar na Caixa de Entrada;
- salvar em Candidaturas;
- analisar compatibilidade;
- candidatar-se fora do SotuHire.
Limitações conhecidas¶
- Não há agendamento em background nesta versão.
- API oficial é arquitetura preparada, não conector real universal.
- Página pública simples depende das mesmas restrições de acesso seguro do importador de URL.
- Alertas são locais, sem push remoto.
- O Radar não substitui revisão humana da vaga.