State Of Data Analyst logo

State Of Data Analyst

Community
data-hackers-br
state-of-data-analyst

Analisa e cruza as 6 edições da pesquisa **State of Data Brazil** (Data Hackers, 2019 a 2025/26) — carreira, cargos, senioridade, salários, modelo de trabalho, tecnologias, IA generativa e diversidade na área de dados e IA no Brasil. Usa os dados e o código do repositório público data-hackers-br/state-of-data-brazil, com colunas harmonizadas entre edições via mapping/schema_map.yaml e funções prontas em scripts/sod/ (mediana em faixas salariais, correção pelo IPCA, agrupamentos). Responde perguntas comparativas entre anos. Use quando o usuário pedir para analisar o State of Data Brazil, comparar edições da pesquisa Data Hackers, ver evolução de salários/cargos/modelo de trabalho na área de dados no Brasil, ou cruzar informações entre os anos da pesquisa.

Overview

Publisherdata-hackers-br
Repositorystate-of-data-brazil
Skill namestate-of-data-analyst
Stars
81
Forks
21
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by data-hackers-br on GitHub. Read the source before you install it.

Installation

Install the State Of Data Analyst AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/data-hackers-br/state-of-data-brazil/tree/main/.claude/skills/state-of-data-analyst
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/data-hackers-br/state-of-data-brazil.git /tmp/state-of-data-brazil
mkdir -p .claude/skills
cp -r /tmp/state-of-data-brazil/.claude/skills/state-of-data-analyst .claude/skills/state-of-data-analyst
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable State Of Data Analyst in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads State Of Data Analyst on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so State Of Data Analyst is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

State of Data Brazil — Analista

Esta skill trabalha só com as 6 edições do State of Data Brazil do repositório data-hackers-br/state-of-data-brazil. Não busque nem baixe outros datasets.

Onde estão os arquivos

Os dados e o código (data/, scripts/, mapping/) ficam numa pasta que esta skill chama de RAIZ. Descubra a RAIZ nesta ordem e use a primeira que se aplicar:

  1. Plugin do Claude Code: ${CLAUDE_PLUGIN_ROOT}. Se esse caminho foi substituído pelo Claude Code (não começa com cifrão e chaves) e contém mapping/schema_map.yaml, ele é a RAIZ. Não escreva arquivos dentro dela: ela é trocada a cada atualização.
  2. Repositório clonado: se o projeto aberto contém mapping/schema_map.yaml e scripts/sod/, a RAIZ é a pasta do projeto.
  3. Repositório anexado (por exemplo, no Claude pelo navegador): se o usuário forneceu o ZIP deste repositório, extraia-o na pasta de trabalho da sessão e use como RAIZ a pasta interna que contém mapping/schema_map.yaml, scripts/sod/ e data/. O ZIP do GitHub tem uma pasta externa state-of-data-brazil-<revisão>; não confunda a pasta de extração com a raiz do projeto. Reutilize uma extração válida já disponível na sessão, sem baixar outra cópia.
  4. Skill instalada sozinha (por npx skills, no Codex ou copiando só esta pasta): a RAIZ é ~/.cache/state-of-data-brazil. Se ela não existir, avise o usuário que vai baixar uma cópia do repositório público (cerca de 80 MB, uma única vez) e rode git clone --depth 1 https://github.com/data-hackers-br/state-of-data-brazil.git ~/.cache/state-of-data-brazil. Sem git, baixe e descompacte https://github.com/data-hackers-br/state-of-data-brazil/archive/refs/heads/main.zip no mesmo lugar, deixando mapping/, scripts/ e data/ diretamente dentro da pasta de cache. Se o ambiente bloquear acesso à rede, explique o bloqueio e peça o ZIP como anexo ou indique como executar a análise localmente. Não repita tentativas de download sem uma mudança nas condições. Para atualizar um cache clonado com Git: git -C ~/.cache/state-of-data-brazil pull; se veio de ZIP, use uma nova extração.

Antes de analisar, confirme que a RAIZ contém mapping/schema_map.yaml, scripts/sod/ e os arquivos de dados necessários. Uma pasta de cache existente, mas incompleta, não basta. Se faltar algum arquivo, informe o que falta para continuar com a cópia completa do repositório.

Todos os caminhos citados daqui em diante são relativos à RAIZ.

EdiçãoChaveArquivoRespostas
20192019data/raw/2019/data_hackers_survey_2019.csv1.765
20212021data/raw/2021/state_of_data_2021.csv2.645
20222022data/raw/2022/state_of_data_2022.csv4.271
20232023data/raw/2023/state_of_data_2023.csv5.293
2024/252024-2025data/raw/2024-2025/state_of_data_2024_2025.csv5.217
2025/262025-2026data/raw/2025-2026/state_of_data_2025_2026.csv3.495

Não existe edição 2020 (a pesquisa pulou esse ano).

Antes de começar

  1. Python com pandas, numpy e pyyaml.
    • Com repositório anexado: primeiro confira se o Python do ambiente já importa pandas, numpy e yaml; para gráficos, confira também matplotlib. Reutilize esse interpretador quando as dependências estiverem disponíveis. Não crie um ambiente vazio que exija downloads em uma sessão sem rede. Se faltar uma biblioteca, informe qual é e indique a instalação local com requirements.txt; o ZIP traz os dados e o código, não as dependências Python.
    • No repositório clonado: use .venv/bin/python (ou python3, se as dependências já estiverem instaladas). Se faltarem, peça ao usuário para rodar a instalação do README.
    • No modo plugin: use um ambiente próprio em ${CLAUDE_PLUGIN_DATA}/venv, que sobrevive a atualizações. Se ele não existir, avise o usuário que vai criá-lo e rode python3 -m venv "${CLAUDE_PLUGIN_DATA}/venv" && "${CLAUDE_PLUGIN_DATA}/venv/bin/pip" install -r "${CLAUDE_PLUGIN_ROOT}/requirements.txt".
    • Na skill instalada sozinha: use ~/.cache/state-of-data-brazil/.venv. Se não existir, crie com python3 -m venv ~/.cache/state-of-data-brazil/.venv e instale ~/.cache/state-of-data-brazil/requirements.txt com o pip desse ambiente.
  2. A base harmonizada já vem pronta em data/harmonized/state_of_data_harmonized.csv. Só no repositório clonado, se ela não existir, gere com python scripts/harmonize.py.
  3. Leia mapping/schema_map.yaml — em especial methodology_notes e as notes dos campos que a pergunta envolve. Ele lista as armadilhas conhecidas dos dados.

Fluxo de trabalho

1. Partir da base harmonizada

data/harmonized/state_of_data_harmonized.csv tem uma linha por respondente das 6 edições, com edicao, ano (rótulo: 2019, 2021, …, 2024/25, 2025/26), os campos canônicos do schema e colunas derivadas prontas:

  • nivel: Júnior / Pleno / Sênior / Especialista/Staff+ / Gestor (gestor vem da pergunta "atua como gestor")
  • sal_min, sal_max: limites em R$ da faixa salarial (sal_max = inf na faixa aberta do topo)
  • vinculo: mora no Brasil com empresa brasileira / empresa estrangeira / mora no exterior
  • experiencia_grupo, cargo_grupo, porte_grupo, setor_grupo, modelo_atual, modelo_ideal

Para código novo, prefira importar as funções em vez de reescrever a lógica:

python
import sys; sys.path.insert(0, "<RAIZ>/scripts")
from harmonize import build          # base harmonizada em memória
from sod import data, derive, stats  # data.raw(ed), data.multiselect(ed, nome), stats.median(df), stats.deflator(ano)

2. Se a pergunta precisar de um campo que não está no schema

Inspecione as colunas e uma amostra de valores em cada edição (data.raw(ed)), proponha o mapeamento e confirme os casos ambíguos com o usuário antes de salvar em mapping/schema_map.yaml (com status: proposed). Atualize só o que a pergunta exige. Registre nas notes qualquer mudança de opções de resposta entre edições.

Perguntas de múltipla escolha (linguagens, cloud, BI) ficam em multiselect: no schema. Use data.multiselect(ed, nome), que já aplica as correções conhecidas, e use como denominador quem marcou pelo menos uma opção.

3. Analisar

  • Salário: os valores vêm em faixas. Use stats.median / stats.band_quantile (interpolação dentro da faixa, mínimo de 30 respostas). Nunca use média. Para comparar anos em termos reais, multiplique por stats.deflator(ano) (R$ de nov/2025, IPCA do IBGE).
  • Separe mercados: quem trabalha para empresa estrangeira ou mora no exterior ganha em outro patamar. Para nível, experiência ou gênero, use só vinculo == "Mora no Brasil, empresa brasileira".
  • Compare dentro de grupos: o perfil da amostra muda a cada edição (cada vez menos juniores). Uma mediana geral pode subir mesmo com todos os níveis caindo. Antes de concluir sobre o mercado, confira por nível e por experiência.
  • Informe o N de cada edição e grupo. Sinalize grupos pequenos.
  • 2019 usou outro questionário. Não há nível Jr/Pl/Sr e a faixa salarial vai só até R$ 25k, então 2019 fica fora de comparações de salário e senioridade. São comparáveis: gênero, situação de trabalho, estado, formação, porte da empresa, cargo, tempo de experiência (em grupos) e linguagens, cloud e BI (já convertidos para os rótulos recentes). Região também, com a ressalva de que 2019 só identifica Sudeste e Sul.
  • Staff+ só existe em 2025/26. Para comparar Sênior com anos anteriores, some Sênior + Staff+.
  • Campos com status: proposed podem ser usados; se a conclusão depender de um deles, diga isso nas ressalvas.

Salve gráficos e arquivos de trabalho em data/scratch/ no repositório clonado (ignorado pelo git). No navegador, use a pasta de saídas oferecida pelo ambiente e disponibilize os arquivos para download. Nos demais modos, use uma pasta state-of-data/ no diretório atual do usuário. Se o usuário quiser algo apresentável e a skill dataviz estiver disponível, siga-a antes de montar o gráfico. Ela é opcional: se não estiver disponível, use Matplotlib, com título, unidades, N por grupo, fonte e ressalvas relevantes. Confira a imagem gerada para evitar rótulos sobrepostos ou cortados.

4. Resumir

Feche em português: principais achados com os números, a tendência mais forte e as ressalvas metodológicas relevantes. A amostra não é aleatória: é quem respondeu à pesquisa da Data Hackers, o que pode enviesar pelo canal de divulgação.

Nova edição da pesquisa

Isso vale só para quem mantém o repositório clonado. Quando sair uma edição nova, baixe-a do Kaggle para data/raw/<ano>/, manualmente ou pelo servidor MCP do Kaggle (claude mcp add --transport http kaggle https://www.kaggle.com/mcp, com o token pessoal em escopo local, nunca no git). Depois: adicione a edição em editions: no schema, mapeie as colunas de cada campo (confirmando os casos ambíguos) e rode python scripts/harmonize.py.

Regras

  • Nunca invente valores de coluna ou estatística: leia sempre dos arquivos.
  • Nunca altere os CSVs de data/raw/; eles são cópias fiéis do Kaggle.
  • Nunca faça upload nem altere datasets no Kaggle.
  • Ao publicar resultados, cite a fonte: "State of Data Brazil, Data Hackers — CC BY-NC-SA 4.0".

Frequently asked questions

What does the State Of Data Analyst AI skill do?

Analisa e cruza as 6 edições da pesquisa **State of Data Brazil** (Data Hackers, 2019 a 2025/26) — carreira, cargos, senioridade, salários, modelo de trabalho, tecnologias, IA generativa e diversidade na área de dados e IA no Brasil. Usa os dados e o código do repositório público data-hackers-br/state-of-data-brazil, com colunas harmonizadas entre edições via mapping/schema_map.yaml e funções prontas em scripts/sod/ (mediana em faixas salariais, correção pelo IPCA, agrupamentos). Responde perguntas comparativas entre anos. Use quando o usuário pedir para analisar o State of Data Brazil, com...

Why use State Of Data Analyst on TypingMind?

Because you install it once and use it with any model. State Of Data Analyst is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install State Of Data Analyst in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/data-hackers-br/state-of-data-brazil/tree/main/.claude/skills/state-of-data-analyst. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use State Of Data Analyst?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with State Of Data Analyst?

As many as you like. As long as a model supports skills, you can use State Of Data Analyst with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the State Of Data Analyst AI skill free?

It is published on GitHub by data-hackers-br. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇