/TCS-Talent-Ocean

TCS Talent Ocean Challenge submission. Find suitable candidate for project based on skills.

Primary LanguageJupyter Notebook

This solution Won Contest

alt text

TCS-Talent-Ocean Round 2 Submission

Problem Statement: Find suitable candidates for project based on required skills and candidates skills

Approach to solve problem:
My approach to solve given problem includes following steps:

  1. Get data
  2. Data extraction
  3. Data cleansing
  4. Data manipulation
  5. Calculation of matching factor
  6. Get suitable candidates on the basis of matching factor

Algorithm:

  1. Start
  2. Create two dataframes for candidate and project details.
  3. Extract required columns ( project id, location, required skills ) from main dataframe of project.
  4. Data extraction: Extract required columns ( candidate id, location, skills ) from main dataframe of candidate.
  5. Data manipulation: Convert both dataframes data into lower case for simplicity of comparison.
  6. Data cleansing: for both dataframes replace multiples by one. Example : java programming, java language, core java, programming in java, java se can be replaced by simple one-word java.
  7. Calculate matching factor of every candidate for every project Matching factor = 90% of (matching skills) + 10% of (location match)
  8. Get top 5 candidates having high matching factor for the project.
  9. Final dataframe (project id, location, required skills, top 5 suitable candidates, matching factor for top 5 candidates.)

Flowchart:
alt text

Data visualization:

  1. Matching factor vs projects
    This graph shows project against matching factor
    alt text

  2. Matching factors range
    In below graph, orange green shows number of projects which has matching factor between 41 – 60% and so on.
    alt text

Requirements:
Programming language: Python 3
Python library: Pandas, matplotlib, numpy
Tool used: Google Colab

Time complexity :
Time complexity to reach solution using above mentioned approach is:
T(n) = O(Log( n²))