Skip to content

Repository files navigation

CV Optimization System

Sistema de otimização de CVs com adaptação dinâmica baseada em vagas e geração de pacotes mobile-friendly.

Estrutura de Diretórios

cv-optimization/
├── profiles/                      # Diretório para perfis de usuários
│   └── <nome_perfil>/            # Crie uma pasta para cada pessoa
│       ├── CV_Base.md           # CV base em Markdown
│       └── output/              # CVs personalizados e pacotes
├── search_jobs.py                # Busca de vagas
├── adapt_cv.py                   # Adaptação de CV
├── cv_optimization_workflow.py   # Workflow completo
├── generate_application_package.py # Gera ZIP mobile-friendly
├── jobs_history.py               # Gerenciamento de histórico
├── md_to_pdf.py                  # Conversão Markdown → PDF
├── .gitignore
└── README.md

Configuração Inicial

1. Criar Perfil

Crie uma pasta para seu perfil em profiles/:

mkdir profiles\meu_perfil

2. Adicionar CV Base

Coloque seu CV em Markdown na pasta do perfil:

profiles/meu_perfil/CV_Base.md

Formato do CV Markdown:

Seu Nome
Seu Cargo / Título
Sua Cidade, Estado, País
Seu Telefone | Seu Email | Seu LinkedIn

## ABOUT

Breve descrição profissional.

## CORE COMPETENCIES

Lista de competências separadas por |.

## EDUCATION

Sua formação.

## PROFESSIONAL EXPERIENCE

Suas experiências profissionais.

3. Instalar Dependências

pip install markdown xhtml2pdf PyPDF2 googlesearch-python

Como Usar

1. Buscar Vagas

Modo Manual (cole URLs):

python search_jobs.py --manual --urls "url1,url2,url3" --location "São Paulo"

Modo Arquivo (carregar de JSON existente):

python search_jobs.py --from-file vagas.json

Output: jobs_[timestamp].json com lista de vagas encontradas.

Filtro automático: Vagas do Gupy (gupy.io) são excluídas automaticamente.

2. Workflow Completo

python cv_optimization_workflow.py --profile meu_perfil --from-file vagas.json

Output:

  • CVs personalizados em profiles/meu_perfil/output/session_[timestamp]/
  • Pacote ZIP com HTML mobile-friendly em profiles/meu_perfil/output/[perfil]_applications_[timestamp].zip

3. Histórico de Vagas

O sistema mantém um histórico (jobs_history.json) para evitar processar a mesma vaga múltiplas vezes.

Ver estatísticas:

python jobs_history.py --stats

Limpar histórico:

python jobs_history.py --clear

Forçar reprocessamento:

python cv_optimization_workflow.py --profile meu_perfil --from-file vagas.json --force

4. Adaptação de CV Manual

python adapt_cv.py --cv-base profiles/meu_perfil/CV_Base.md --job-description job_desc.json --output CV_Adaptado.md

5. Geração de Pacote Mobile

python generate_application_package.py --mapping job_cv_mapping.json --output applications.zip

Tecnologias

  • Python 3.11+
  • PyPDF2 - Extração de PDF
  • markdown + xhtml2pdf - Geração de PDF
  • zipfile - Criação de pacotes
  • HTML/CSS - Template mobile-friendly

Notas

  • O sistema não cria competências falsas - apenas reorganiza seções do CV para destacar competências relevantes à vaga
  • CVs personalizados são salvos em sessões timestamped
  • O pacote ZIP funciona offline no celular (exceto links de candidatura)
  • Vagas do Gupy são automaticamente filtradas (hard exclusion)

About

Helps you sort Linkedin job offers and optimizes your CV for each one of them, only rewriting it so your relevant experiences are highlighted and you use the necessary keywords

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages