in list columns
play

IN LIST COLUMNS Cases from an Online Recruitment Platform Omayma - PowerPoint PPT Presentation

FITTING HUMANS STORIES IN LIST COLUMNS Cases from an Online Recruitment Platform Omayma Said @OmaymaS The Leading Job Site in EGYPT 19 th Century Adolphe Quetelet 19 th Century THE AVERAGE MAN (Lhomme Moyen) Adolphe Quetelet THE


  1. FITTING HUMANS STORIES IN LIST COLUMNS Cases from an Online Recruitment Platform Omayma Said @OmaymaS

  2. The Leading Job Site in EGYPT

  3. 19 th Century Adolphe Quetelet

  4. 19 th Century THE AVERAGE MAN (L’homme Moyen) Adolphe Quetelet

  5. THE AVERAGE MAN Physical Weight, Height (Body Mass Index)

  6. THE AVERAGE MAN Social Marriage

  7. The AVERAGE MAN Moral Crimes

  8. For Quetelet THE AVERAGE MAN = PERFECTION

  9. “ If an individual at any given epoch of society possessed all the qualities of the AVERAGE MAN , he would represent all ” that is great, good, or beautiful. Adolphe Quetelet

  10. Who Is The “AVERAGE MAN” in Your Society?

  11. Are You Just a Deviant from The “AVERAGE MAN” ?

  12. Many Disagree !

  13. Now...

  14. Now... Tremendous Growth of Data

  15. Misuse of SUMMARY STATISTICS

  16. Misuse of SUMMARY STATISTICS

  17. Misuse of SUMMARY STATISTICS

  18. The Leading Job Site in EGYPT

  19. What Do We Optimize For? Quality Quantity Relevance Matching Jobs & Job Seekers

  20. Let’s talk about DATA KPIs METRICS

  21. “The average job seeker applies for N jobs per month” Me:

  22. “The average number of applications per job this month is GREAT” Me:

  23. What AVERAGE Do You Measure?

  24. Who is The AVERAGE Job Seeker?

  25. Can We Tell Better STORIES About Our Users?

  26. We can tell better stories with…. Contextual Effective Understanding + Data Analysis

  27. Contextual + Effective Understanding Data Analysis Culture Socioeconomic Status Market Dynamics

  28. Effective Contextual + Understanding Data Analysis Mindset Workflow Framework/Tools

  29. Contextual Effective + Understanding Data Analysis Culture Mindset Socioeconomic Status Workflow Market Dynamics Framework/Tools

  30. Contextual Understanding Contextual Understanding + Effective Data Analysis Effective Data Analysis = Better Stories

  31. Contextual Understanding Contextual Understanding + Effective Data Analysis Effective Data Analysis = Actionable Insights

  32. Framework/Tools + Compatible Packages https://speakerdeck.com/hadley/tidyverse

  33. The Tidyverse Let’s focus on Main Concepts

  34. Three Main Concepts Tidy Data by: @_inundata & @jcheng

  35. Three Main Concepts Tidy Data A variable in a column An observation in a row Tidy your data And here you go! [ tibble, tidyr , dplyr, and friends ]

  36. Data comes from different SOURCES And more...

  37. Data comes in different FORMATS And more...

  38. Data comes in different FORMATS DATAFRAME Read Tidy (TIBBLE)

  39. Tidy Data user job_id job_title company application_date Sara A1234 Software Developer Company A 2017-01-02 Sara A1568 Senior Software Company B 2017-03-02 Engineer Sara A1590 Software Engineer Company C 2017-03-03 …... ….. …. …. …. Omar A1234 Software Developer Company A 2017-01-03 Omar A1580 Android Developer Company C 2017-01-20 ….. …. …. …. …..

  40. Three Main Concepts Nested Data

  41. Three Main Concepts Nested Data One row per group Instead of One row per observation [ tidyr ]

  42. Nested Data user job_id job_title company application_date Sara A1234 Software Developer Company A 2017-01-02 Sara A1568 Senior Software Company B 2017-03-02 Engineer user applications Sara A1590 Software Engineer Company C 2017-03-03 Sara <Tibble [3 x 4]> …... ….. …. …. …. user_data %>% group_by(user) %>% Omar A1234 Software Developer Company A 2017-01-03 nest(.key = “applications”) Omar <Tibble [2 x 4]> Omar A1580 Android Developer Company C 2017-01-20 …. …... ….. …. …. …. …..

  43. Nested Data user job_id job_title company application_date Sara A1234 Software Developer Company A 2017-01-02 Sara A1568 Senior Software Company B 2017-03-02 Engineer Sara A1590 Software Engineer Company C 2017-03-03 job_id applications A1234 <Tibble [2 x 4]> …... ….. …. …. …. job_data %>% group_by(job_id) %>% Omar A1234 Software Developer Company A 2017-01-03 A1568 <Tibble [30 x 4]> nest(.key = “applications”) A1590 <Tibble [100 x 4]> Omar A1580 Android Developer Company C 2017-01-20 A1580 <Tibble [120 x 4]> ….. …. …. …. …..

  44. Three Main Concepts Functional Programming

  45. Three Main Concepts Functional Programming Handle iteration problems powerfully and emphasize the actions rather than the objects [ purrr ]

  46. Let’s store models in columns job_id applications app_count A5638 <tibble [362 x 27]> 362 A8957 <tibble [110 x 27]> 110 ….. ….. ….. job_app_data<- job_app_data %>% mutate(glm_model = map(app_data, ~ glm(viewed ~ app_day, data = .x, family = binomial)))

  47. Let’s store models in columns job_id applications app_count glm_model A5638 <tibble [362 x 27]> 362 <S3: glm> A8957 <tibble [110 x 27]> 110 <S3: glm> ….. ….. ….. …. job_app_data<- job_app_data %>% mutate(glm_model = map(app_data, ~ glm(viewed ~ app_day, data = .x, family = binomial)))

  48. Iterate and answer more questions user applications preferences Sara <tibble [2 x 10]> <tibble [4 x 10]> Omar <tibble [2 x 15]> <tibble [2 x 10]> ….. ….. …. user_data <- user_data %>% mutate(common_jobs = map2(applications, preferences, ~intersect(.x[[“job_title”],.y[[“job_title”]])

  49. Iterate and answer more questions user applications preferences common_jobs Sara <tibble [2 x 10]> <tibble [4 x 10]> <chr [2]> Omar <tibble [2 x 15]> <tibble [2 x 10]> <chr [0]> ….. ….. …. user_data <- user_data %>% mutate(common_jobs = map2(applications, preferences, ~intersect(.x[[“job_title”],.y[[“job_title”]])

  50. Let’s Look Closer !

  51. Problem Overall growth and good KPIs Shortage in applications for certain Software Development jobs

  52. Problem Shortage in applications for certain Software Development jobs Dissatisfied Employers

  53. Problem Shortage in applications for certain Software Development jobs Flagged by different sources

  54. Problem Shortage in applications for certain Software Development jobs Masked by high-level metrics

  55. Hypotheses Talent Shortage What if we just have a small pool of job seekers who are interested in the affected jobs?

  56. Hypotheses Irrelevant Jobs Maybe employers are not catching up with the global trends or job seekers aspirations!

  57. Hypotheses Hidden Jobs What if some jobs do not get enough exposure in the search/recommendation pages?

  58. Investigation The Job’s Side st

  59. The Job’s Side What about applications details per job?

  60. The Job’s Side Job applications details

  61. The Job’s Side What about iOS job applications?

  62. Job Applications Growth over time iOS Developers Jobs

  63. What happens to job posts on day X? iOS Developers Jobs Day 7

  64. What is special about these jobs? iOS Developers Jobs Mobile Developer ( iOS , Android )

  65. iOS Developers Jobs What about the rest?

  66. More with Shiny... *Sample of Wuzzuf Job Posts

  67. Investigation The Job Seeker’s Side nd

  68. The Job Seeker’s Side How do job seekers fill their profiles? tidytext

  69. The Job Seeker’s Side How do job seekers fill their profiles? Details of job s eeker’s keywords

  70. The Job Seeker’s Side What about the repetition in the extracted keywords?

  71. The Job Seeker’s Side What about the repetition in the extracted keywords? Summaries from Job Seeker's Keywords

  72. The Job Seeker’s Side Which jobs match each user’s profile? solrium

  73. The Job Seeker’s Side Which jobs match each user’s profile?

  74. The Job Seeker’s Side Which jobs match each user’s profile? Recommended Jobs Details

  75. What ACTIONS Did This Analysis Trigger?

  76. Recommended Actions Talent Shortage - Acquire more senior developers - Activate the existing developers - Support the community

  77. Recommended Actions Irrelevant Jobs - Advise employers about the market - Revisit preference-based matching

  78. Recommended Actions Hidden Jobs - Revisit text fields indexing - Tune field weights for scoring - Improve mail recommendation

  79. Main Concepts Tidy Data Nested Data Functional Programming Understanding + = Contextual Actionable Effective Data Analysis Insights @OmaymaS

  80. FITTING HUMANS STORIES IN LIST COLUMNS Cases from an Online Recruitment Platform Omayma Said @OmaymaS

Recommend


More recommend