CONNECT Program Matching

University of Texas at Austin, Fall 2021

Ethan Tenison (RGK Center for Philanthropy and Community Service)https://rgkcenter.org/
August 20, 2021

Every semester the CONNECT Program pairs community organizations with graduate students with data and evaluation skills. As the program has expanded, the matching process has become more complicated, necesitating improved program efficiency. The following document outlines how survey data is taken from Qualtrics, cleaned and sorted, and then matched using the Gale-Shapley Algorithm. Some descriptive data visualizations were included as well to give program managers a snap shot of the semester cohort.

Qualtrics

Using the qualtRics package the organization and student surveys were pulled directly from Qualtrics. In order to connect to the Qualtrics API, you must have UT staff privledges. Any UT student must have their privledges updated by contacting UT IT Services. Your Qualtrics API can be accessed through account settings in the “Qualtrics IDs” section.

Show code
# Connecting to the Qualtrics API
qualtrics_api_credentials(
api_key = Sys.getenv("qualtrics_key"), 
base_url = "ca1.qualtrics.com", 
install = FALSE
)

#Pulling the organization and students surveys 
surveys <- all_surveys() 

#Finding the row index for organization and student surveys
stu_number <- which(surveys$name=="08.CONNECT- Fall 2021", arr.ind=TRUE)
org_number <- which(surveys$name=="Matching Form_Fall 2021", arr.ind=TRUE)

#Fetching the Survey Contents 
org_raw <- fetch_survey(surveyID = surveys$id[org_number], force_request = TRUE)
stu_raw <- fetch_survey(surveyID = surveys$id[stu_number], force_request = TRUE)

Project Deliverables Wordcloud

Project CONNECT continues to offer a diverse set of projects to students. The word cloud below shows the most common words located in the project deliverables section.

Show code
library(wordcloud)
library(RColorBrewer)
library(tm) # to create corpus
library(wordcloud2)
library(htmlwidgets)

org <- org_raw
colnames(org) <- label(org)
org <- org |>
  clean_names() |> 
  filter(which_connect_program_is_this_project_affiliated_with == "RGK Center")
  

# Create a vector containing only the text
text <- org$project_deliverables

# Create a corpus
docs <- Corpus(VectorSource(text))

# standardize corpus
docs <- docs %>%
  tm_map(removeNumbers) %>%
  tm_map(removePunctuation) %>%
  tm_map(stripWhitespace)
docs <- tm_map(docs, content_transformer(tolower))
docs <- tm_map(docs, removeWords, stopwords("english"))

# create a document matrix
dtm <- TermDocumentMatrix(docs)
matrix <- as.matrix(dtm)
words <- sort(rowSums(matrix), decreasing = TRUE)
df <- data.frame(word = names(words), freq = words)
df$word <- as.character(df$word)
target <- c("also", "project", "really", "helpful", "able", "helped", "felt", "wasnt", "etc", "asks", "move", "gave")
"%ni%" <- Negate("%in%")
df <- filter(df, word %ni% target)
df$word <- as.factor(df$word)

set.seed(27)


w1 <-
  wordcloud2(data = df,
             color = rep_len(
               c("#264653", "#2A9D8F", "#E9C46A", "#F4A261", "#E76F51"),
               nrow(df)
             ),
             shuffle = FALSE)


w1

Project Description Table

Show code
proj_des <- org |>
  select(
    project_name,
    project_goal,
    project_deliverables,
    what_other_relevant_skills_would_be_helpful_for_your_candidate_to_have_i_e_other_languages_spoken_coding_analytical_software_professional_skills_etc_list_them_here
  ) |>
  rename(
    Project = project_name,
    Goal = project_goal,
    Deliverables = project_deliverables,
    "Other Considerations" = what_other_relevant_skills_would_be_helpful_for_your_candidate_to_have_i_e_other_languages_spoken_coding_analytical_software_professional_skills_etc_list_them_here
  ) |> 
  arrange(Project) |> 
  mutate(`Other Considerations` = replace_na(`Other Considerations`, ""),
         Deliverables = gsub('(\\s\\d)\\)', '<br><br>\\1\\.', Deliverables))


kbl(proj_des, escape = F) |> 
  kable_minimal("hover", full_width = T) |> 
  scroll_box(width = "100%", height = "600px")
Project Goal Deliverables Other Considerations
Andy Roddick Foundation To share back findings from LATT’s data collection efforts with its member organizations in an exciting and useful way.
  1. Work alongside Andy Roddick Foundation staff to identify relevant data sources to be included in analysis; merge all relevant data sources into one dataset (if need be);

    2. Conduct exploratory analyses on dataset (deliverable #1);

    3. Develop data visualizations and a dashboard to summarize findings (deliverable #2) and

    4. Detailed documentation (e.g. user manual) outlining methods used conducting analysis and developing data visualizations and dashboard
Experience with data visualization required (e.g. Tableau, Power BI, Google Data Studio)
Camp Fire Central Texas To streamline the data collection and reporting processes for Camp Fire Central Texas’ Play-To-Learn program.
  1. Refine contents of the Play-To-Learn intake form and pre- and post-program surveys so they align with Apricot data reporting requirements;

    2. Consolidate the current program intake form and pre- survey questions into one form;

    3. Build out deliverable #2 (intake questions + pre-survey) and post- survey in Survey Monkey, in both English and Spanish;

    4. Investigate the process for batch uploading data from Survey Monkey into Apricot; and

    5. Develop a user manual outlining entire data collection process for the Play-To-Learn program
Spanish proficiency required
Community Advancement Network To continue automating CAN’s ability to pull, clean, and analyze indicator data from the American Community Survey (ACS) database.
  1. Python script for pulling data for the Drive Alone and Uninsured indicators, and the Total Population drilldown from ACS via an API and

    2. Python code for cleaning and visualizing raw data
Family Eldercare To improve Family Eldercare’s ability to measure and track the effectiveness of its Aging Services pilot program at Community First! Village.
  1. Conduct research to validate current and if needed, identify new, short-and long-term outcomes for evaluating the Aging Services pilot;

    2. Develop a data collection framework – matrix of recommendations outlining metrics/variables for measuring outcomes defined in deliverable #1, data collection method(s), and data collection frequency; and

    3. Design data collection tool(s) aligned with deliverables #1 and #2
interest in and/or experience with policy in the areas of housing homelessness, aging and/or program evaluation in human services preferred
Financial Health Pathways To conduct a financial health assessment for the Central Texas region.
  1. Build out pre-defined questions into Qualtrics survey;

    2. Support Financial Health Pathways leadership with Qualtrics survey administration;

    3. Conduct stakeholder interviews to inform focus group questions; and

    4. Coordinate and conduct focus groups with respondents from Qualtrics survey
Spanish proficiency required; experience using Qualtrics preferred
Impact Austin To improve Impact Austin’s ability to assess its effectiveness at fulfilling its mission.
  1. Conduct research (e.g. literature review, stakeholder interviews, etc.) on best practices to define key short- and long-term outcomes and metrics;

    2. Utilize findings from deliverable #1 to develop an organization-wide logic model; and

    3. Develop a data collection plan that outlines: the metrics/variables required for measuring short- and long-term outcomes, suggested data collection tools/methodologies (e.g. surveys, focus groups, etc.) for tracking outcomes, and data collection frequency and cadence
student with a skillset and desire to work on a logic model preferred
Impact Factory To enhance our system for collecting and storing data for the Early Bird study and to support the Early Bird study’s ongoing data collection, entry and analysis.
  1. Enhance our existing system for collecting and storing data including: migrating Early Bird survey and other study data into REDCap and moving the remaining surveys to REDCap; and

    2. Conduct ongoing data entry and analysis including: conducting data analysis of initial and second study surveys and identifying ways to improve data quality
Previous experience with Qualtrics, data analysis REDCap and participant surveys preferred
PelotonU To understand how the changes made to PelotonU’s academic onboarding (AO) curriculum are impacting students.
  1. Merge all relevant data sources into one dataset;

    2. Analysis and data visualization of: descriptive statistics for 2020 and 2021 data and comparison between 2020 and 2021 findings related to effectiveness of AO curriculum revamp; and

    3. Summary outlining methods used for and findings from analysis
experience with Tableau or data visualization in R strongly preferred
Texas Rural Funders To increase the visibility of Connected Nation Texas’ high-quality, broadband data sets and ensure they are accessible/usable to all stakeholders.
  1. Translation of current Connected Nation Texas dataset codebook – description of data sources (in lay terms) and what can be accomplished through use of this data;

    2. Development of an interview protocol to better understand current use cases for Connected Nation data sets;

    3. Conduct 3 – 5 interviews with leaders/entities currently using Connected Nation data; and

    4. Summary of findings (use cases) from interviews, as well as recommendations for additional use case and potential users
strong writing skills and previous experience working with qualitative data preferred
Urban School Food Alliance To develop a customized data pulling protocol for all 15 of Urban School Food Alliance’s school district members.
  1. Identify the data sources for obtaining USFA’s data points of interest, including member school districts’ demographics, budget, and purchasing history;

    2. Conduct initial data pull for the 2019 – 2020 school year; and

    3. Development of a user manual outlining unique data pulling protocols for each member school district
Familiarity or understanding of public K-12 school foodservice, or school district financial reporting preferred; familiarity or experience with state agency data reporting preferred
Walking by Faith Prison Ministry To communicate the connections between lived trauma and recidivism rates in Texas and Travis County.
  1. Conduct research and gather information on: recidivism rates in Texas and Travis County, # of incarcerated and formerly incarcerated individuals who have experienced trauma, how lived trauma, incarceration, and recidivism are connected, promising practices for supporting incarcerated and formerly incarcerated individuals who have experienced trauma; and

    2. PowerPoint presentation summarizing findings from deliverable #1
Young Invincibles - project #1 To better understand and display the mental health resource landscape of college campuses across Texas.
  1. Work along YI team to identify datapoints of interest and data sources;

    2. Develop methodology/process(es) for data collection, including recommendations on how to structure dataset;

    3. Design and develop static maps to visualize initial dataset; and

    4. Develop an interactive dashboard
Young Invincibles - Project #2 To improve Young Invincible’s ability to track and measure the short-, mid-, and long-term outcomes of its young advocate programs.
  1. Review current evaluation framework being utilized for YI’s young advocate programs to: validate and/or improve upon the current short- and mid-term outcomes and metrics being used to track program effectiveness and identify long-term outcomes and metrics with special attention to alumni civic advocacy, participation and connectedness;

    2. Refine current surveys to reflect recommendations/improvements identified in deliverable #1 (if needed); and

    3. Design a methodology and data collection tool to be used for tracking and measuring long-term outcomes identified in deliverable #1


Project Buckets

There were 13 projects, but some of them involve multiple buckets. Of note, this semester there were zero web design projects.

Show code
buckets <- org |>
  select(organization, 29:34) |>
  pivot_longer(col = 2:7,
               names_to = "bucket_",
               values_to = "bucket") |>
  select(organization, bucket) |>
  drop_na() |>
  group_by(bucket) |> 
  count() |> 
  mutate(bucket = case_when(
    bucket == "Data Collection & Tool Development" ~ "Data Collection &\n Tool Development",
    bucket == "Data Interpretation & Analysis" ~ "Data Interpretation &\n Analysis",
    bucket == "Business Intelligence & Advanced Analytics" ~ "Business Intelligence &\n Advanced Analytics",
    TRUE ~ bucket
  )) |> 
  arrange(n)


theme_set(theme_classic())

g <- ggplot(buckets, aes(x = reorder(bucket, n), y = n)) +
  geom_bar(stat = "identity", fill = "#2A9D8F") +
    geom_text(aes(label = n, y = n),
    position = position_stack(vjust = 0.5),
    size = 8) +
  coord_flip()+
   theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.line = element_blank(),
     text = element_text(
                         size = 16,
                         face = "bold"),
     axis.title.x = element_blank(),
     axis.title.y = element_blank(),
     axis.ticks = element_blank(),
      axis.text.x=element_blank(),
     plot.title = element_text(hjust = 0.5),
     plot.margin = margin(10, 10, 10, 10),
     legend.title = element_blank(),
     legend.position = "none",
     
   ) +
  labs(title = "CONNECT Fall 2021 Project buckets", y = "Number", fill = "Buckets") 


g

Student Skills

The following chart was constructed by counting every student who put at least a 2 under each skill.

Show code
stu <- stu_raw
colnames(stu) <- label(stu)

stu <- stu |>
  clean_names() |>
  filter(progress == 100) |>
  select(first_name, 64:88)

names(stu) <-
  gsub(pattern = "please_rate_your_experience_in_the_following_technical_skills_note_1_not_experienced_and_5_extremely_experienced_",
       replacement = "",
       x = names(stu))

names(stu) <- gsub(pattern = "_",
                   replacement = " ",
                   x = names(stu))

names(stu) <- str_to_title(names(stu))

stu2 <- stu |>
  pivot_longer(col = 2:26,
               names_to = "Skill",
               values_to = "Rating") |>
  #Setting students who put 1 to NA
  mutate(Rating = na_if(Rating, 1)) |>
  drop_na() |>
  group_by(Skill) |>
  count()

theme_set(theme_classic())

g <- ggplot(stu2, aes(x = reorder(Skill, n), y = n)) +
  geom_bar(stat = "identity", fill = "#F4A261") +
  geom_text(aes(label = n, y = n),
            position = position_stack(vjust = 0.5),
            size = 6) +
  coord_flip() +
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.line = element_blank(),
    text = element_text(size = 16,
                        face = "bold"),
    axis.title.x = element_blank(),
    axis.title.y = element_blank(),
    axis.ticks = element_blank(),
    axis.text.x = element_blank(),
    plot.title = element_text(hjust = 0.5),
    plot.margin = margin(10, 10, 10, 10),
    legend.title = element_blank(),
    legend.position = "none"
    
  ) +
  labs(title = "CONNECT Fall 2021 Student Skills")


g

Data Cleaning

The data from Qualtrics can be messy. Many of the variables names default to the question number. In order to make the variable names more descriptive, the actual question description is substituted. This causes the variable names to be rather long. To reduce the length of variable names, many of them have been renamed, and the stringr package was used to remove repetitive words.

Cleaned Organization Data

Ordinal questions for both student and organization surveys were converted to a numeric scale. For example, for the question “How much working or volunteering with nonprofits should your candidate have?” the responses were converted from 1 to 5, with “No experience required” being 1 and “2 or more years” being 5. This is done because the algorithm can only compare numeric values.

Show code
org <- org_raw

#Assigning variable names
colnames(org) <- label(org)

org <- org |>
  clean_names() |>
  #Specify here which school to filter by
  filter(which_connect_program_is_this_project_affiliated_with == "RGK Center") |>
  rename(
    time_commitment = realistically_how_much_time_do_you_expect_your_student_to_commit_per_week_working_on_your_assigned_project,
    transportation = does_your_candidate_need_to_have_access_to_transportation,
    flexible_hours = will_your_project_permit_flexible_work_hours,
    remote = will_your_candidate_be_able_to_work_remotely,
    nonprofit_experience = how_much_experience_working_or_volunteering_with_nonprofits_should_your_candidate_have_working_or_volunteering_for_nonprofits
  ) |>
  select(
    organization,
    project_name,
    project_goal,
    project_deliverables,
    transportation,
    flexible_hours,
    remote,
    time_commitment,
    nonprofit_experience,
    40:64
  ) |>
  mutate(
    nonprofit_experience = case_when(
      nonprofit_experience == "No experience required" ~ "1",
      nonprofit_experience == "Less than 6 months" ~ "2",
      nonprofit_experience == "6 - 12 months" ~ "3",
      nonprofit_experience == "1 - 2 years" ~ "4",
      nonprofit_experience == "2 or more years" ~ "5",
    ),
    time_commitment = case_when(
      time_commitment == "Less than 5 hours per week" ~ "1",
      time_commitment == "5 - 10 hours per week" ~ "2",
      time_commitment == "8 - 12 hours per week" ~ "3",
      time_commitment == "10 - 15 hours per week" ~ "4",
      time_commitment == "15 - 20 hours per week" ~ "5"
    )
  ) |>
  arrange(project_name)


names(org) <-
  gsub(pattern = "please_rate_how_relevant_the_following_technical_skills_are_to_your_project_",
       replacement = "",
       x = names(org))

org <- data.frame(lapply(org, function(x) {
  gsub("1 - Not relevant", "1", x)
}))

org <- data.frame(lapply(org, function(x) {
  gsub("5 - Extremely relevant", "5", x)
}))


org <- org |>
  mutate(across(8:34, as.numeric))

#For Table
org_table <- org |>
  select(-c(organization, project_deliverables, project_goal))

names(org_table) <- gsub(pattern = "_",
                         replacement = " ",
                         x = names(org_table))

names(org_table) <- str_to_title(names(org_table))

cell_color <- function(x) {
  x = cell_spec(x,
                color = spec_color(x, end = .7),
                bold = T,)
}

org_table <- org_table |>
  select(-Transportation, -`Flexible Hours`,-Remote, everything()) |>
  mutate(across(2:28, cell_color))

kbl(org_table, escape = F) |>
  kable_material(c("hover", "striped", "condensed"), full_width = F) |>
  scroll_box(width = "100%", height = "400px")
Project Name Time Commitment Nonprofit Experience Tableau Literature Review Conducting Interviews Program Evaluation Logic Modeling Html Arc Gis Outcomes Definition Microsoft Office Suite Google Data Studio R Shiny Statistical Analysis Consulting Baseline Data Identification Machine Learning Project Management Survey Design Sql R Javascript Data Mining Java Python Css Power Bi Transportation Flexible Hours Remote
Andy Roddick Foundation 3 1 5 1 1 1 1 1 1 1 1 5 1 5 3 1 1 1 1 1 3 1 1 1 1 1 5 No Yes Yes
Camp Fire Central Texas 2 3 1 1 1 3 1 1 1 3 1 1 1 1 1 1 1 1 5 1 1 1 1 1 1 1 1 No Yes Yes
Community Advancement Network 2 1 1 1 1 1 1 1 1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1 5 1 1 No Yes Yes
Family Eldercare 2 3 1 5 5 1 3 1 1 5 1 1 1 1 1 1 1 1 5 1 1 1 1 1 1 1 1 No Yes Yes
Financial Health Pathways 2 3 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 No Yes Yes
Impact Austin 2 3 1 5 5 5 5 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 No Yes Yes
Impact Factory 2 1 1 1 1 1 1 1 1 1 1 1 1 5 1 1 1 1 5 1 1 1 1 1 1 1 1 No Yes Yes
PelotonU 4 1 5 1 1 1 1 1 1 1 1 1 1 5 1 1 1 1 1 1 5 1 1 1 1 1 1 No Yes Yes
Texas Rural Funders 2 3 1 1 5 1 1 1 1 1 1 1 1 1 3 1 1 1 5 1 1 1 1 1 1 1 1 No Yes Yes
Urban School Food Alliance 1 4 1 1 1 1 1 1 1 1 5 1 1 1 1 3 1 3 1 1 1 1 5 1 1 1 1 No Yes Yes
Walking by Faith Prison Ministry 1 1 1 5 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 No Yes Yes
Young Invincibles - project #1 3 1 5 1 1 1 1 1 3 1 1 3 3 5 1 1 1 1 1 1 5 1 4 1 1 1 3 No Yes Yes
Young Invincibles - Project #2 2 4 1 1 1 3 3 1 1 5 1 1 1 1 1 1 1 1 5 1 1 1 1 1 1 1 1 No Yes Yes

Overall, 13 organizations were included in this cohort.

Cleaned Student Data

Show code
stu <- stu_raw

colnames(stu) <- label(stu)

stu <- stu |> 
  clean_names() |> 
  filter(progress == 100) |> 
  select(
    first_name,
    last_name,
    is_there_any_additional_information_regarding_your_availability_that_we_should_know_about,
    do_you_have_access_to_transportation,
    do_you_need_flexible_work_hours,
    do_you_need_the_ability_to_work_remotely,
    realistically_how_much_time_can_you_commit_per_week_to_working_on_a_project,
    over_the_past_5_years_approximately_how_much_experience_have_you_had_working_or_directly_volunteering_with_nonprofit_organizations,
    64:90
  ) |>
    rename(
      time_commitment = realistically_how_much_time_can_you_commit_per_week_to_working_on_a_project,
      transportation = do_you_have_access_to_transportation,
      flexible_hours = do_you_need_flexible_work_hours, 
      remote = do_you_need_the_ability_to_work_remotely,
      nonprofit_experience = over_the_past_5_years_approximately_how_much_experience_have_you_had_working_or_directly_volunteering_with_nonprofit_organizations,
      relevant_skills = do_you_have_other_relevant_skills_that_may_be_helpful_for_us_to_know_about_i_e_other_languages_spoken_list_them_here_note_separate_each_skill_with_a_comma,
      target_population = every_semester_the_connect_program_works_with_organizations_that_serve_many_different_target_populations_are_there_any_specific_populations_that_youre_interested_in_working_with
    ) |> 
  mutate(nonprofit_experience = case_when(
    nonprofit_experience == "No experience (yet!)" ~ "1",
    nonprofit_experience == "Less than 6 months" ~ "2",
    nonprofit_experience == "6 - 12 months" ~ "3",
    nonprofit_experience == "1 - 2 years" ~ "4",
    nonprofit_experience == "2 or more years" ~ "5",
  )) 

names(stu) <- gsub(pattern = "please_rate_your_experience_in_the_following_technical_skills_note_1_not_experienced_and_5_extremely_experienced_",
                  replacement = "",
                  x = names(stu))

stu$time_commitment[stu$time_commitment == "Less than 5 hours per week"] <- "1"
stu$time_commitment[stu$time_commitment == "5 - 10 hours per week"] <- "2"
stu$time_commitment[stu$time_commitment == "8 - 12 hours per week"] <- "3"
stu$time_commitment[stu$time_commitment == "10 - 15 hours per week"] <- "4"
stu$time_commitment[stu$time_commitment == "15 - 20 hours per week"] <- "5"

stu <- stu |> 
  mutate(across(7:33, as.numeric)) |> 
  mutate(name = paste0(first_name," ", last_name)) |> 
  select(name, time_commitment, 4:35) |>  
  arrange(str_extract(name,'\\s.*$'))


#For table 
stu_table <- stu |> 
  select(-c(relevant_skills, target_population))

names(stu_table) <- gsub(pattern = "_",
                  replacement = " ",
                  x = names(stu_table))

names(stu_table) <- str_to_title(names(stu_table))


cell_color <- function(x) {
  x = cell_spec(x,
                color = spec_color(x, end = .7),
                bold = T,
                )
}

stu_table <- stu_table |> 
  select(-Transportation,-`Flexible Hours`, -Remote, everything()) |> 
  mutate(across(2:28, cell_color))


kbl(stu_table, escape = F) |> 
  kable_material(c("hover", "striped", "condensed"), full_width = F) |> 
  scroll_box(width = "100%", height = "400px")
Name Time Commitment Nonprofit Experience Literature Review Program Evaluation Consulting Project Management Baseline Data Identification Logic Modeling Outcomes Definition Survey Design Conducting Interviews Data Mining Statistical Analysis Sql Machine Learning Html Css Java Python Tableau Microsoft Office Suite R R Shiny Arc Gis Power Bi Google Data Studio Javascript Transportation Flexible Hours Remote
Caitlin Arenas Martinez 2 5 3 3 5 5 2 3 3 3 5 3 2 1 1 1 1 1 1 1 5 1 1 1 1 1 1 Yes Yes Yes
Sidney Beaty 3 3 4 3 2 3 3 3 3 4 3 4 5 2 2 1 1 1 3 2 5 3 1 5 1 3 1 Yes Yes Yes
Erin Benton 4 5 5 4 5 5 4 5 5 5 5 4 4 1 1 1 1 1 1 1 5 3 1 3 1 1 1 Yes Yes Yes
Debasmita Bhakta 2 1 4 1 4 4 1 1 1 1 3 1 2 1 1 1 1 1 1 1 4 1 1 1 1 1 1 Yes Yes Yes
Katherine Bowman 2 5 1 1 1 4 3 1 1 1 4 1 1 4 1 1 1 1 1 2 5 2 1 1 1 1 1 Yes Yes No
Da’Shon Carr 3 5 4 5 4 4 4 3 3 5 5 5 2 1 2 2 1 1 1 3 5 4 1 1 1 1 1 Yes Yes Yes
Vanessa Chebli 3 5 3 4 3 3 1 1 3 4 4 2 3 1 1 2 2 1 1 1 5 1 1 1 1 1 1 Yes No No
Noemi Cruz-Cruz 3 5 3 4 4 5 4 3 3 2 5 2 3 1 1 1 1 1 1 1 4 1 1 1 1 1 1 Yes Yes Yes
Alicia Danze 2 5 5 3 3 3 2 2 2 4 5 2 2 1 1 1 1 1 1 1 3 1 1 1 1 1 1 Yes Yes Yes
Katherine Dillon 5 3 5 4 1 1 1 1 1 4 3 1 4 1 1 2 2 1 1 1 5 1 1 1 1 1 3 Yes Yes Yes
Ram Disabar Jr.  2 4 4 4 5 5 4 5 5 3 5 4 4 1 4 1 1 1 3 1 5 1 1 4 1 1 1 Yes Yes No
Agnes Elimbi Moudio 3 2 3 2 2 3 2 1 1 1 1 2 3 3 3 3 3 1 3 1 4 3 1 2 1 2 1 Yes Yes Yes
Shelby Frye 2 3 5 4 4 4 2 2 3 4 3 2 2 1 1 1 1 1 1 1 4 1 1 1 1 1 1 Yes Yes No
Jaren Gaither 5 5 5 4 5 5 5 5 4 4 4 4 4 1 1 1 1 1 1 1 5 3 1 2 1 1 1 Yes Yes No
Gaurav Gaur 4 5 3 4 5 5 4 3 4 4 2 3 3 3 4 3 2 2 4 4 4 4 2 2 4 2 2 Yes Yes Yes
Abigail Grider 3 5 5 2 2 1 4 1 1 3 3 1 3 1 1 1 1 1 1 1 5 1 1 1 1 1 1 Yes Yes No
Emily Hebel 3 2 4 2 5 4 2 1 1 4 5 1 4 1 1 1 1 1 3 1 5 1 1 1 1 2 1 Yes No No
Chiayu Hu 4 4 3 4 4 5 3 3 4 4 4 1 2 1 1 2 2 1 1 1 5 1 1 1 1 3 1 No Yes No
Noah Jones 5 4 5 5 5 5 2 1 1 4 5 2 3 2 1 1 1 1 1 1 4 1 1 1 1 1 1 Yes No No
Raeesa Khan 3 5 2 2 5 4 1 1 3 2 2 1 2 1 1 2 2 1 1 1 5 2 1 3 1 1 1 Yes Yes Yes
Michael Kiel 5 5 4 3 3 5 4 2 4 3 4 2 4 1 1 2 1 1 3 3 5 1 1 5 1 2 1 Yes No No
Jonathan Klan 5 1 4 3 1 5 4 4 4 3 4 4 4 1 1 2 2 2 5 1 5 1 1 1 1 1 2 Yes Yes No
Matthew Kojm 4 4 3 4 3 4 3 1 1 3 1 2 3 4 1 1 1 1 3 5 5 2 1 2 2 1 1 Yes Yes No
Liberte Manirakiza 4 5 3 2 1 4 2 1 2 3 5 1 1 1 1 1 1 1 1 1 5 1 1 1 1 2 1 Yes Yes Yes
Alec Mendoza 3 1 4 5 3 3 3 3 4 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Yes Yes Yes
Jonathan Nieves 2 1 3 3 3 3 2 1 1 2 3 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 No Yes Yes
Niina Nomura 2 3 5 3 4 4 3 2 4 5 4 1 2 1 1 1 1 1 1 4 5 1 1 1 1 2 1 Yes Yes No
Nnenna Odim 2 5 4 4 3 3 3 2 3 2 4 2 2 1 1 1 1 1 1 2 4 1 1 1 1 2 1 No Yes Yes
Abundance Ogodogu Chima 2 4 3 4 2 4 3 1 3 3 4 2 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 Yes Yes Yes
Patricia Romero 2 5 3 4 1 4 1 1 1 1 4 1 1 1 1 1 1 1 1 1 5 1 1 1 1 1 1 Yes Yes Yes
Philip Romike 4 4 2 4 1 4 1 1 1 3 3 1 3 2 1 2 1 1 1 1 4 1 1 3 1 1 1 Yes Yes No
Lauren Rosa 1 5 5 3 3 5 2 2 1 3 2 1 2 1 1 1 1 1 1 1 5 2 1 1 1 1 1 Yes Yes No
Mikhaela Sample 2 4 4 3 2 5 2 4 3 2 4 2 4 1 1 1 1 1 1 1 5 4 1 3 2 1 1 Yes Yes No
Christopher Shafik 2 5 3 2 2 2 1 1 1 1 3 1 1 1 1 2 2 2 2 1 4 1 1 1 1 2 1 Yes No No
Nidhi Shah 1 1 3 4 4 4 1 1 1 3 4 1 1 1 1 1 1 1 1 1 5 1 1 1 1 1 1 No Yes No
Cooper Thompson 5 4 5 3 2 3 4 2 2 5 4 2 2 1 1 1 1 1 1 1 5 1 1 1 1 3 1 Yes Yes Yes
Alanna Uthgenannt 3 5 5 4 4 4 2 2 3 5 5 1 3 1 1 1 1 1 1 1 5 1 1 1 1 1 1 No Yes No
Ziyi Wang 2 4 3 2 1 3 1 1 1 4 4 1 1 1 1 1 1 1 1 1 5 1 1 1 1 1 1 Yes Yes Yes
Brie Winnega 2 5 5 2 4 4 1 1 3 3 4 1 1 1 1 1 1 1 1 2 5 1 1 1 1 1 1 Yes Yes No
Stephan Zaparolli 5 5 5 4 5 3 4 3 4 3 2 5 5 1 1 1 1 3 4 3 4 3 1 1 1 1 1 Yes Yes No
emily zirbes 2 5 5 5 5 5 3 2 3 3 5 2 2 2 2 1 1 1 2 3 4 2 1 2 3 1 1 Yes No Yes

Overall, 41 students applied during this cohort.

Other relevant skills and desired population

The following table includes student’s other relevant skills and their desired target population, which is a new question we added for this cohort.

Show code
stu_table2 <- stu |> 
  select(name, relevant_skills, target_population) |> 
  mutate(relevant_skills = replace_na(relevant_skills, ""),
         target_population = replace_na(target_population, ""))

names(stu_table2) <- gsub(pattern = "_",
                  replacement = " ",
                  x = names(stu_table2))

names(stu_table2) <- str_to_title(names(stu_table2))

kbl(stu_table2, escape = F) |> 
  kable_minimal(c("hover"), full_width = F) |> 
  scroll_box(width = "100%", height = "400px")
Name Relevant Skills Target Population
Caitlin Arenas Martinez
Sidney Beaty My primary interest is affordable housing.
Erin Benton
Debasmita Bhakta Corporate communication, legal research and analysis, policy research and analysis, stakeholder mapping, government communication Urban Food Alliance/ American YouthWorks/ Goodwill Central Texas/ Austin Allies/ Austin Tech Alliance
Katherine Bowman I’m specifically interested in an arts or education organization, but I’m open to anything.
Da’Shon Carr I have experience in applying cultural responsive and equatable evaluation practices and methods. I have experience with DEIB (diversity, equity, inclusion, and belonging) initiatives such as helping organizations to craft a diversity statement or implement a DEIB workforce survey to improve job satisfaction and workplace culture. My preference would be to work with nonprofits that specifically supporting youth or families with low-income backgrounds or supporting youth to achieve higher education. However, I really do not have a preference.
Vanessa Chebli proficient in Salesforce, proficient in Mailchimp I’m interested in any opportunity, but specifically social justice-oriented organizations
Noemi Cruz-Cruz Spanish, Legal research, public speaking, translation and interpretation from English to Spanish, interpersonal skills, country condition research, data input, data extraction, and drafting USCIS forms and applications. Immigrants, unaccompanied minors, Latinx community, refugees, asylums, children, and underserved populations.
Alicia Danze Spanish Until now, I have worked primarily with immigrant communities, but I am open to working with others!
Katherine Dillon Fast-learner I currently work with Title I schools which are schools with a population of 50% or higher on free and reduced lunch (a poverty measure). I would love to work with this population again and/or rural populations.
Ram Disabar Jr. 
Agnes Elimbi Moudio FRENCH(fluent)
Shelby Frye I am most interested in communities of oppressed genders or sexualities
Jaren Gaither I am interested in working with programs that aim to serve historically underserved populations such as African American and communities with disabilities.
Gaurav Gaur Administrative and managerial experience of handling large teams Open to all positions, more interested in projects related to data analysis (esp. impact analysis, policy impact)
Abigail Grider French langauge women, education, migrants
Emily Hebel Excel, German, qualitative and quantitative data analysis I would love to work with other women and support disenfranchised women.
Chiayu Hu Language: Chinese (Native Speaker), Google Analytics I’m open to every organization, but I’m quite interested in people with disabilities, children/ the elderly topic, and local community operations.
Noah Jones
Raeesa Khan Project Management Skills, QA work, Requirement Definition, Urdu, Hindi, Limited Spanish I’m open to working with anyone but would love to work with organizations focused on populations impacted by Austin’s rapid growth (low income communities of color) and house-less populations.
Michael Kiel Russian, German, Serbo-Croatian, Google Suite, Canva, InDesign, Google Maps, Report Writing, and Asana I would enjoy the opportunity to work with an international organization but am also highly motivated to assist organizations in Austin, Texas, or other U.S. locations. I am primarily interested in mapping, monitoring, evaluation, and program design but would be happy anywhere that my skills match a client’s needs.
Jonathan Klan
Matthew Kojm I am very interested in non-profits focused on housing and food insecurity. Volunteering at food banks and my experience as an Americorps VISTA motivated me to work on these two issues. Although, I am very open to a variety of roles.
Liberte Manirakiza Event Planning& Execution, lesson planning, Spanish, Kirundi I’m interested in working with low income marginalized communities .
Alec Mendoza
Jonathan Nieves
Niina Nomura I’m interested in serving people in poverty.
Nnenna Odim Spanish, English, Igbo, Portuguese historically targeted populations -specifically I’d love to work with organization who serve young children (under 7) and their families; also organizations supporting those who identify as refugees, immigrants, or gender queer. I appreciate you for asking and organizing this program.
Abundance Ogodogu Chima Teaching, Organizing, French language Women and Girls
Patricia Romero I am a native Spanish speaker. Not formally trained. women of color of from different age ranges.
Philip Romike infrastructure cost estimating, flood map reading, formal benefit-cost analysis experience disaster survivors, “social infrastructure”, public trusts, recovery communities
Lauren Rosa REDCap, Data organization, Asana, Canva, Wix, Wordpress Not particularly! I liked Foundation Communities this summer.
Mikhaela Sample
Christopher Shafik
Nidhi Shah
Cooper Thompson Qualtrics, Google Drive Suite, Japanese, Spanish, French, Google Analytics, Google Ads I am especially interested in ESL populations, as well as disabled communities, as accessibility, both lingual and physical, is the primary focus of my thesis projects.
Alanna Uthgenannt interpersonal communication, customer service, Stata low-wage workers, women
Ziyi Wang
Brie Winnega I’m open to all types of projects, but anything geared toward health or disability advocacy would be especially meaningful to me
Stephan Zaparolli I am a fluent spanish speaker. Not necessarily.
emily zirbes International Business, Teaching, Human Resources, Management, Customer Service I am excited and enthusiastic to be involved with any project I can add a positive value to!

Utility Score Formulation

In order to use the matching Algorithm, students and organizations have to be assigned a utility ratings. These ratings are formulated by comparing how similar the students’ skills and nonprofit experience are to the project expectations.

Each student receives a utility score for each organization, and each organization is assigned a utility sore for each student. This ensures that both the student’s and organization’s rankings are taken into account for the matching process. For example, if an organization assigns two students the same utility score, but one student has a higher utility score for that organization, this student is selected and the other student returns to the selection pool.

Utility Score Example

The code block below was used to calculate Caitlin Arenas Martinez’s utility rating for Andy Roddick Foundation. Each skill is compared by subtracting the student value from the organization’s. If the result equals 0 or greater, that means the student’s skill rating meets or exceeds what the organization’s project requires and the skill receives a utility rating of 1. If the result is a negative number, that means the organizations requirements exceed what the student put on their survey form, and they receive a utility rating less than one, depending on how far the student’s answer was from the organizations.

Additionally, if a student put a 1 on a skill, which means they have no background in it, they automatically receive a zero utility rating. Students who don’t match the organization based on the logistics questions, also receive a utility rating of zero.

Finally, all of the skill utility ratings are added up to produce one utility rating for Caitlin Arenas Martinez and Andy Roddick Foundation. The higher the number, the greater the utility the student will have for that project.

Show code
#Initial Data Manipulation
org1 <- org[1, ] |>
  pivot_longer(9:34, names_to = "variable", values_to = "org_value")
stu1 <- stu[1, ] |>
  pivot_longer(6:31, names_to = "variable", values_to = "student_value")

#Assigning a utility score for each skill
match1 <- left_join(org1, stu1, by = "variable") |>
  mutate(
    subtracted = student_value - org_value,
    utility = case_when(
      subtracted >= 0 ~ 1,
      subtracted == -1 ~ .75,
      subtracted == -2 ~ .5,
      subtracted == -3 ~ .25,
      subtracted == -4 ~ 0
    ),
    #if the student put 1 on their survey it means
    #they would provide 0 utility for that skills 
    utility = case_when(
      student_value == 1 ~ 0,
      TRUE ~ utility),
    #If the students logistics don't match up with the orgs
    #Then the utility for that student changes to 0
    utility = case_when(
      transportation.x == "Yes" & transportation.y == "No" ~ 0,
      flexible_hours.x == "No" & flexible_hours.y == "Yes" ~ 0,
      remote.x == "No" & remote.y == "Yes" ~ 0,
      TRUE ~ utility
    ),#If the orgs time commitment is greater than what the student
    #is willing to work their utility is set to 0
    utility = case_when(
      time_commitment.x > time_commitment.y ~ 0,
      TRUE ~ utility
    )
  ) 

utility_score <- sum(match1$utility)
print(paste0(stu[1,1],"'s utility for ",org[1,1], ": ", utility_score))
[1] "Caitlin Arenas Martinez's utility for Andy Roddick Foundation: 0"

Organization Utility Scores

For simplicity sake, only the organization utility scores are shown below because their preference matters more in the event of an unsuitable first match. Higher organization utility scores mean that the student is better suited to the organization’s project.

Show code
#utility organizations  
row_names <- stu$name
column_names <- org$project_name

uO <- matrix(nrow = length(stu$name),
             ncol = length(org$project_name),
             dimnames = list(row_names, column_names))


for (j in 1:length(stu$name)) {
  for (i in 1:length(org$project_name)) {
    org1 <- org[i,] |>
      pivot_longer(9:34, names_to = "variable", values_to = "org_value")
    
    stu1 <- stu[j,] |>
      pivot_longer(6:31, names_to = "variable", values_to = "student_value")
    
    match1 <- left_join(org1, stu1, by = "variable") |>
      mutate(
        subtracted =  org_value - student_value,
        utility = case_when(
          subtracted <= 0 ~ 1,
          subtracted == 1 ~ .75,
          subtracted == 2 ~ .5,
          subtracted == 3 ~ .25,
          subtracted >= 4 ~ 0
        ),
        utility = case_when(
          org_value == 1 ~ 0,
          TRUE ~ utility),
        utility = case_when(
          transportation.x == "Yes" & transportation.y == "No" ~ 0,
          flexible_hours.x == "No" & flexible_hours.y == "Yes" ~ 0,
          remote.x == "No" & remote.y == "Yes" ~ 0,
          TRUE ~ utility
        ),
        utility = case_when(time_commitment.x > time_commitment.y ~ 0,
                            TRUE ~ utility)
      )
    
    utility_score <- sum(match1$utility)
    uO[j, i] <- utility_score
  }
}

#Table Styling 
cell_color <- function(x) {
  x = cell_spec(x,
                color = spec_color(x, end = .7),
                bold = T,
                )
}


uO_table <- as.data.frame(uO) |> 
  mutate(across(1:9, cell_color))


kbl(uO_table, escape = F) |> 
  kable_material(c("hover", "striped", "condensed"), full_width = F) |> 
  scroll_box(width = "100%", height = "400px")
Andy Roddick Foundation Camp Fire Central Texas Community Advancement Network Family Eldercare Financial Health Pathways Impact Austin Impact Factory PelotonU Texas Rural Funders Urban School Food Alliance Walking by Faith Prison Ministry Young Invincibles - project #1 Young Invincibles - Project #2
Caitlin Arenas Martinez 0 3.5 0.25 4.5 3 4 0.75 0 3.5 4.25 1.50 0.00 4.00
Sidney Beaty 3.5 3.75 1.5 4.5 2.5 3.75 1.75 0 3 4.50 1.75 5.75 4.00
Erin Benton 2.75 4 0.75 6 3 5.75 1.75 1.25 4 4.75 2.00 4.75 5.00
Debasmita Bhakta 0 1.5 0.25 2.25 1.5 1.75 0.25 0 2 2.50 1.75 0.00 1.25
Katherine Bowman 0 2 0 2.25 2.25 1.75 0 0 2.25 4.00 1.00 0.00 2.00
Da’Shon Carr 2.75 4 0.25 5.25 3 4.75 1.25 0 4 5.00 1.75 4.50 4.50
Vanessa Chebli 2 3.75 0.5 4 2.75 3.5 1.25 0 3.5 3.75 1.50 3.00 3.75
Noemi Cruz-Cruz 2 3.25 0.5 4.25 2.75 4.25 0.75 0 3.25 4.00 1.50 3.00 3.75
Alicia Danze 0 3.5 0.25 4.75 3 4 1 0 3.75 3.50 2.00 0.00 3.75
Katherine Dillon 1.75 3.25 0.75 3.75 2.5 3.25 1.5 0.75 2.75 2.75 2.00 3.00 3.00
Ram Disabar Jr.  0 3.5 1.25 5.25 3 5.5 1.25 0 3.5 4.75 1.75 0.00 4.50
Agnes Elimbi Moudio 2.5 2 1 1.75 1.25 1.5 0.5 0 1.5 3.25 1.00 4.00 1.75
Shelby Frye 0 3.75 0.25 4.5 2.5 4 1 0 3.25 3.50 2.00 0.00 3.75
Jaren Gaither 2.75 3.75 0.75 5.25 2.75 5.25 1.5 1.25 3.5 4.75 2.00 4.50 4.50
Gaurav Gaur 4.25 3.75 1.25 4.25 2.25 3.75 1.25 2 3 4.25 1.25 6.00 4.50
Abigail Grider 1.75 2.75 0.5 3.5 2.5 2.75 1 0 2.75 3.50 2.00 2.75 2.75
Emily Hebel 2.5 2.75 1.25 3.75 2.75 2.75 1.5 0 3.5 3.25 1.75 3.25 2.50
Chiayu Hu 2.25 3.75 0.25 4.75 2.75 4.25 1 0.25 3.5 4.00 1.50 3.00 4.50
Noah Jones 2 3.25 0.5 4.25 3 4 1.25 0.5 3.75 3.75 2.00 3.00 3.25
Raeesa Khan 2 3 0.25 2.75 2 2.25 0.5 0 2.5 3.50 1.00 3.25 3.00
Michael Kiel 3 3.5 1.25 4.5 2.75 4 1.25 1.25 3.25 4.25 1.75 4.50 4.00
Jonathan Klan 1.75 3 1.75 4.25 2.25 4 1.25 0.75 2.25 4.00 1.75 3.75 3.50
Matthew Kojm 3.5 3 1 2.5 2 2.25 1 1.75 2.5 4.25 1.00 4.75 3.00
Liberte Manirakiza 1.25 3 0 3.75 3 3 0.5 0 3 3.75 1.50 2.50 3.00
Alec Mendoza 3 2.75 0.75 3.5 1.5 3.75 0.75 0 2 2.75 1.50 4.50 3.25
Jonathan Nieves 0 2.25 0 2.25 1.75 2 0.25 0 2.25 2.50 1.50 0.00 2.00
Niina Nomura 0 4 0.25 5.25 2.75 4.25 1.25 0 3.75 3.75 2.00 0.00 4.25
Nnenna Odim 0 3.25 0.25 4 2.5 4 0.5 0 3 4.00 1.75 0.00 3.50
Abundance Ogodogu Chima 0 3.5 0 3.75 2.75 3.5 0.5 0 3 3.75 1.50 0.00 3.50
Patricia Romero 0 2.5 0 2.75 2.25 3 0 0 2.25 3.50 1.50 0.00 2.50
Philip Romike 1.5 3 0.5 2.75 2.5 2.5 1 0.5 2.5 3.25 1.25 3.25 3.00
Lauren Rosa 0 0 0 0 0 0 0 0 0 3.75 1.75 0.00 0.00
Mikhaela Sample 0 3.25 0.75 4.25 2.5 4.25 1 0 2.75 4.00 1.75 0.00 3.75
Christopher Shafik 0 2.25 0.25 2.5 2 2.25 0 0 2.25 3.00 1.50 0.00 2.25
Nidhi Shah 0 0 0 0 0 0 0 0 0 2.75 1.50 0.00 0.00
Cooper Thompson 2 3.75 0.25 4.75 2.75 3.75 1.25 0.25 3.5 4.25 2.00 3.25 4.00
Alanna Uthgenannt 2 4 0.5 5.25 3 4.5 1.5 0 4 3.75 2.00 2.75 4.25
Ziyi Wang 0 3 0 3.5 2.75 2.5 0.75 0 3 3.50 1.50 0.00 3.00
Brie Winnega 0 3.25 0 4.25 2.75 3.5 0.5 0 3.25 3.50 2.00 0.00 3.25
Stephan Zaparolli 3.5 3.5 1.75 4.5 2.25 4.25 1.5 2 2.75 4.75 1.75 5.00 4.25
emily zirbes 0 3.5 0.5 4.75 3 4.75 0.75 0 3.5 4.00 2.00 0.00 3.75


The Gale Shapley Algorithm

The matchingR package was used to quickly compute Gale-Shapley algorithm. The algorithm itself was devised to create satisfactory matches between two parties, in this case between organizations and students. You can find a full description of the pacakge and literature behind Gale-Shapley here.

Show code
#Matching Algorithm 
library(matchingR)
matching = galeShapley.marriageMarket(uS, uO)

Matching Results

The table below shows the matching results. It also shows a list of the top three scorers for each project. For projects where there were ties, all of the ties are listed as well. Program managers can use this list to help find a match if the first wasn’t suitable.

Show code
#Creating a list of top scorerers
uO2 <- as.data.frame(uO)
org_options <- tibble::rownames_to_column(uO2, "Student") 
tops <- list()

for (i in 2:ncol(org_options)) {
  org_top <- org_options |> 
    slice_max(org_options[,i], n = 3)
  
tops[[i]] <- paste(org_top$Student, collapse=", ") 
}

tops <- tops[-1]
top_df <- data.frame(matrix(unlist(tops), nrow=length(tops), byrow=TRUE))

#Creating a dataframe for table 
org_info <- org |> 
  select(project_name)

students_matched <- stu |> 
  slice(matching$engagements) |> 
  bind_cols(org_info) |>  
  bind_cols(top_df) |> 
  rename(Student = name, 
         Project = project_name,
         "Top Scores" = "matrix.unlist.tops...nrow...length.tops...byrow...TRUE.") |> 
  select(Project, Student,"Top Scores")
  

var_label(students_matched$Project) <- NULL


  
kbl(students_matched) |> 
  kable_minimal("hover", full_width = T) |> 
  scroll_box(width = "100%", height = "600px")
Project Student Top Scores
Andy Roddick Foundation Matthew Kojm Gaurav Gaur, Sidney Beaty, Matthew Kojm, Stephan Zaparolli
Camp Fire Central Texas Alanna Uthgenannt Erin Benton, Da’Shon Carr, Niina Nomura, Alanna Uthgenannt
Community Advancement Network Stephan Zaparolli Jonathan Klan, Stephan Zaparolli, Sidney Beaty
Family Eldercare Erin Benton Erin Benton, Da’Shon Carr, Ram Disabar Jr., Jaren Gaither, Niina Nomura, Alanna Uthgenannt
Financial Health Pathways emily zirbes Caitlin Arenas Martinez, Erin Benton, Da’Shon Carr, Alicia Danze, Ram Disabar Jr., Noah Jones, Liberte Manirakiza, Alanna Uthgenannt, emily zirbes
Impact Austin Jaren Gaither Erin Benton, Ram Disabar Jr., Jaren Gaither
Impact Factory Sidney Beaty Sidney Beaty, Erin Benton, Katherine Dillon, Jaren Gaither, Emily Hebel, Alanna Uthgenannt, Stephan Zaparolli
PelotonU Gaurav Gaur Gaurav Gaur, Stephan Zaparolli, Matthew Kojm
Texas Rural Funders Da’Shon Carr Erin Benton, Da’Shon Carr, Alanna Uthgenannt
Urban School Food Alliance Ram Disabar Jr.  Da’Shon Carr, Erin Benton, Ram Disabar Jr., Jaren Gaither, Stephan Zaparolli
Walking by Faith Prison Ministry Cooper Thompson Erin Benton, Alicia Danze, Katherine Dillon, Shelby Frye, Jaren Gaither, Abigail Grider, Noah Jones, Niina Nomura, Cooper Thompson, Alanna Uthgenannt, Brie Winnega, emily zirbes
Young Invincibles - project #1 Michael Kiel Gaurav Gaur, Sidney Beaty, Stephan Zaparolli
Young Invincibles - Project #2 Chiayu Hu Erin Benton, Da’Shon Carr, Ram Disabar Jr., Jaren Gaither, Gaurav Gaur, Chiayu Hu