27/08/2025

Documentação Completa: CurriculoATSPro

Voltar
Sumário do artigo

1. Visão Geral e Arquitetura da Ferramenta

1.1. Propósito do Negócio

O CurriculoATSPro é uma aplicação web projetada para resolver um problema central no mercado de trabalho moderno: a dificuldade que muitos profissionais têm em criar currículos que sejam não apenas visualmente atraentes, mas também otimizados para passar pelos Sistemas de Rastreamento de Candidatos (ATS - Applicant Tracking Systems).

A ferramenta funciona como um assistente de carreira inteligente, guiando o usuário através de um processo estruturado de coleta de dados e utilizando Inteligência Artificial para analisar, sugerir melhorias e, finalmente, gerar um currículo profissional pronto para o mercado.

1.2. Infraestrutura e Tecnologias

A aplicação é construída sobre uma pilha de tecnologias Python robusta e moderna, focada em escalabilidade e manutenibilidade.

  • Backend (Lógica do Servidor):

    • Framework: Flask, um microframework Python leve e poderoso, ideal para construir aplicações web de forma rápida e organizada.
    • Banco de Dados: SQLAlchemy (como ORM) com SQLite (para desenvolvimento) e Flask-Migrate para gerenciamento das alterações no esquema do banco de dados. Esta estrutura permite uma fácil transição para bancos de dados mais robustos como PostgreSQL em produção.
    • Autenticação: Flask-Login para gerenciamento de sessões de usuário e Flask-Bcrypt para a criptografia segura de senhas.
    • Formulários: Flask-WTF para a criação de formulários seguros, com validação de dados e proteção contra ataques CSRF.
  • Frontend (Interface do Usuário):

    • Estrutura: HTML5 e JavaScript (Vanilla JS) para interatividade.
    • Estilo: Bootstrap 5, um framework CSS “mobile-first” que garante que a aplicação seja bonita e totalmente responsiva em qualquer dispositivo (celulares, tablets e desktops).
    • Templates: Jinja2, o motor de templates padrão do Flask, que permite a criação de páginas HTML dinâmicas.
  • Inteligência Artificial:

    • Provedor: Google Gemini, acessado através da biblioteca google-generativeai. Utilizamos modelos avançados como o gemini-pro para tarefas de geração e análise de texto.
    • Integração: A comunicação com a IA é feita através de chamadas de API seguras a partir do backend, garantindo que a chave de API nunca seja exposta ao navegador do cliente.
  • Geração de Documentos:

    • Biblioteca: WeasyPrint, uma ferramenta poderosa que converte o HTML e CSS do template do currículo em um arquivo PDF de alta qualidade.

1.3. Como a Aplicação Funciona (Fluxo de Dados)

  1. Registro e Login: O usuário cria uma conta. Seus dados são salvos de forma segura no banco de dados.
  2. Criação do Currículo (Plataforma): O usuário acessa a plataforma em etapas. Ao preencher os formulários, o JavaScript no navegador cria uma experiência interativa (adicionando/removendo campos).
  3. Salvamento no Banco de Dados: Quando o usuário clica em “Salvar e Analisar”, todos os dados do formulário são enviados para o servidor Flask. A view (app/core/views.py) valida os dados e os salva de forma estruturada nas tabelas do banco de dados (Resume, WorkExperience, etc.).
  4. Análise de IA (Primeira Vez): Imediatamente após salvar, o servidor faz uma chamada para a API do Google Gemini, enviando os dados do currículo. A IA retorna uma análise estruturada (em formato JSON), que é então salva no banco de dados junto com o currículo do usuário.
  5. Dashboard de Carreira: O usuário é redirecionado para o dashboard. A view do dashboard simplesmente lê os dados do currículo e a análise de IA já salva do banco de dados e os exibe. Nenhuma chamada de IA é feita ao carregar esta página, tornando-a rápida e eficiente.
  6. Interações de IA no Dashboard:
    • Chatbot: Quando o usuário envia uma mensagem no chat, o JavaScript envia essa mensagem para uma rota de API no Flask. O servidor então faz uma nova chamada à IA, incluindo o contexto do currículo, e retorna a resposta para ser exibida no chat.
    • Refazer Análise: Clicar neste botão aciona uma rota específica que reexecuta a função de análise de IA, atualiza os dados no banco e recarrega a página.
  7. Geração de PDF: Ao clicar em “Baixar PDF”, o navegador acessa uma rota específica (/resume/generate/<id>). O servidor busca os dados do currículo no banco, renderiza um template HTML especial com esses dados e usa a biblioteca WeasyPrint para converter esse HTML em um arquivo PDF, que é então enviado de volta para o navegador para download.

2. Guia de Utilização da Ferramenta (Para o Usuário Final)

2.1. Criando sua Conta

  1. Acesse a página inicial e clique em “Registrar”.
  2. Preencha seu nome de usuário, e-mail e crie uma senha segura.
  3. Após o registro, você será redirecionado para a página de Login. Use seu e-mail e senha para acessar a plataforma.

2.2. Preenchendo seu Currículo na Plataforma

Após o primeiro login, você será levado diretamente para a plataforma de criação. A plataforma é dividida em 4 etapas para facilitar o preenchimento:

  • Etapa 1: Informações Pessoais: Preencha seus dados básicos de contato.
  • Etapa 2: Resumo Profissional: Escreva um parágrafo sobre você. Se tiver dúvidas, o Agente de IA ao lado dará dicas sobre o que escrever.
  • Etapa 3: Carreira e Formação:
    1. Clique em “Adicionar Experiência” para criar um card para cada um dos seus empregos anteriores. Preencha os campos e, se desejar, clique no botão “✨” para pedir à IA que ajude a reescrever a descrição de suas atividades de forma mais impactante.
    2. Faça o mesmo para sua Formação Acadêmica.
    3. Você pode adicionar quantos itens forem necessários e removê-los clicando no botão “X”.
  • Etapa 4: Habilidades e Outros:
    1. Nos campos de Habilidades e Certificações, digite um item e pressione “Enter” ou vírgula para adicioná-lo como uma “tag”.
    2. Clique em “Adicionar Idioma” para listar os idiomas que você fala e seu nível de proficiência.

Ao final, clique em “Salvar e Analisar Currículo”. Sua primeira análise de IA será gerada neste momento.

2.3. Utilizando seu Dashboard de Carreira

Após salvar, você terá acesso ao seu dashboard, que é o seu centro de comando.

  • Análise de Competitividade: Veja sua pontuação ATS, o feedback da IA, seus pontos fortes e o que pode ser melhorado. Se você editar seu currículo e salvá-lo novamente, esta análise será atualizada.
  • Baixar e Editar: Use os botões de ação para baixar o PDF otimizado do seu currículo ou para voltar à plataforma e fazer ajustes.
  • Converse com o Agente de RH: Use o chatbot para tirar dúvidas. Pergunte coisas como “Como posso melhorar a seção de experiência?” ou “Quais habilidades são importantes para um desenvolvedor Python?”. A IA usará o contexto do seu currículo para dar respostas personalizadas.
  • Rastreie suas Vagas: Use o formulário “Rastreador de Vagas” para salvar os links das vagas para as quais você se candidatou, mantendo um registro organizado de sua busca por emprego.

3. Guia do Desenvolvedor e Manutenção

3.1. Instalação e Configuração

  1. Clone o repositório: git clone ...
  2. Crie um ambiente virtual: python -m venv venv
  3. Ative o ambiente: source venv/bin/activate (ou venv\Scripts\activate no Windows).
  4. Instale as dependências: pip install -r requirements.txt
  5. Configure a Chave de API: Crie um arquivo .env na raiz do projeto e adicione sua chave do Google Gemini: GEMINI_API_KEY=SUA_CHAVE_AQUI.
  6. Inicialize o Banco de Dados:
    • export FLASK_APP=wsgi.py (ou set no Windows)
    • flask db init (apenas na primeira vez)
    • flask db migrate -m "Mensagem da migração"
    • flask db upgrade
  7. Execute a Aplicação: flask run

3.2. Estrutura do Projeto

A aplicação segue o padrão de Blueprints do Flask, separando cada área lógica em seu próprio módulo.

  • app/core/: Contém a lógica principal da aplicação (plataforma, dashboard, API de IA).
  • app/auth/: Lida com registro, login e logout de usuários.
  • app/resume/: Responsável pela geração e visualização do PDF do currículo.
  • app/models.py: Define a estrutura de todas as tabelas do banco de dados.
  • app/templates/: Contém todos os arquivos HTML, organizados em pastas que espelham os blueprints.
  • wsgi.py: É o ponto de entrada da aplicação.

3.3. Manutenção e Evolução

  • Alterando o Banco de Dados: Sempre que você modificar o arquivo app/models.py (adicionando um campo ou uma nova tabela), você deve gerar uma nova migração com flask db migrate e aplicá-la com flask db upgrade.
  • Melhorando a IA: Os “prompts” (as instruções enviadas para a IA) estão localizados no arquivo app/core/views.py, nas funções ai_suggestion, chat_with_agent e analyze_market_competitiveness. Você pode editar esses prompts para refinar o comportamento e as respostas da IA.
  • Customizando o PDF: O layout do currículo em PDF é controlado pelo arquivo app/templates/resume/resume_template.html. Você pode editar o HTML e o CSS dentro deste arquivo para alterar a aparência do documento final.
Fim do artigo Documentação Completa: CurriculoATSPro