Pular para conteúdo

Arquitetura de parsers

Objetivo

Os parsers reduzem preenchimento manual sem transformar detecção heurística em verdade absoluta. Toda extração passa por revisão assistida na interface.

Componentes

modules/parsers/
├── job_description_parser.py
└── resume_parser.py

modules/schemas/
├── job_posting.py
└── resume_profile.py

Job Description Parser

Extrai quando possível:

  • cargo;
  • empresa;
  • localização;
  • modalidade;
  • faixa salarial;
  • contrato;
  • senioridade;
  • skills obrigatórias;
  • skills desejáveis;
  • inglês obrigatório;
  • keywords ATS.

O parser usa labels, expressões regulares, catálogo leve de skills e normalização de texto. Campos não detectados permanecem vazios ou unknown.

Resume Parser

Suporta:

  • TXT por UTF-8 com fallback de caracteres;
  • PDF com PyMuPDF;
  • DOCX com python-docx.

Extrai nome, resumo, formação, experiências, projetos, skills, links e keywords. O conteúdo bruto permanece apenas na sessão atual e não é salvo pelo tracker.

Fluxo

flowchart LR
    A[Arquivo ou texto] --> B[Parser]
    B --> C[Schema Pydantic]
    C --> D[Revisão assistida]
    D --> E[Análise]

Limites

  • layouts complexos podem exigir correção humana;
  • OCR de PDF escaneado não faz parte da v0.4;
  • o parser não acessa LinkedIn ou fontes privadas;
  • nenhum campo detectado deve ser tratado como fato sem revisão.