2

Pitch: Criei o ApplyWell: um gerenciador de candidaturas com React, Spring Boot e integração com IA via MCP

Durante a busca por uma nova oportunidade, percebi que acompanhar candidaturas rapidamente vira uma mistura de planilhas, mensagens no LinkedIn, e-mails, lembretes e a inevitável dúvida:

“Eu já me candidatei para essa vaga ou apenas salvei para ver depois?”

Para resolver esse problema, comecei a desenvolver o ApplyWell, uma aplicação open source para organizar todo o processo de busca por emprego.

O que o projeto faz?

O ApplyWell permite:

  • Registrar e acompanhar candidaturas;
  • Organizar vagas por status;
  • Visualizar candidaturas em tabela, cards ou board;
  • Controlar entrevistas, próximos passos e follow-ups;
  • Identificar tarefas atrasadas;
  • Arquivar candidaturas encerradas;
  • Consultar métricas e taxas de conversão;
  • Exportar os dados em JSON ou CSV (A ser feito: https://github.com/vitorhugo-dotnet/SpringBoot-JobApplyTracker/issues/66);
  • Acompanhar XP, níveis, sequências e conquistas.

Incluí gamificação porque procurar emprego já é cansativo o bastante. Pelo menos agora cada candidatura rende XP antes de render ghosting.

Integração com IA usando MCP

O principal diferencial técnico do projeto é o servidor Model Context Protocol, implementado no backend com Spring AI.

Com isso, clientes compatíveis com MCP podem interagir com a aplicação em nome do usuário para:

  • Registrar novas candidaturas;
  • Atualizar status;
  • Consultar vagas recentes;
  • Identificar próximos passos e processos atrasados;
  • Resumir o pipeline;
  • Consultar métricas e gamificação;
  • Acessar documentos profissionais armazenados no Google Drive;
  • Auxiliar na criação de currículos adaptados para cada vaga.

A autenticação utiliza OAuth2 Authorization Code com PKCE. O MCP reutiliza o mesmo modelo de autenticação, autorização, usuários e regras de negócio da API REST, sem criar um sistema paralelo cheio de tokens estáticos esperando para virar um incidente de segurança.

Stack do frontend

  • React 19;
  • TypeScript em modo strict;
  • Vite;
  • React Router;
  • Tailwind CSS;
  • Zustand;
  • Axios com refresh token single-flight;
  • React Hook Form;
  • Playwright para testes E2E.

A interface segue um design monocromático inspirado em ferramentas como Notion e Vercel, priorizando legibilidade e poucos elementos decorativos.

Stack do backend

  • Java 21;
  • Spring Boot 3.5;
  • Spring Security;
  • OAuth2 Authorization Server;
  • JWT e refresh token com rotação;
  • Spring AI MCP Server;
  • MariaDB;
  • Flyway;
  • Resilience4j;
  • Testcontainers;
  • JUnit, Mockito, MockMvc e RestAssured;
  • Docker e GitHub Actions.

O projeto ainda está evoluindo, principalmente nas integrações com IA, automação de currículos e experiência de uso.

Os dois repositórios estão disponíveis no GitHub:

Feedbacks sobre arquitetura, segurança, experiência do usuário, MCP ou ideias para novas funcionalidades são muito bem-vindos.

Também espero que o projeto seja útil para outras pessoas que estejam tentando transformar o caos da procura por emprego em algo minimamente organizado.

Carregando publicação patrocinada...