Inteligência de dados sobre o mercado formal de tecnologia no Brasil, construída com microdados públicos do Novo CAGED e a Classificação Brasileira de Ocupações (CBO).
- Problema resolvido: transforma microdados públicos do Novo CAGED em informação acionável sobre o mercado formal de tecnologia.
- Evidência visual: o dashboard acima consolida filtros, mapas, séries temporais, salários e insights.
- Qualidade: 19 testes automatizados e CI executado a cada push ou pull request.
- Como testar localmente: instale as dependências e execute
streamlit run dashboard/app.py.
Dados públicos de mercado de trabalho são ricos, mas chegam em arquivos grandes, com códigos técnicos e estrutura voltada para publicação, não para análise direta. Este projeto transforma esses dados em uma base analítica reproduzível, com pipeline em Python, agregados mensais, documentação técnica, modelagem PostgreSQL e dashboard interativo em Streamlit.
O foco inicial é responder perguntas sobre admissões, desligamentos, saldo de empregos, ocupações, categorias de tecnologia, salários, escolaridade, idade e distribuição geográfica de profissionais de tecnologia no Brasil.
Janela analisada:
07/2025 a 06/2026
Indicadores gerais:
| Indicador | Valor |
|---|---|
| Registros tech | 668.686 |
| Admissões tech | 340.719 |
| Desligamentos tech | 327.967 |
| Saldo tech | 12.752 |
| Ocupações CBO tech | 39 |
| Categorias tech | 9 |
Esses números dependem do mapeamento CBO tech versionado em data/external/cbo_tech_mapping.csv.
- Pipeline Python para download, extração, tratamento, enriquecimento e agregação dos dados.
- Mapeamento CBO tech versionado, com critérios explícitos para classificar ocupações de tecnologia.
- Agregados mensais para 12 competências, de
202507a202606. - Enriquecimento com domínios de UF, região, escolaridade e centróides geográficos.
- Dashboard Streamlit com filtros, mapas, gráficos, tabelas formatadas, downloads CSV e insights automáticos.
- Modelo PostgreSQL com DDL, views e consultas analíticas versionadas.
- Notebook exploratório e documentação de metodologia, fontes, dicionário de dados e status do projeto.
- Testes automatizados cobrindo transformação, agregação, enriquecimento, SQL e manifesto de arquivos.
Novo CAGED + CBO
|
v
Python ETL
|
v
Dados processados
|
+--> Agregados CSV enriquecidos
| |
| v
| Streamlit Dashboard
|
+--> Modelo PostgreSQL
|
v
SQL / Views analíticas
data/raw/ arquivos originais locais do Novo CAGED e da CBO
data/processed/ arquivos tratados, agregados e perfis técnicos
data/external/ mapeamentos e tabelas de domínio versionadas
dashboard/ aplicação Streamlit
docs/ documentação técnica e metodológica
notebooks/ análise exploratória em Jupyter
sql/ DDL, views e consultas analíticas
src/ código Python do pipeline
tests/ testes automatizados
- Python
- Pandas
- NumPy
- Plotly
- Streamlit
- SQLAlchemy
- PostgreSQL
- Pytest
- Jupyter
Crie e ative o ambiente virtual:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtConfigure variáveis locais, se for usar PostgreSQL:
Copy-Item .env.example .envO arquivo .env não deve ser versionado.
Baixar a CBO:
python -m src.download_sources --source cboBaixar uma competência do Novo CAGED:
python -m src.download_sources --source caged-mov --year-month 202606Inspecionar um arquivo real:
python -m src.inspect_caged --file data/raw/caged/CAGEDMOV202606.txt --rows 1000Executar a janela inicial de 12 meses:
python -m src.pipeline_multi
python -m src.consolidate_aggregates --input-dir data/processed --output-dir data/processed
python -m src.enrich_aggregates
python -m src.generate_insightsTambém é possível usar arquivos já baixados localmente:
python -m src.pipeline_multi --skip-downloadExecutar localmente:
streamlit run dashboard/app.pyOu pelo ambiente virtual:
.\.venv\Scripts\streamlit.exe run dashboard/app.pyAbas disponíveis:
Visão Geral
Mercado
Profissões
Salários
Estados
Perfil Profissional
Insights
Metodologia
Recursos atuais:
- Período exibido em formato brasileiro
MM/AAAA. - Filtros por categoria, região, UF, ocupação, idade e escolaridade.
- Cards de contexto com maior e menor saldo mensal, categoria líder e UF com maior volume.
- Gráficos de admissões, desligamentos, saldo e evolução salarial.
- Legenda explicativa para salário médio e salário mediano.
- Tabelas em português, com números formatados e salários em reais.
- Downloads CSV das principais tabelas analíticas.
- Mapa geográfico por UF com volume e saldo de empregos.
- Insights automáticos com leitura descritiva do filtro aplicado.
- Aba de metodologia com fontes, recorte, critérios salariais e limitações.
O projeto já possui modelagem SQL versionada, mas a carga real depende de um servidor PostgreSQL local disponível.
Subir PostgreSQL com Docker, quando Docker estiver instalado:
docker compose up -dValidar conexão:
python -m src.check_databaseCarregar dimensões e agregados:
python -m src.loadCarregar a fato detalhada de uma competência:
python -m src.load --load-fact --fact-file data/processed/tech_cagedmov202606.csvArquivos SQL:
sql/create_tables.sql
sql/views.sql
sql/analysis_queries.sql
Principais documentos:
docs/fontes_dados.md
docs/metodologia.md
docs/metodologia_cbo_tech.md
docs/dicionario_dados.md
docs/modelagem_postgresql.md
docs/pipeline_multicompetencia.md
docs/janela_12_meses_tech.md
docs/insights_iniciais.md
docs/dashboard_streamlit.md
docs/status_projeto.md
Notebook exploratório:
notebooks/01_exploracao.ipynb
notebooks/01_exploracao_executado.ipynb
Executar a suíte:
pytestStatus atual:
19 tests passed
- O recorte inicial usa Novo CAGED e CBO.
- O mapeamento CBO tech é conservador e versionado.
- A CBO não informa stack, senioridade, modalidade remota ou detalhes modernos da função exercida.
- Salários iguais a zero e salários extremos são marcados por flags.
- As métricas de salário do dashboard consideram salários válidos e usam agregações ponderadas quando necessário.
- RAIS, IBGE, Banco Central e outras bases complementares ficam para versões futuras.
- Domínios marcados como
pendente_layout_oficialdevem ser revisados antes de uso definitivo.
- Validar domínios pendentes contra o layout oficial do Novo CAGED.
- Executar a carga real no PostgreSQL quando houver servidor local disponível.
- Carregar a fato detalhada para as 12 competências processadas.
- Migrar o dashboard de CSV para views PostgreSQL.
- Revisar o mapeamento CBO tech com critérios qualitativos adicionais.
- Atualizar screenshots finais do dashboard após a estabilização visual.
- Publicar uma demonstração web do dashboard Streamlit quando houver ambiente de hospedagem disponível.
