GitHub e Portfolio Analyzer¶
O GitHub/Portfolio Analyzer avalia se os projetos públicos do usuário ajudam ou atrapalham uma candidatura.
A inspiração técnica vem de ferramentas como RepoLogs, que analisam repositórios públicos com IA e selecionam arquivos relevantes em vez de enviar o repositório inteiro.
Objetivo¶
Responder:
- Quais repositórios combinam com a vaga?
- Quais projetos devem aparecer no currículo?
- Qual projeto deve ser fixado no GitHub?
- O README está bom?
- Existem testes?
- Existe demo?
- A stack é visível?
- O projeto prova alguma habilidade da vaga?
Fontes aceitas¶
- GitHub
- GitLab
- Bitbucket
- Kaggle
- Hugging Face
- npm
- PyPI
- Docker Hub
- Vercel
- Netlify
- Dev.to
- Medium
- Behance
- Dribbble
- portfólio pessoal.
Arquitetura¶
flowchart TD
A[URL do projeto ou usuário] --> B[Portfolio Source Detector]
B --> C[Metadata Collector]
C --> D[File Sampler]
D --> E[Quality Rules]
E --> F[RAG Context]
F --> G[LLM Analysis]
G --> H[Portfolio Score]
H --> I[Recomendações]
File sampling inteligente¶
Para GitHub, o sistema deve priorizar:
- README.md;
- pyproject.toml;
- package.json;
- requirements.txt;
- Dockerfile;
- docker-compose.yml;
- .github/workflows;
- src/ ou modules/;
- tests/;
- docs/;
- arquivos principais da stack.
Não deve enviar tudo para IA sem necessidade.
Métricas¶
{
"portfolio_score": 82,
"readme_score": 90,
"tests_score": 70,
"architecture_score": 78,
"job_alignment_score": 86,
"security_flags": [],
"recommended_repositories": ["SotuHire", "SoturAI", "SotuRail"]
}
Regras de avaliação¶
README¶
- explica o problema;
- mostra instalação;
- mostra uso;
- tem screenshots/GIF;
- tem roadmap;
- tem stack;
- tem licença;
- tem status do projeto.
Código¶
- estrutura modular;
- nomes claros;
- separação de responsabilidades;
- testes;
- lint/format;
- CI;
- tratamento de erro;
- ausência de secrets.
Alinhamento com vaga¶
- projeto usa stack pedida;
- resolve problema parecido;
- mostra maturidade técnica;
- tem documentação suficiente para recrutador entender rápido.
Relação com SotuAI e SotuRail¶
O SotuHire pode usar projetos como SotuAI e SotuRail como evidências de:
- autonomia técnica;
- construção de produto;
- automação;
- IA;
- dados;
- documentação;
- publicação de pacote;
- visão de roadmap;
- capacidade de manter projeto.
Não deve exagerar. Deve transformar evidências reais em linguagem de currículo.
Exemplo:
Projeto SotuRail demonstra publicação e manutenção de pacote, documentação e visão de produto.
Projeto SoturAI demonstra interesse em IA aplicada, automação e análise adaptativa.
Projeto SotuHire demonstra arquitetura, produto, regras de negócio, QA e IA aplicada à carreira.
Saída para currículo¶
O módulo pode sugerir bullets:
- Desenvolvi um copiloto de carreira com Python, IA generativa, análise ATS, scraping responsável e arquitetura modular.
- Estruturei documentação técnica com MkDocs, regras de negócio, CI, Ruff e testes automatizados.
- Projetei módulos de match, perfil, portfólio, RAG, job tracker e alertas.
Cuidados¶
- Não analisar repositórios privados sem permissão.
- Não expor secrets.
- Não afirmar qualidade sem evidência.
- Não inventar métricas de impacto.
- Não baixar conteúdo excessivo.
- Não avaliar pessoas; avaliar projetos e sinais técnicos.
Atualização: GitHub Analyzer 2.0¶
A análise GitHub/Portfólio evoluiu na v0.11.0 de sinais visíveis e heurísticas simples para uma base de pipeline profundo no backend/site do SotuHire.
A referência conceitual é a abordagem de ferramentas como REPOLOGS: analisar metadados, árvore, arquivos relevantes, dependências e documentação, em vez de depender apenas do DOM da página aberta.
Nova divisão de responsabilidades¶
Extensão¶
A extensão deve:
- detectar URL;
- extrair owner/repo quando for GitHub;
- capturar metadados visíveis quando necessário;
- chamar Local Companion API;
- mostrar resumo;
- abrir relatório completo no site.
Backend/site¶
O backend agora possui base para:
- chamar GitHub API;
- coletar metadados;
- obter árvore completa;
- montar directory tree;
- selecionar arquivos relevantes;
- ler conteúdo raw;
- criar grafo simples de dependências;
- montar contexto;
- chamar prompt estruturado;
- validar JSON;
- calcular scores;
- salvar evidências.
Implementação principal: modules/github_analyzer/.
O fluxo antigo de modules/portfolio continua como fallback quando a API falha ou quando a extensão envia apenas sinais capturados.
Pipeline proposto¶
flowchart TD
A[Repo URL] --> B[Owner/Repo Parser]
B --> C[GitHub Metadata]
C --> D[Full Tree]
D --> E[Filtered Directory Tree]
E --> F[Priority Sampler]
F --> G[Raw Files]
G --> H[Dependency Graph]
H --> I[Context Builder]
I --> J[GitHub Repo Prompt]
J --> K[Pydantic]
K --> L[Score Calculator]
L --> M[Career Evidence]
Priority sampler¶
Prioridade alta:
- README;
- package manifest;
- pyproject;
- requirements;
- lockfile apenas como sinal, não como conteúdo completo;
- Dockerfile;
- docker-compose;
- workflows;
- docs;
- tests;
- entrypoints;
- arquivos centrais por grafo de dependência.
Ignorar conteúdo de:
- node_modules;
- dist;
- build;
- venv;
- cache;
- imagens;
- binários;
- dumps;
- arquivos enormes;
- outputs gerados.
Prompt¶
Usar github_repo_analysis_v2 do Prompt Catalog.
A análise deve retornar:
- qualidade técnica;
- valor para currículo;
- prontidão para recrutador;
- evidências por arquivo;
- skills demonstradas;
- bullets seguros;
- inconsistências;
- riscos de segurança;
- recomendações priorizadas;
- alinhamento com vaga.
Scores finais¶
A IA retorna dimension_scores e reasoning.
O código calcula:
- Technical Quality Score;
- Portfolio Score;
- Resume Evidence Score;
- Recruiter Readiness Score;
- Job Alignment Score.
Diferença estratégica¶
REPOLOGS responde principalmente:
Este repositório é tecnicamente bom?
SotuHire deve responder:
Este repositório ajuda essa pessoa a conseguir quais vagas?
Como ele prova competências?
Como citar no currículo sem exagerar?
O que falta para ficar mais forte para recrutadores?
Critério de pronto¶
O módulo estará pronto quando:
- repo por URL gerar relatório completo;
- relatório citar arquivos como evidência;
- o score técnico não for confundido com score de carreira;
- o repo puder ser comparado com vaga;
- bullets de currículo forem seguros;
- recomendações forem priorizadas;
- dados forem salvos na Career Memory quando o usuário confirmar.
Documento de implementação: v0.11.0 GitHub Analyzer 2.0.