Pular para conteúdo

Técnico

Stack observada

  • Python 3.12 e Django 5.
  • PostgreSQL, Django ORM e usuário customizado accounts.User.
  • Celery, Redis e Celery Beat para processamento assíncrono e agenda.
  • Django REST Framework, drf-spectacular, autenticação por token e sessão.
  • Django Templates, crispy-forms, Bootstrap 5 como pacote de formulário e componentes de interface .holo-*.
  • Integração OpenAI configurável (padrão gpt-4o-mini), requests/BeautifulSoup para fontes HTML e bibliotecas de PDF/Excel para relatórios.

Configuração

As configurações ficam em config/settings/ com base comum e módulos específicos de desenvolvimento, produção, Contabo, Hostinger e Railway. python-decouple lê variáveis de ambiente. O fuso configurado é America/Sao_Paulo; o banco padrão é PostgreSQL.

Processamento

JobSearchService controla sessão ativa e cooldown antes de enviar a tarefa Celery. Adaptadores de apps/scraper/sources/ normalizam resultados; JobPosting usa unicidade conjunta de source e external_id para deduplicação. A análise de IA grava score, resumo, pontos positivos/negativos e instante da análise na vaga.

Persistência e permissões

As entidades do DP usam chaves inteiras padrão do Django. Busca e vagas pertencem ao usuário via sessão; interações e consultas também referenciam usuário. A API do domínio jobs restringe cada usuário aos próprios registros; os recursos do DP usam permissões Django concedidas aos grupos do domínio.

Referências