OBJETIVOS
Realizar uma análise sobre a base de dados e identificar oportunidades para coleta destes dados e novas métricas de acompanhamento do funil de vagas.
AVALIAÇÃO
Atualmente existe uma equipe atuando em um dash para os gestores. O nosso projeto foca em uma solução para a equipe de gestão da ambev ter uma melhor visibilidade das etapas do funil de vagas, como também, utilizar algoritmos para sugerir recomendações para tornar o processo de contração mais ágil e eficaz, aumentando a satisfação dos candidatos com os processos na ambev tech.
MELHORIAS
- Automação da base do JOIN que é feita a solicitação de vagas pelos gestores;
- Utilização da API da Gupy para armazenamento dos dados históricos em uma base de dados, como sugestão recomendamos o PostgreSQL na Azure;
- Padronização das TAGs para melhor gerenciamento e formatação em novas colunas;
- Criação de um job para limpeza e padronização dos dados na base;
- Realizar o agrupamento de vagas similares para melhorar a gestão;
- Minimizar as etapas para facilitar o gerenciamento e o tempo entre as vagas;
- Criação de um site para gerenciamento unificado do funil de vagas;
- Utilização dos dados para um gerenciamento com recomendações preditivas.
MÉTRICAS
Métricas escolhidas para gestão do funil de vagas:
- Diversidade;
- Tempo médio das pessoas em cada fase;
- Conversão entre as fases %;
- Total de inscritos na vaga;
- Número em cada fase em relação ao total de inscritos %;
- Desistências em cada fase.
CÓDIGO R
Abaixo o código criado para limpeza da base fornecida pela equipe de people da ambev tech.
PACOTES
Pacotes utilizados no código:
library(tidyverse)
library(funModeling)
library(janitor)
library(openxlsx)
library(fs)
library(readxl)
library(rio)
library(lubridate)
library(abjutils)BASE DE DADOS
Foram importadas as bases forncecidas pelo time de people da ambev tech, contendo informações de 7 relatórios fornecidos pela Gupy no período de 30.09.21 até 03.11.21.
# ultilizar a função file.choose() para encontrar o diretório do arquivo.
dir_bases <- paste0("C:\\Users\\",Sys.getenv("USERNAME"),"\\Downloads\\bases_gupy\\")
arquivos_list <- dir_bases %>% dir_ls(regexp = "xlsx$")
base_agrup <-
arquivos_list %>%
map(
.f = function(path) {
read_xlsx(path,
sheet = 1,
.name_repair = janitor::make_clean_names)
}
)
base_agrup_bind <-
base_agrup %>%
bind_rows(.id = "path") %>%
dplyr::mutate(path = stringr::str_replace(path, "C:/Users/99825479/Downloads/bases_gupy/", "")) %>%
dplyr::mutate(path = stringr::str_replace(path, "\\.xlsx", "")) %>%
mutate(path = ymd(path)) %>%
select(-c(31:103,
105:107,
pcd_tipo,
motivo_de_reprovacao,
matching))PADRONIZAÇÃO DOS DADOS
Nas colunas nome_da_vaga e etapa_atual foi removida acentuação e colocada as colunas em caixa alta para melhor padronização dos dados, assim como, foi utilizada a coluna tag para extração das observações apontadas pelo time de gente na Gupy.
base_agrup_bind_remove <-
base_agrup_bind %>%
separate(col = "tags", into = c("TAG1", "TAG2", "TAG3"), sep = ",", fill = "right") %>%
mutate(
etapa_atual = str_replace_all(etapa_atual, "[[:punct:]]", ""),
nome_da_vaga = rm_accent(nome_da_vaga),
etapa_atual = rm_accent(etapa_atual),
across(c(nome_da_vaga), ~ str_to_upper(nome_da_vaga)),
across(c(etapa_atual), ~ str_to_upper(etapa_atual)),
across(starts_with("TAG"), ~ rm_accent(.)),
across(starts_with("TAG"), ~ str_to_upper(.)),
across(starts_with("TAG"), ~ str_replace_all(., "[[:punct:]]", ""))
)BASE DE APOIO (DExPARA) DAS ETAPAS
Realizada a importação da base de apoio com o (DExPARA) das etapas do processo, realizado um agrupamento para melhor análise.
base_dexpara_etapas <-
read_excel("base_apoio.xlsx", sheet = 1)AJUSTE DA BASE
Realizado o agrupamento de vagas recomendadas para análise conforme sugestão da equipe de gente:
Vagas com menor taxa de conversão: SRE; Arquitetura de software
Vagas com maior taxa de conversão: Dev C#; QA
Vaga de negócio (alto volume): Analista de negócios
base_vagas_select <-
base_agrup_bind_remove %>%
mutate(
grupo_vagas = case_when(
str_detect(nome_da_vaga, "SRE") ~ "SRE",
str_detect(nome_da_vaga, "QA") ~ "QA",
str_detect(nome_da_vaga, "SOFTWARE") ~ "ARQUITETO DE SOFTWARE",
str_detect(nome_da_vaga, "NEGOCIO") ~ "NEGOCIOS",
str_detect(nome_da_vaga, "C#") ~ "DEV C#",
TRUE ~ "ALL"
),
) %>%
filter(grupo_vagas != "ALL") %>%
relocate(grupo_vagas, .after = nome_da_vaga) %>%
mutate(
path = format(as.Date(path), format = "%d/%m/%Y"),
data_de_nascimento = format(as.Date(data_de_nascimento), format = "%d/%m/%Y")
) %>%
left_join(., base_dexpara_etapas, by = c("etapa_atual")) %>%
distinct(.keep_all = FALSE)EXPORTAR BASE
Realizar a remoção do arquivo antigo e exportação da base após o tratamento dos dados.
file.remove("base_tratada.xlsx")
openxlsx::write.xlsx(base_vagas_select,
"base_tratada.xlsx",
colNames = TRUE)