Talent Management System Documentation

Swagger Rest : https://app.swaggerhub.com/apis/Codex-by-Telkom/TalentManagementSystem/1.0.0#/

link graphQL development: http://tms-api-dev.vsan-apps.playcourt.id/graphQL

Setting Before Login:

Add api-key in HTTP HEADERS():: .. note:

{
  "x-api-key": "ynFV0UIdfrBMPipO"
}

Setting After Login:

Add token in HTTP HEADERS(): .. note:

{
  "Authorization": "bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVjZTM3ZjMwYmYxNzJlMDAyYzAwN2YzYyIsInRhbGVudElkIjpudWxsLCJlbWFpbCI6ImVrYUBjb2RleC53b3JrcyIsInBob25lTnVtYmVyIjoiKzYyODY1NDMzMzMzMzMiLCJmdWxsTmFtZSI6ImVrYSIsInJvbGVJZCI6eyJfaWQiOiI1YzFjYWFhNWZiNmZjMDBlZWU4NDQyMWQiLCJ0aXRsZSI6IlN1cGVyIEFkbWluIiwibGV2ZWwiOjksInN0YXRlIjoiU1VQRVJfQURNSU4ifSwidXNlclR5cGVJZCI6eyJfaWQiOiI1YzE5YmVlZTVhMTY2NWY2MDczYzBjYjUiLCJ0aXRsZSI6IlRNIE1lbWJlciIsInN0YXRlIjoiVE0iLCJfX3YiOjB9LCJpYXQiOjE1NjQ2MzMyNDMsImV4cCI6MTU2NTA2NTI0M30.Se-kkDIX-2_2WwEwqXtV9Y03OIW4FY7c_VorvAGzZcM"
}

Log in

Name LoginUser
Description This API is used to user log in
Content-Type application/json

Parameter Input:

Parameter Type Data Min Max Description Example
email string 1 50 must contain email corporate eka@codex.works
password string 8 50 combine, must contain at least 1 character (upper/lowercase) and 1 number eka12345

mutation for LoginUser:

mutation LoginUser {
  login(input: {
    email: "eka@codex.works"
    password: "eka12345"
  }) {
    token
    roleId {
      _id
      title
      state
    }
    userTypeId {
      _id
      title
      state
    }
  }
}

Response:

{
  "data": {
    "login": {
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVjMjRjZjVlNTFiYjg5OTMyOWExYjY3NSIsImVtYWlsIjoiYWxiYXJpcWlAY29kZXgud29ya3MiLCJwaG9uZU51bWJlciI6IjA4MjE0MjU4OTYxMCIsImZuYW1lIjoiQWxiYXJpcWkiLCJsbmFtZSI6IlJhaG1hdCIsInJvbGVJZCI6eyJfaWQiOiI1YzFjYWFhNWZiNmZjMDBlZWU4NDQyMWQiLCJ0aXRsZSI6IlN1cGVyIEFkbWluIiwibGV2ZWwiOjksInN0YXRlIjoiU1VQRVJfQURNSU4ifSwidXNlclR5cGVJZCI6eyJfaWQiOiI1YzE5YmVlZTVhMTY2NWY2MDczYzBjYjUiLCJ0aXRsZSI6IlRNIE1lbWJlciIsInN0YXRlIjoiVE0iLCJfX3YiOjB9LCJpYXQiOjE1NTA0NTk4MTQsImV4cCI6MTU1MDU0NjIxNH0.PbwVguB3E-o6yTFpN6aLFE66gj6VPvKmMld2aVubx_I",
      "roleId": {
        "_id": "5c1caaa5fb6fc00eee84421d",
        "title": "Super Admin",
        "state": "SUPER_ADMIN"
      },
      "userTypeId": {
        "_id": "5c19beee5a1665f6073c0cb5",
        "title": "TM Member",
        "state": "TM"
      }
    }
  },
  "extensions": {}
}

Reset Password

1. Request Reset Password By Email

Name RequestResetPasswordByEmail
Description This API is used by user to request reset password by email
Content-Type application/json

Parameter Input:

Parameter Type Data Min Max Description Example
email string 1 50 must contain email corporate eka@codex.works

mutation for RequestResetPasswordByEmail:

mutation RequestResetPasswordByEmail{
  requestResetPassword(input: {
    email: "eka@codex.works"
  }) {
    status
    isOtp
    userId
  }
}

Response:

{
  "data": {
    "requestResetPassword": {
      "status": "success",
      "isOtp": false,
      "userId": "5c2c6dbddd41992341ad441f"
    }
  },
  "extensions": {}
}

2. Request Reset Password By Phone Number

Name RequestResetPasswordByPhone
Description This API is used by user to request reset password by phone number
Content-Type application/json

Parameter Input:

Parameter Type Data Min Max Description Example
phoneNumber string 10 15 starting with ‘+’ +6281314074950

mutation for RequestResetPasswordByPhone:

mutation RequestResetPasswordByPhone{
  requestResetPassword(input: {
    phoneNumber: "+6281314074950"
  }) {
    status
    isOtp
    userId
  }
}

Response:

{
  "data": {
    "requestResetPassword": {
      "status": "success",
      "isOtp": true,
      "userId": "5c2c6dbddd41992341ad441f"
    }
  },
  "extensions": {}
}

3. Confirm OTP

Name ConfirmOTP
Description This API is used by user to confirm OPT that will get
Content-Type application/json

Parameter Input:

Parameter Type Data Min Max Description
OTP number 6 6 Sent by system ramdomly

mutation for ConfirmOtp:

mutation ConfirmOTP {
  confirmOtp(input: {
    userId: "5c2c6dbddd41992341ad441f"
    otpstr: "882707"
  })
}

Response:

{
  "data": {
    "confirmOtp": "766fa640-3d74-11e9-8c9a-9122baaef8f8"
  },
  "extensions": {}
}

4. Confirm Reset Password

Name ConfirmResetPassword
Description This API is used by user to create new password
Content-Type application/json

Parameter Input:

Parameter Type Data Min Max Description Example
password string 8 50 combine, must contain at least 1 character (upper/lowercase) and 1 number eka12345

mutation for ConfirmResetPassword:

mutation ConfirmResetPassword {
  ConfirmResetPassword(input: {
    token: "5766fa640-3d74-11e9-8c9a-9122baaef8f8"
    password: "eka12345"
  })
}

Response:

{
  "data": {
    "ConfirmResetPassword": true
  },
  "extensions": {}
}

5. Verify Reset Password Token

Name VerifyResetPasswordToken
Description This API is used in reset password for get token
Content-Type application/json

query for VerifyResetPasswordToken:

query VerifyResetPasswordToken {
  verifyResetPasswordToken(input: {
    token: "4afc3320-08d1-11e9-aeaa-a14fdc7d18f1"
  })
}

Response:

{
  "data": {
    "VerifyResetPasswordToken": true
  },
  "extensions": {}
}

Roles

Name GetRoles
Description This API is used to get roles user
Content-Type application/json

query for GetRoles:

query GetRoles{
  getRoles{
    _id
    title
    level
    state
  }
}

Response:

{
  "data": {
    "getRoles": [
      {
        "_id": "5c1c6d16a3fba470ca1846fa",
        "title": "Assessor",
        "level": 6,
        "state": "ASSESSOR"
      },
      {
        "_id": "5c1caa8afb6fc00eee844219",
        "title": "Admin",
        "level": 8,
        "state": "ADMIN"
      },
      {
        "_id": "5c1caaa5fb6fc00eee84421d",
        "title": "Super Admin",
        "level": 9,
        "state": "SUPER_ADMIN"
      },
      {
        "_id": "5c1caac7fb6fc00eee84422c",
        "title": "User",
        "level": 3,
        "state": "USER"
      },
      {
        "_id": "5c2503ef52834355b1440677",
        "title": "Partner",
        "level": 6,
        "state": "PARTNER"
      }
    ]
  }
}

Job Levels

Name GetJobLevels
Description This API is used to get level user
Content-Type application/json

query for GetJobLevels:

query GetJobLevels{
  getJobLevels{
    data{
      _id
      title
      state
    }
    count
  }
}

Response:

{
  "data": {
    "getJobLevels": {
      "data": [
        {
          "_id": "5c1befc6df07570377f999ed",
          "title": "Junior",
          "state": "JUNIOR"
        },
        {
          "_id": "5c1befe06450f803866801db",
          "title": "Medium",
          "state": "MEDIUM"
        },
        {
          "_id": "5c1befea8b316703ab7f6710",
          "title": "Senior",
          "state": "SENIOR"
        }
      ],
      "count": 3
    }
  }
}

Funnels

Name GetFunnels
Description This API is used to get funnels talent
Content-Type application/json

query for GetFunnels:

query GetFunnels{
  getFunnels{
    _id
    title
    state
  }
}

Response:

{
  "data": {
    "getFunnels": [
      {
        "_id": "5c24bcf85108408debf4d065",
        "title": "lead",
        "state": "LEAD"
      },
      {
        "_id": "5c24bd1a5108408debf4d066",
        "title": "shortlist",
        "state": "SHORTLIST"
      }
    ]
  }
}

User Type

Name GetUserTypes
Description This API is used to get user type
Content-Type application/json

query for GetUserTypes:

query UserTypes{
  getUserTypes{
    _id
    title
    state
  }
}

Response:

{
  "data": {
    "getUserTypes": [
      {
        "_id": "5c19beaf5a1665f6073c0cb2",
        "title": "Talent",
        "state": "TALENT"
      },
      {
        "_id": "5c19becc5a1665f6073c0cb3",
        "title": "Assessor",
        "state": "ASSESSOR"
      },
      {
        "_id": "5c19bed35a1665f6073c0cb4",
        "title": "Partner",
        "state": "PARTNER"
      },
      {
        "_id": "5c19beee5a1665f6073c0cb5",
        "title": "TM Member",
        "state": "TM"
      }
    ]
  }
}

Source

Name createSource
Description This API is used to create new soure
Content-Type application/json

1. Add Source

mutation for createSource:

mutation CreateSource {
  createSource(input: {
    title: "Pak Gatot (DEV)"
  }) {
      _id
      title
      state
  }
}

Response:

{
  "data": {
    "createSource": {
      "_id": "5d4d2349e2f634002c0f8e36",
      "title": "Pak Way"
      "state": "PAK_WAY"
    }
  }
}

2. Get Source

query for createSource:

query GetSources {
  getSources(search: {
    title: "pak"
  }) {
    data {
      _id
      title
      state
    }
    count
  }
}

Response:

{
  "data": {
    "getSources": {
      "data": [
        {
          "_id": "5d4d13496306876c1091b7ab",
          "title": "Pak Gatot (DEV)",
          "state": "PAK_WAY"
        }
      ],
      "count": 1
    }
  }
}

Pool-List of Candidate

Parameter Input:

Parameter Type Data Min Max Description Example
NIK string 16 16 required 1671900090933037
fullName string 10 50 required Eka Afrianti
email string 10 50 required, not validation ekaafrianti01@gmail.com
phoneNumber string 10 15 required, starting with ‘+’, not validation +6281399000090
source string 1 50 required, Tech In Asia
Job Role string 10 15 required, Technical Documentation Engineer
Job Level string 1 50 required, Tech In Asia

Output:

Parameter Type Data Description Example
Candidate Name string Name of candidate Eka Afrianti
Date Process string Date Process Latest Talent 01/08/2019
Source string NIK corporate assessor if he/she have Tech In Asia
Number of Exam string Job Role talent 3

1. Add New Data Candidate

Name createCandidate
Description This API is used to create data new candidate
Content-Type application/json

mutation for createCandidate:

mutation CreateCandidate {
  createCandidateHistory(input: {
    fullName: "Bayu Saputra"
    email: "bayu@mailinator.com"
    phoneNumber: "+6282812341234"
    source: {
      type: "program"
      title: "Rekrutmen BUMN"
    }
    nik: "1234512345121456"
    skill: {
      jobLevelId: "5c1befe06450f803866801db"
      jobRoleId: "5cb40a8cb607ed0028f841fe"
    }
  }) {
    _id
  }
}

Response:

{
  "data": {
    "createCandidateHistory": {
      "_id": "5d5cb4c586d7ad002c1378d7"
    }
  }
}

2. Search Candidate

Name getCandidates
Description This API is used to search data candidate (search by name)
Content-Type application/json

query for SearchCandidates:

query SearchCandidates {
  getCandidates (search: {
    fullName: "Bayu Saputra"
  }) {
    data {
      _id
      nik
      latestHistory{
        _id
        fullName
        email
        phoneNumber
        isActive
        source{
          type
          title
        }
        activityLog{
          _id
          title
          timestamp
        }
        skill{
          jobRoleId {
            _id
            title
            state
          }
          jobLevelId{
            _id
            title
            state
          }
          experience
        }
        linkedInUrl
        cvUrl
        portfolioUrl
        portfolioLinkUrl
        stackIds{
          _id
          title
          state
        }
        assessments{
          _id
        }
      }
      funnelId{
        _id
        title
        state
      }
      history {
        _id
        fullName
        email
        phoneNumber
        isActive
        source {
          type
          title
        }
        activityLog {
          _id
          title
          timestamp
        }
        skill{
          jobRoleId {
            _id
            title
            state
          }
          jobLevelId {
            _id
            title
            state
          }
          experience
        }
        linkedInUrl
        cvUrl
        portfolioUrl
        portfolioLinkUrl
        stackIds{
          _id
          title
          state
        }
        assessments{
          _id
        }
      }
      createdAt
      updatedAt
    }
  count
  }
}

Response:

{
  "data": {
    "getCandidates": {
      "data": [
        {
          "_id": "5d53c7840658a50f219f63e5",
          "nik": null,
          "latestHistory": {
            "_id": "5d394c863f337e52bf7b1034",
            "fullName": "BAYU SAPUTRA",
            "email": "babasaputra06@gmail.com",
            "phoneNumber": null,
            "isActive": false,
            "source": {
              "type": "program",
              "title": "Recruitment Prohire Batch I 2019"
            },
            "activityLog": [
              {
                "_id": "5d394c873f337e52bf7b1039",
                "title": "Send an Email",
                "timestamp": "1564036231183"
              },
              {
                "_id": "5d394c883f337e52bf7b1043",
                "title": "Email Sent",
                "timestamp": "1564036232446"
              },
              {
                "_id": "5d394c883f337e52bf7b1044",
                "title": "Incomplete Data Profile & Grit Test",
                "timestamp": "1564036232524"
              },
              {
                "_id": "5d4079a52f01eb002c63280c",
                "title": "Not Interested",
                "timestamp": "1564506533819"
              }
            ],
            "skill": {
              "jobRoleId": {
                "_id": "5cb40a3bb607ed0028f841fb",
                "title": null,
                "state": null
              },
              "jobLevelId": {
                "_id": "5c1befe06450f803866801db",
                "title": null,
                "state": null
              },
              "experience": null
            },
            "linkedInUrl": null,
            "cvUrl": null,
            "portfolioUrl": null,
            "portfolioLinkUrl": null,
            "stackIds": [],
            "assessments": []
          },
          "funnelId": {
            "_id": "5c24bcf85108408debf4d065",
            "title": null,
            "state": null
          },
          "history": [
            {
              "_id": "5d394c863f337e52bf7b1034",
              "fullName": "BAYU SAPUTRA",
              "email": "babasaputra06@gmail.com",
              "phoneNumber": null,
              "isActive": false,
              "source": {
                "type": "program",
                "title": "Recruitment Prohire Batch I 2019"
              },
              "activityLog": [
                {
                  "_id": "5d394c873f337e52bf7b1039",
                  "title": "Send an Email",
                  "timestamp": "1564036231183"
                },
                {
                  "_id": "5d394c883f337e52bf7b1043",
                  "title": "Email Sent",
                  "timestamp": "1564036232446"
                },
                {
                  "_id": "5d394c883f337e52bf7b1044",
                  "title": "Incomplete Data Profile & Grit Test",
                  "timestamp": "1564036232524"
                },
                {
                  "_id": "5d4079a52f01eb002c63280c",
                  "title": "Not Interested",
                  "timestamp": "1564506533819"
                }
              ],
              "skill": {
                "jobRoleId": {
                  "_id": "5cb40a3bb607ed0028f841fb",
                  "title": null,
                  "state": null
                },
                "jobLevelId": {
                  "_id": "5c1befe06450f803866801db",
                  "title": null,
                  "state": null
                },
                "experience": null
              },
              "linkedInUrl": null,
              "cvUrl": null,
              "portfolioUrl": null,
              "portfolioLinkUrl": null,
              "stackIds": [],
              "assessments": []
            }
          ],
          "createdAt": null,
          "updatedAt": null
        },
        {
          "_id": "5d5cb4c586d7ad002c1378d8",
          "nik": "1234512345121456",
          "latestHistory": {
            "_id": "5d5cb4c586d7ad002c1378d7",
            "fullName": "Bayu Saputra",
            "email": "bayu@mailinator.com",
            "phoneNumber": "+6282812341234",
            "isActive": false,
            "source": {
              "type": "program",
              "title": "Rekrutmen BUMN"
            },
            "activityLog": [
              {
                "_id": "5d5cb4c586d7ad002c1378d9",
                "title": "Send an Email",
                "timestamp": "1566356677698"
              },
              {
                "_id": "5d5cb4c686d7ad002c1378da",
                "title": "Email Sent",
                "timestamp": "1566356678198"
              },
              {
                "_id": "5d5cb4c686d7ad002c1378db",
                "title": "Incomplete Data Profile & Grit Test",
                "timestamp": "1566356678252"
              },
              {
                "_id": "5d5d08b7d3f31f002ca27019",
                "title": "Completed Data Profile & Grit Test",
                "timestamp": "1566378167448"
              }
            ],
            "skill": {
              "jobRoleId": {
                "_id": "5cb40a8cb607ed0028f841fe",
                "title": "Full Stack Engineer",
                "state": "FULL_STACK_ENGINEER"
              },
              "jobLevelId": {
                "_id": "5c1befe06450f803866801db",
                "title": "Medium",
                "state": "MEDIUM"
              },
              "experience": null
            },
            "linkedInUrl": null,
            "cvUrl": null,
            "portfolioUrl": null,
            "portfolioLinkUrl": null,
            "stackIds": [],
            "assessments": []
          },
          "funnelId": {
            "_id": null,
            "title": "lead",
            "state": "LEAD"
          },
          "history": [
            {
              "_id": "5d5cb4c586d7ad002c1378d7",
              "fullName": "Bayu Saputra",
              "email": "bayu@mailinator.com",
              "phoneNumber": "+6282812341234",
              "isActive": false,
              "source": {
                "type": "program",
                "title": "Rekrutmen BUMN"
              },
              "activityLog": [
                {
                  "_id": "5d5cb4c586d7ad002c1378d9",
                  "title": "Send an Email",
                  "timestamp": "1566356677698"
                },
                {
                  "_id": "5d5cb4c686d7ad002c1378da",
                  "title": "Email Sent",
                  "timestamp": "1566356678198"
                },
                {
                  "_id": "5d5cb4c686d7ad002c1378db",
                  "title": "Incomplete Data Profile & Grit Test",
                  "timestamp": "1566356678252"
                },
                {
                  "_id": "5d5d08b7d3f31f002ca27019",
                  "title": "Completed Data Profile & Grit Test",
                  "timestamp": "1566378167448"
                }
              ],
              "skill": {
                "jobRoleId": {
                  "_id": "5cb40a8cb607ed0028f841fe",
                  "title": "Full Stack Engineer",
                  "state": "FULL_STACK_ENGINEER"
                },
                "jobLevelId": {
                  "_id": "5c1befe06450f803866801db",
                  "title": "Medium",
                  "state": "MEDIUM"
                },
                "experience": null
              },
              "linkedInUrl": null,
              "cvUrl": null,
              "portfolioUrl": null,
              "portfolioLinkUrl": null,
              "stackIds": [],
              "assessments": []
            }
          ],
          "createdAt": "1566356677645",
          "updatedAt": "1566378452902"
        },
        {
          "_id": "5d53c78a0658a50f219f7919",
          "nik": null,
          "latestHistory": {
            "_id": "5d398a78f80a5d0cd4d69191",
            "fullName": "KEVIN BAYU SAPUTRA",
            "email": "kevinzbayu08@gmail.com",
            "phoneNumber": "+6289604979304",
            "isActive": false,
            "source": {
              "type": "program",
              "title": "Recruitment Prohire Batch I 2019"
            },
            "activityLog": [
              {
                "_id": "5d398a78f80a5d0cd4d69196",
                "title": "Send an Email",
                "timestamp": "1564052088770"
              },
              {
                "_id": "5d398a79f80a5d0cd4d69197",
                "title": "Email Sent",
                "timestamp": "1564052089206"
              },
              {
                "_id": "5d398a79f80a5d0cd4d69198",
                "title": "Incomplete Data Profile & Grit Test",
                "timestamp": "1564052089259"
              },
              {
                "_id": "5d40815e2f01eb002c633260",
                "title": "Not Interested",
                "timestamp": "1564508510464"
              }
            ],
            "skill": {
              "jobRoleId": {
                "_id": "5cb409d2b607ed0028f841f8",
                "title": null,
                "state": null
              },
              "jobLevelId": {
                "_id": "5c1befe06450f803866801db",
                "title": null,
                "state": null
              },
              "experience": null
            },
            "linkedInUrl": "http://www.linkedin.com/in/kevinbayu/",
            "cvUrl": "https://api.codex.works/media/1564368598762230_5b118f62da62d869d2169abca4a6b428.pdf",
            "portfolioUrl": "https://api.codex.works/media/1564368598817276_c580eb9c693a0d821c383add73372401.pdf",
            "portfolioLinkUrl": null,
            "stackIds": [
              {
                "_id": "5d38227a19e95d002badb19b",
                "title": null,
                "state": null
              }
            ],
            "assessments": [
              {
                "_id": "5d3e5ed7c6abce002c403859"
              },
              {
                "_id": "5d3e5ed7c6abce002c4038d3"
              }
            ]
          },
          "funnelId": {
            "_id": "5c24bcf85108408debf4d065",
            "title": null,
            "state": null
          },
          "history": [
            {
              "_id": "5d398a78f80a5d0cd4d69191",
              "fullName": "KEVIN BAYU SAPUTRA",
              "email": "kevinzbayu08@gmail.com",
              "phoneNumber": "+6289604979304",
              "isActive": false,
              "source": {
                "type": "program",
                "title": "Recruitment Prohire Batch I 2019"
              },
              "activityLog": [
                {
                  "_id": "5d398a78f80a5d0cd4d69196",
                  "title": "Send an Email",
                  "timestamp": "1564052088770"
                },
                {
                  "_id": "5d398a79f80a5d0cd4d69197",
                  "title": "Email Sent",
                  "timestamp": "1564052089206"
                },
                {
                  "_id": "5d398a79f80a5d0cd4d69198",
                  "title": "Incomplete Data Profile & Grit Test",
                  "timestamp": "1564052089259"
                },
                {
                  "_id": "5d40815e2f01eb002c633260",
                  "title": "Not Interested",
                  "timestamp": "1564508510464"
                }
              ],
              "skill": {
                "jobRoleId": {
                  "_id": "5cb409d2b607ed0028f841f8",
                  "title": null,
                  "state": null
                },
                "jobLevelId": {
                  "_id": "5c1befe06450f803866801db",
                  "title": null,
                  "state": null
                },
                "experience": null
              },
              "linkedInUrl": "http://www.linkedin.com/in/kevinbayu/",
              "cvUrl": "https://api.codex.works/media/1564368598762230_5b118f62da62d869d2169abca4a6b428.pdf",
              "portfolioUrl": "https://api.codex.works/media/1564368598817276_c580eb9c693a0d821c383add73372401.pdf",
              "portfolioLinkUrl": null,
              "stackIds": [
                {
                  "_id": "5d38227a19e95d002badb19b",
                  "title": null,
                  "state": null
                }
              ],
              "assessments": [
                {
                  "_id": "5d3e5ed7c6abce002c403859"
                },
                {
                  "_id": "5d3e5ed7c6abce002c4038d3"
                }
              ]
            }
          ],
          "createdAt": null,
          "updatedAt": null
        }
      ],
      "count": 3
    }
  }
}

3. Filter Candidates

Name getCandidates
Description This API is used to filter data candidate
Content-Type application/json

query for filterCandidates:

query filterCandidates{
  getCandidates(filter:{
    jobRoleId: "5cb40a8cb607ed0028f841fe"
    #jobLevelId: "5cb40a8cb607ed0028f841fe"
    #source: {
    #  type: ""
    #  title: ""
    #}
    #activityLog: ""
    #sort:
    #skip:
    #limit:
    #score: {
    #  low: 1
    #  high: 10
    # }
    #date: {
    #  start: ""
    #  end: ""
    #}
    #isRecruit: "false"
  }){
    {
    data {
      _id
      nik
      latestHistory{
        _id
        fullName
        email
        phoneNumber
        isActive
        source{
          type
          title
        }
        activityLog{
          _id
          title
          timestamp
        }
        skill{
          jobRoleId {
            _id
            title
            state
          }
          jobLevelId{
            _id
            title
            state
          }
          experience
        }
        linkedInUrl
        cvUrl
        portfolioUrl
        portfolioLinkUrl
        stackIds{
          _id
          title
          state
        }
        assessments{
          _id
        }
      }
      funnelId{
        _id
        title
        state
      }
      history {
        _id
        fullName
        email
        phoneNumber
        isActive
        source {
          type
          title
        }
        activityLog {
          _id
          title
          timestamp
        }
        skill{
          jobRoleId {
            _id
            title
            state
          }
          jobLevelId {
            _id
            title
            state
          }
          experience
        }
        linkedInUrl
        cvUrl
        portfolioUrl
        portfolioLinkUrl
        stackIds{
          _id
          title
          state
        }
        assessments{
          _id
        }
      }
      createdAt
      updatedAt
    }
  count
  }
}

Response:

{
  "data": {
    "getCandidates": {
      "data": [
        {
          "_id": "5d53c7840658a50f219f63e5",
          "nik": null,
          "latestHistory": {
            "_id": "5d394c863f337e52bf7b1034",
            "fullName": "BAYU SAPUTRA",
            "email": "babasaputra06@gmail.com",
            "phoneNumber": null,
            "isActive": false,
            "source": {
              "type": "program",
              "title": "Recruitment Prohire Batch I 2019"
            },
            "activityLog": [
              {
                "_id": "5d394c873f337e52bf7b1039",
                "title": "Send an Email",
                "timestamp": "1564036231183"
              },
              {
                "_id": "5d394c883f337e52bf7b1043",
                "title": "Email Sent",
                "timestamp": "1564036232446"
              },
              {
                "_id": "5d394c883f337e52bf7b1044",
                "title": "Incomplete Data Profile & Grit Test",
                "timestamp": "1564036232524"
              },
              {
                "_id": "5d4079a52f01eb002c63280c",
                "title": "Not Interested",
                "timestamp": "1564506533819"
              }
            ],
            "skill": {
              "jobRoleId": {
                "_id": "5cb40a3bb607ed0028f841fb",
                "title": null,
                "state": null
              },
              "jobLevelId": {
                "_id": "5c1befe06450f803866801db",
                "title": null,
                "state": null
              },
              "experience": null
            },
            "linkedInUrl": null,
            "cvUrl": null,
            "portfolioUrl": null,
            "portfolioLinkUrl": null,
            "stackIds": [],
            "assessments": []
          },
          "funnelId": {
            "_id": "5c24bcf85108408debf4d065",
            "title": null,
            "state": null
          },
          "history": [
            {
              "_id": "5d394c863f337e52bf7b1034",
              "fullName": "BAYU SAPUTRA",
              "email": "babasaputra06@gmail.com",
              "phoneNumber": null,
              "isActive": false,
              "source": {
                "type": "program",
                "title": "Recruitment Prohire Batch I 2019"
              },
              "activityLog": [
                {
                  "_id": "5d394c873f337e52bf7b1039",
                  "title": "Send an Email",
                  "timestamp": "1564036231183"
                },
                {
                  "_id": "5d394c883f337e52bf7b1043",
                  "title": "Email Sent",
                  "timestamp": "1564036232446"
                },
                {
                  "_id": "5d394c883f337e52bf7b1044",
                  "title": "Incomplete Data Profile & Grit Test",
                  "timestamp": "1564036232524"
                },
                {
                  "_id": "5d4079a52f01eb002c63280c",
                  "title": "Not Interested",
                  "timestamp": "1564506533819"
                }
              ],
              "skill": {
                "jobRoleId": {
                  "_id": "5cb40a3bb607ed0028f841fb",
                  "title": null,
                  "state": null
                },
                "jobLevelId": {
                  "_id": "5c1befe06450f803866801db",
                  "title": null,
                  "state": null
                },
                "experience": null
              },
              "linkedInUrl": null,
              "cvUrl": null,
              "portfolioUrl": null,
              "portfolioLinkUrl": null,
              "stackIds": [],
              "assessments": []
            }
          ],
          "createdAt": null,
          "updatedAt": null
        },
        {
          "_id": "5d5cb4c586d7ad002c1378d8",
          "nik": "1234512345121456",
          "latestHistory": {
            "_id": "5d5cb4c586d7ad002c1378d7",
            "fullName": "Bayu Saputra",
            "email": "bayu@mailinator.com",
            "phoneNumber": "+6282812341234",
            "isActive": false,
            "source": {
              "type": "program",
              "title": "Rekrutmen BUMN"
            },
            "activityLog": [
              {
                "_id": "5d5cb4c586d7ad002c1378d9",
                "title": "Send an Email",
                "timestamp": "1566356677698"
              },
              {
                "_id": "5d5cb4c686d7ad002c1378da",
                "title": "Email Sent",
                "timestamp": "1566356678198"
              },
              {
                "_id": "5d5cb4c686d7ad002c1378db",
                "title": "Incomplete Data Profile & Grit Test",
                "timestamp": "1566356678252"
              },
              {
                "_id": "5d5d08b7d3f31f002ca27019",
                "title": "Completed Data Profile & Grit Test",
                "timestamp": "1566378167448"
              }
            ],
            "skill": {
              "jobRoleId": {
                "_id": "5cb40a8cb607ed0028f841fe",
                "title": "Full Stack Engineer",
                "state": "FULL_STACK_ENGINEER"
              },
              "jobLevelId": {
                "_id": "5c1befe06450f803866801db",
                "title": "Medium",
                "state": "MEDIUM"
              },
              "experience": null
            },
            "linkedInUrl": null,
            "cvUrl": null,
            "portfolioUrl": null,
            "portfolioLinkUrl": null,
            "stackIds": [],
            "assessments": []
          },
          "funnelId": {
            "_id": null,
            "title": "lead",
            "state": "LEAD"
          },
          "history": [
            {
              "_id": "5d5cb4c586d7ad002c1378d7",
              "fullName": "Bayu Saputra",
              "email": "bayu@mailinator.com",
              "phoneNumber": "+6282812341234",
              "isActive": false,
              "source": {
                "type": "program",
                "title": "Rekrutmen BUMN"
              },
              "activityLog": [
                {
                  "_id": "5d5cb4c586d7ad002c1378d9",
                  "title": "Send an Email",
                  "timestamp": "1566356677698"
                },
                {
                  "_id": "5d5cb4c686d7ad002c1378da",
                  "title": "Email Sent",
                  "timestamp": "1566356678198"
                },
                {
                  "_id": "5d5cb4c686d7ad002c1378db",
                  "title": "Incomplete Data Profile & Grit Test",
                  "timestamp": "1566356678252"
                },
                {
                  "_id": "5d5d08b7d3f31f002ca27019",
                  "title": "Completed Data Profile & Grit Test",
                  "timestamp": "1566378167448"
                }
              ],
              "skill": {
                "jobRoleId": {
                  "_id": "5cb40a8cb607ed0028f841fe",
                  "title": "Full Stack Engineer",
                  "state": "FULL_STACK_ENGINEER"
                },
                "jobLevelId": {
                  "_id": "5c1befe06450f803866801db",
                  "title": "Medium",
                  "state": "MEDIUM"
                },
                "experience": null
              },
              "linkedInUrl": null,
              "cvUrl": null,
              "portfolioUrl": null,
              "portfolioLinkUrl": null,
              "stackIds": [],
              "assessments": []
            }
          ],
          "createdAt": "1566356677645",
          "updatedAt": "1566378452902"
        },
        {
          "_id": "5d53c78a0658a50f219f7919",
          "nik": null,
          "latestHistory": {
            "_id": "5d398a78f80a5d0cd4d69191",
            "fullName": "KEVIN BAYU SAPUTRA",
            "email": "kevinzbayu08@gmail.com",
            "phoneNumber": "+6289604979304",
            "isActive": false,
            "source": {
              "type": "program",
              "title": "Recruitment Prohire Batch I 2019"
            },
            "activityLog": [
              {
                "_id": "5d398a78f80a5d0cd4d69196",
                "title": "Send an Email",
                "timestamp": "1564052088770"
              },
              {
                "_id": "5d398a79f80a5d0cd4d69197",
                "title": "Email Sent",
                "timestamp": "1564052089206"
              },
              {
                "_id": "5d398a79f80a5d0cd4d69198",
                "title": "Incomplete Data Profile & Grit Test",
                "timestamp": "1564052089259"
              },
              {
                "_id": "5d40815e2f01eb002c633260",
                "title": "Not Interested",
                "timestamp": "1564508510464"
              }
            ],
            "skill": {
              "jobRoleId": {
                "_id": "5cb409d2b607ed0028f841f8",
                "title": null,
                "state": null
              },
              "jobLevelId": {
                "_id": "5c1befe06450f803866801db",
                "title": null,
                "state": null
              },
              "experience": null
            },
            "linkedInUrl": "http://www.linkedin.com/in/kevinbayu/",
            "cvUrl": "https://api.codex.works/media/1564368598762230_5b118f62da62d869d2169abca4a6b428.pdf",
            "portfolioUrl": "https://api.codex.works/media/1564368598817276_c580eb9c693a0d821c383add73372401.pdf",
            "portfolioLinkUrl": null,
            "stackIds": [
              {
                "_id": "5d38227a19e95d002badb19b",
                "title": null,
                "state": null
              }
            ],
            "assessments": [
              {
                "_id": "5d3e5ed7c6abce002c403859"
              },
              {
                "_id": "5d3e5ed7c6abce002c4038d3"
              }
            ]
          },
          "funnelId": {
            "_id": "5c24bcf85108408debf4d065",
            "title": null,
            "state": null
          },
          "history": [
            {
              "_id": "5d398a78f80a5d0cd4d69191",
              "fullName": "KEVIN BAYU SAPUTRA",
              "email": "kevinzbayu08@gmail.com",
              "phoneNumber": "+6289604979304",
              "isActive": false,
              "source": {
                "type": "program",
                "title": "Recruitment Prohire Batch I 2019"
              },
              "activityLog": [
                {
                  "_id": "5d398a78f80a5d0cd4d69196",
                  "title": "Send an Email",
                  "timestamp": "1564052088770"
                },
                {
                  "_id": "5d398a79f80a5d0cd4d69197",
                  "title": "Email Sent",
                  "timestamp": "1564052089206"
                },
                {
                  "_id": "5d398a79f80a5d0cd4d69198",
                  "title": "Incomplete Data Profile & Grit Test",
                  "timestamp": "1564052089259"
                },
                {
                  "_id": "5d40815e2f01eb002c633260",
                  "title": "Not Interested",
                  "timestamp": "1564508510464"
                }
              ],
              "skill": {
                "jobRoleId": {
                  "_id": "5cb409d2b607ed0028f841f8",
                  "title": null,
                  "state": null
                },
                "jobLevelId": {
                  "_id": "5c1befe06450f803866801db",
                  "title": null,
                  "state": null
                },
                "experience": null
              },
              "linkedInUrl": "http://www.linkedin.com/in/kevinbayu/",
              "cvUrl": "https://api.codex.works/media/1564368598762230_5b118f62da62d869d2169abca4a6b428.pdf",
              "portfolioUrl": "https://api.codex.works/media/1564368598817276_c580eb9c693a0d821c383add73372401.pdf",
              "portfolioLinkUrl": null,
              "stackIds": [
                {
                  "_id": "5d38227a19e95d002badb19b",
                  "title": null,
                  "state": null
                }
              ],
              "assessments": [
                {
                  "_id": "5d3e5ed7c6abce002c403859"
                },
                {
                  "_id": "5d3e5ed7c6abce002c4038d3"
                }
              ]
            }
          ],
          "createdAt": null,
          "updatedAt": null
        }
      ],
      "count": 3
    }
  }
}

4. View Detail Candidate

Name getCandidate
Description This API is used to view detail data candidate
Content-Type application/json

query for getCandidate:

query getCandidate {
  getCandidate(filter: {
    candidateId: "5d53c95ca83fa5fbcfeab928"
  }) {
    _id
    nik
      latestHistory{
        _id
        fullName
        email
        phoneNumber
        isActive
        source{
          type
          title
        }
        activityLog{
          _id
          title
          timestamp
        }
        skill{
          jobRoleId {
            _id
            title
            state
          }
          jobLevelId{
            _id
            title
            state
          }
          experience
        }
        linkedInUrl
        cvUrl
        portfolioUrl
        portfolioLinkUrl
        stackIds{
          _id
          title
          state
        }
        assessments{
          _id
        }
      }
    funnelId {
      _id
      title
      state
    }
    history {
      _id
      email
      phoneNumber
      source {
        type
        title
      }
      activityLog {
        title
        timestamp
        _id
      }
      skill {
        jobRoleId{
          _id
          title
          state
        }
        jobLevelId {
          _id
          title
          state
        }
        experience
      }
      linkedInUrl
      cvUrl
      portfolioUrl
      portfolioLinkUrl
      stackIds {
        _id
        title
        state}
      assessments{
        _id
        result {
          pass
          failed
          score
        }
        candidateHistoryId
        questions {
          liveCoding{
            mainFunction{
              paramsType
              outputType
              generate
            }
            testCase{
              params
              output
            }
            answerCode
            results
          }
          title
          answer{
            correctIndexes
            selectedIndexes
            score
            list{
              title
            }
          }
          isMarked
          isVisited
          type
        }
      timeSpent
      startTime
      endTime
      isStart
      isSubmit
      type
      }
    }
  }
}

Response:

{
  "data": {
    "getCandidate": {
      "_id": "5d53c95ca83fa5fbcfeab928",
      "nik": "1231231231231231",
      "latestHistory": {
        "_id": "5d5ca4c58c66f9002ceb74e6",
        "fullName": "Temennya Tito",
        "email": "kucing@kucing.com",
        "phoneNumber": "+6282873637387",
        "isActive": true,
        "source": {
          "type": "program",
          "title": "RUmah Tito"
        },
        "activityLog": [
          {
            "_id": "5d5ca4c58c66f9002ceb74e7",
            "title": "Send an Email",
            "timestamp": "1566352581094"
          },
          {
            "_id": "5d5ca4c68c66f9002ceb74e8",
            "title": "Email Sent",
            "timestamp": "1566352582041"
          },
          {
            "_id": "5d5ca4c68c66f9002ceb74e9",
            "title": "Incomplete Data Profile & Grit Test",
            "timestamp": "1566352582091"
          }
        ],
        "skill": {
          "jobRoleId": {
            "_id": "5cb40a8cb607ed0028f841fe",
            "title": "Full Stack Engineer",
            "state": "FULL_STACK_ENGINEER"
          },
          "jobLevelId": {
            "_id": "5c1befe06450f803866801db",
            "title": "Medium",
            "state": "MEDIUM"
          },
          "experience": null
        },
        "linkedInUrl": null,
        "cvUrl": null,
        "portfolioUrl": null,
        "portfolioLinkUrl": null,
        "stackIds": [],
        "assessments": []
      },
      "funnelId": {
        "_id": null,
        "title": "lead",
        "state": "LEAD"
      },
      "history": [
        {
          "_id": "5d53c95ca83fa5fbcfeab927",
          "email": "emailupdate@gmail.update",
          "phoneNumber": "+6281280742772",
          "source": {
            "type": "program",
            "title": "RUmah Tito"
          },
          "activityLog": [
            {
              "title": "kencing-ashiap",
              "timestamp": "1565853166770",
              "_id": "5d5505eed85a0487ef90f9ec"
            },
            {
              "title": "kencing-ashiap-yiha",
              "timestamp": "1565853342730",
              "_id": "5d55069e135b3e883b5db873"
            },
            {
              "title": "kencing-ashiap-yih-anjasmara",
              "timestamp": "1565853371036",
              "_id": "5d5506bb135b3e883b5db874"
            }
          ],
          "skill": {
            "jobRoleId": {
              "_id": "5cb40a8cb607ed0028f841fe",
              "title": "Full Stack Engineer",
              "state": "FULL_STACK_ENGINEER"
            },
            "jobLevelId": {
              "_id": "5c1befe06450f803866801db",
              "title": "Medium",
              "state": "MEDIUM"
            },
            "experience": null
          },
          "linkedInUrl": null,
          "cvUrl": null,
          "portfolioUrl": null,
          "portfolioLinkUrl": null,
          "stackIds": [],
          "assessments": null
        },
        {
          "_id": "5d53ca06a0aba9fc1b971e1d",
          "email": "testi3gd4s3d3@mailinator.com",
          "phoneNumber": "+6281280839282",
          "source": null,
          "activityLog": [],
          "skill": {
            "jobRoleId": {
              "_id": null,
              "title": null,
              "state": null
            },
            "jobLevelId": {
              "_id": null,
              "title": null,
              "state": null
            },
            "experience": "10"
          },
          "linkedInUrl": "http://kucing.com",
          "cvUrl": "http://tms-api.apps.playcourt.id/media/1565859050426192_bc375600766136c9a724c47a252c0285.pdf",
          "portfolioUrl": "http://tms-api.apps.playcourt.id/media/1565859051917719_6e81385a4a1a5247ca75ec06ea23e018.pdf",
          "portfolioLinkUrl": "http://kucing.com",
          "stackIds": [
            {
              "_id": "5c3c51a034d8633278e730e8",
              "title": null,
              "state": null
            },
            {
              "_id": "5c3c51a034d8633278e730e9",
              "title": null,
              "state": null
            }
          ],
          "assessments": null
        },
        {
          "_id": "5d53ca29ce2e5afc4a98e726",
          "email": "kucing@kucing.com",
          "phoneNumber": "+6282873637387",
          "source": {
            "type": "program",
            "title": "RUmah Tito"
          },
          "activityLog": [],
          "skill": {
            "jobRoleId": {
              "_id": "5cb40a8cb607ed0028f841fe",
              "title": "Full Stack Engineer",
              "state": "FULL_STACK_ENGINEER"
            },
            "jobLevelId": {
              "_id": "5c1befe06450f803866801db",
              "title": "Medium",
              "state": "MEDIUM"
            },
            "experience": null
          },
          "linkedInUrl": null,
          "cvUrl": null,
          "portfolioUrl": null,
          "portfolioLinkUrl": null,
          "stackIds": [],
          "assessments": null
        },
        {
          "_id": "5d54dac02f125308aa3e3c19",
          "email": "kucing@kucing.com",
          "phoneNumber": "+6282873637387",
          "source": {
            "type": "program",
            "title": "RUmah Tito"
          },
          "activityLog": [
            {
              "title": "kencing-ashiap-yih-anjasmara-merpati",
              "timestamp": "1565853401204",
              "_id": "5d5506d9135b3e883b5db875"
            }
          ],
          "skill": {
            "jobRoleId": {
              "_id": "5cb40a8cb607ed0028f841fe",
              "title": "Full Stack Engineer",
              "state": "FULL_STACK_ENGINEER"
            },
            "jobLevelId": {
              "_id": "5c1befe06450f803866801db",
              "title": "Medium",
              "state": "MEDIUM"
            },
            "experience": null
          },
          "linkedInUrl": null,
          "cvUrl": null,
          "portfolioUrl": null,
          "portfolioLinkUrl": null,
          "stackIds": [],
          "assessments": null
        },
        {
          "_id": "5d5b6df71f3f54002c8e902d",
          "email": "kucing@kucing.com",
          "phoneNumber": "+6282873637387",
          "source": {
            "type": "program",
            "title": "RUmah Tito"
          },
          "activityLog": [],
          "skill": {
            "jobRoleId": {
              "_id": "5cb40a8cb607ed0028f841fe",
              "title": "Full Stack Engineer",
              "state": "FULL_STACK_ENGINEER"
            },
            "jobLevelId": {
              "_id": "5c1befe06450f803866801db",
              "title": "Medium",
              "state": "MEDIUM"
            },
            "experience": null
          },
          "linkedInUrl": null,
          "cvUrl": null,
          "portfolioUrl": null,
          "portfolioLinkUrl": null,
          "stackIds": [],
          "assessments": []
        },
        {
          "_id": "5d5b6ecd1f3f54002c8e902e",
          "email": "ayubi@mailinator.com",
          "phoneNumber": "+628098999888888",
          "source": {
            "type": "program",
            "title": "aku yahudi"
          },
          "activityLog": [],
          "skill": {
            "jobRoleId": {
              "_id": "5cb40a8cb607ed0028f841fe",
              "title": "Full Stack Engineer",
              "state": "FULL_STACK_ENGINEER"
            },
            "jobLevelId": {
              "_id": "5c1befe06450f803866801db",
              "title": "Medium",
              "state": "MEDIUM"
            },
            "experience": null
          },
          "linkedInUrl": null,
          "cvUrl": null,
          "portfolioUrl": null,
          "portfolioLinkUrl": null,
          "stackIds": [],
          "assessments": []
        },
        {
          "_id": "5d5ba015ee05e037a6b32c6a",
          "email": "kucing@kucing.com",
          "phoneNumber": "+6282873637387",
          "source": {
            "type": "program",
            "title": "Tito Handoko"
          },
          "activityLog": [
            {
              "title": "Send an Email",
              "timestamp": "1566285845902",
              "_id": "5d5ba015ee05e037a6b32c6b"
            },
            {
              "title": "Email Sent",
              "timestamp": "1566285846742",
              "_id": "5d5ba016ee05e037a6b32c6c"
            },
            {
              "title": "Incomplete Data Profile & Grit Test",
              "timestamp": "1566285846848",
              "_id": "5d5ba016ee05e037a6b32c6d"
            }
          ],
          "skill": {
            "jobRoleId": {
              "_id": "5cb40a8cb607ed0028f841fe",
              "title": "Full Stack Engineer",
              "state": "FULL_STACK_ENGINEER"
            },
            "jobLevelId": {
              "_id": "5c1befe06450f803866801db",
              "title": "Medium",
              "state": "MEDIUM"
            },
            "experience": null
          },
          "linkedInUrl": null,
          "cvUrl": null,
          "portfolioUrl": null,
          "portfolioLinkUrl": null,
          "stackIds": [],
          "assessments": []
        },
        {
          "_id": "5d5ca4c58c66f9002ceb74e6",
          "email": "kucing@kucing.com",
          "phoneNumber": "+6282873637387",
          "source": {
            "type": "program",
            "title": "RUmah Tito"
          },
          "activityLog": [
            {
              "title": "Send an Email",
              "timestamp": "1566352581094",
              "_id": "5d5ca4c58c66f9002ceb74e7"
            },
            {
              "title": "Email Sent",
              "timestamp": "1566352582041",
              "_id": "5d5ca4c68c66f9002ceb74e8"
            },
            {
              "title": "Incomplete Data Profile & Grit Test",
              "timestamp": "1566352582091",
              "_id": "5d5ca4c68c66f9002ceb74e9"
            }
          ],
          "skill": {
            "jobRoleId": {
              "_id": "5cb40a8cb607ed0028f841fe",
              "title": "Full Stack Engineer",
              "state": "FULL_STACK_ENGINEER"
            },
            "jobLevelId": {
              "_id": "5c1befe06450f803866801db",
              "title": "Medium",
              "state": "MEDIUM"
            },
            "experience": null
          },
          "linkedInUrl": null,
          "cvUrl": null,
          "portfolioUrl": null,
          "portfolioLinkUrl": null,
          "stackIds": [],
          "assessments": []
        }
      ]
    }
  }
}

5. Get Candidate History

Name getCandidateHistory
Description This API is used to get history of candidate
Content-Type application/json

query for getCandidateHistory:

query getCandidateHistory {
  getCandidateHistory(candidateHistoryId: "5d53c95ca83fa5fbcfeab927")
  {
    _id
    fullName
    email
    phoneNumber
    isActive
    source{
      type
      title
    }
    activityLog{
      _id
      title
      timestamp
    }
    skill{
      jobRoleId{
        _id
        title
        state
      }
      jobLevelId{
        _id
        title
        state
      }
      experience
    }
    linkedInUrl
    cvUrl
    portfolioUrl
    portfolioLinkUrl
    stackIds{
      _id
      title
      state
    }
    assessments{
      _id
      result{
        pass
        failed
        score
      }
      candidateHistoryId
      questions {
        liveCoding{
            mainFunction{
              paramsType
              outputType
              generate
            }
            testCase{
              params
              output
            }
            answerCode
            results
        }
      answer{
        correctIndexes
        selectedIndexes
        score
        list{
          title
            }
        }
      isMarked
      isVisited
      title
      type
      }
      timeSpent
      startTime
      endTime
      isStart
      isSubmit
      type
    }
  }
}

Response:

{
  "data": {
    "getCandidateHistory": {
      "_id": "5d53c95ca83fa5fbcfeab927",
      "fullName": "fullName Update",
      "email": "emailupdate@gmail.update",
      "phoneNumber": "+6281280742772",
      "isActive": false,
      "source": {
        "type": "refferal",
        "title": "RUmah Tito"
      },
      "activityLog": [
        {
          "_id": "5d5505eed85a0487ef90f9ec",
          "title": "kencing-ashiap",
          "timestamp": "1565853166770"
        },
        {
          "_id": "5d55069e135b3e883b5db873",
          "title": "kencing-ashiap-yiha",
          "timestamp": "1565853342730"
        },
        {
          "_id": "5d5506bb135b3e883b5db874",
          "title": "kencing-ashiap-yih-anjasmara",
          "timestamp": "1565853371036"
        }
      ],
      "skill": {
        "jobRoleId": {
          "_id": "5cb40a8cb607ed0028f841fe",
          "title": "Full Stack Engineer",
          "state": "FULL_STACK_ENGINEER"
        },
        "jobLevelId": {
          "_id": "5c1befe06450f803866801db",
          "title": "Medium",
          "state": "MEDIUM"
        },
        "experience": null
      },
      "linkedInUrl": null,
      "cvUrl": null,
      "portfolioUrl": null,
      "portfolioLinkUrl": null,
      "stackIds": [],
      "assessments": null
    }
  }
}

6. Update Candidate History

Name updateCandidateHistory
Description This API is used to update history of candidate
Content-Type application/json

mutation for updateCandidateHistory:

mutation UpdateCandidateHistory {
  updateCandidateHistory(
    candidateHistoryId: "5d5cb4c586d7ad002c1378d7"
    input: {
      nik: "1234512345121456"
      fullName: "Bayu Saputra"
      email: "bayu@mailinator.com"
      phoneNumber: "+6282812341234"
    }
  ) {
    _id
  }
}

Response :

{
  "data": {
    "updateCandidateHistory": {
      "_id": "5d5cb4c586d7ad002c1378d7"
    }
  }
}

7. Update Candidate History Status (Recruiting Status)

Name updateCandidateHistoryStatus
Description This API is used to update recruiting status candidate
Content-Type application/json

mutation for updateCandidateHistoryStatus:

mutation UpdateCandidateHistoryStatus{
  updateCandidateHistoryStatus(
    candidateHistoryId: "5d5cb4c586d7ad002c1378d7"
    input: {
      activityLog: "Completed Data Profile & Grit Test"
    }
  ) {
    _id
  }
}

Response:

{
  "data": {
    "updateCandidateHistoryStatus": {
      "_id": "5d5cb4c586d7ad002c1378d7"
    }
  }
}

8. Update Candidate Status

Name toggleCandidateHistoryIsActive
Description This API is update status Candidate
Content-Type application/json

mutation for toggleCandidateHistoryIsActive:

mutation toggleCandidateHistoryIsActive{
  toggleCandidateHistoryIsActive(
    candidateHistoryId: "5d5cb4c586d7ad002c1378d7"
  )
  {
    _id
  }
}

Response:

{
  "data": {
    "toggleCandidateHistoryIsActive": {
      "_id": "5d5cb4c586d7ad002c1378d7"
    }
  }
}

9. Send Email Invitation to Candidate

Name EmailCandidateInvite
Description This API is used to send email invitation to candidate
Content-Type application/json

mutation for emailCandidateInvite:

mutation EmailCandidateInvite {
  emailCandidateInvite
  (candidateHistoryId: "5cfec0f6d50883f7e3e2456f")
}

Response:

{
  "data": {
    "emailCandidateInvite": "success"
  }
}

10. Send Email Invitation Assessment to Candidate

Name EmailCandidateInvite
Description This API is used to send email invitation to candidate
Content-Type application/json

mutation for emailCandidateAssessmentLog:

mutation emailCandidateAssessmentLog {
  emailCandidateAssessmentLog
  (candidateHistoryId: "5cfec0f6d50883f7e3e2456f")
}

Response:

{
  "data": {
    "emailCandidateAssessmentLog": "success"
  }
}

11. Download Report Candidate Base on Current Active Filter

query for getCandidatesReport:

query getCandidatesReport{
  getCandidatesReport(filter: {
  # isLatest: true
  }){
    fullName
    nik
    jobRoleTitle
    jobLevelTitle
    skillTestScore
    skillTestTime
    gritTestScore
    gritTestTime
    cvUrl
    linkedInUrl
    portfolioUrl
    portfolioLinkUrl
    stacks
  }
}

Response:



Pool-List of Talent

1. Add New Data Talent

Name createTalent
Description This API is used to create data talent
Content-Type application/json

mutation for createTalent:

mutation createTalent{
  createTalent(input: {
    fullName: "Eka Afrianti"
    email: "ekaafrianti01@gmail.com"
    phoneNumber: "+6281399000090"
    source: {
      type: "referral",
      title: "Hafiz Joundy Syafie"
    }
    skills: [
      {
        jobLevelId: "5c1befe06450f803866801db",
        jobRoleId: "5cb40ab2b607ed0028f841ff"
      }
    ]
  }){
    _id
  }
}

Response:

{
  "data": {
    "createTalent": {
      "_id": "5c9898689fdf4b0028c8ade8"
    }
  },
  "extensions": {}
}

2. View List Data Talent

Name getTalents
Description This API is used to get data talent
Content-Type application/json

query for getTalents:

query GetListTalents {
  getTalents {
    data {
      _id
      fullName
      telkomId
      email
      phoneNumber
      nik
      linkedInUrl
      cvUrl
      portfolioUrl
      portfolioLinkUrl
      telkomId
      jobRoleId {
        _id
        title
        state
      }
      jobLevelId {
        _id
        title
        state
      }
      source {
        title
        type
      }
      projects {
        tribe
        title
        squad
      }
      candidateId{
        _id
        nik
      }
      createdAt
      updatedAt
    }
    count
  }
}

Response:

{
  "data": {
    "getTalents": {
      "data": [
        {
          "_id": "5d5b83789d7d66346da34752",
          "fullName": "Tito Kun",
          "telkomId": "T.2019.08.A.053",
          "email": "tito@tito.com",
          "phoneNumber": "+62123328292029",
          "nik": "3302192905820001",
          "linkedInUrl": "https://www.linkedin.com/in/cacahan",
          "cvUrl": "https://www.linkedin.com/in/cacahan",
          "portfolioUrl": "https://www.linkedin.com/",
          "portfolioLinkUrl": null,
          "jobRoleId": {
            "_id": "5cb4099090bb020028450e7a",
            "title": "Data Scientist",
            "state": "DATA_SCIENTIST"
          },
          "jobLevelId": {
            "_id": "5c1befe06450f803866801db",
            "title": "Medium",
            "state": "MEDIUM"
          },
          "source": {
            "title": "BPJS",
            "type": "program"
          },
          "projects": [
            {
              "tribe": "TDS",
              "title": "TDS - Assurance",
              "squad": "Squad TDS 1"
            },
            {
              "tribe": "TDS",
              "title": "TDS - Bank",
              "squad": "Squad TDS 2"
            }
          ],
          "candidateId": {
            "_id": "5d53c7820658a50f219f5744",
            "nik": null
          },
          "createdAt": "1566278520915",
          "updatedAt": "1566376570724"
        }
      ],
      "count": 8
    }
  }
}

3. View Data Talent Detail

Name getTalent
Description This API is used to get data talent detail
Content-Type application/json

query for getTalent:

query getTalentDetail{
  getTalent(talentId: "5d5b83789d7d66346da34752"){
    _id
    fullName
    telkomId
    email
    phoneNumber
    nik
    linkedInUrl
    cvUrl
    portfolioUrl
    portfolioLinkUrl
    jobRoleId{
      _id
      title
      state
    }
    jobLevelId{
      _id
      title
      state
    }
    source{
      type
      title
    }
    isActive
    projects{
      tribe
      title
      squad
    }
    candidateId{
      _id
      nik
      latestFullName
      latestPhoneNumber
      latestActivityLog {
        _id
        title
        timestamp
      }
      latestEmail
      funnelId {
        _id
        title
        state
      }
      history {
        _id
        fullName
        email
        phoneNumber
        source {
          type
          title
        }
        isActive
        activityLog{
          _id
          title
          timestamp
        }
        skill{
          jobRoleId{
            _id
            title
            state
          }
          jobLevelId{
            _id
            title
            state
          }
          experience
        }
        linkedInUrl
        cvUrl
        portfolioUrl
        portfolioLinkUrl
        stackIds{
          _id
          title
          state
        }
        assessments{
          _id
          result{
            pass
            failed
            score
          }
          questions{
            liveCoding{
              mainFunction{
                paramsType
                outputType
                generate
              }
              testCase{
                params
                output
              }
              answerCode
              results
            }
          answer{
            correctIndexes
            selectedIndexes
            score
            list{
              title
            }
          }
          isMarked
          isVisited
          title
          type
          }
        timeSpent
        startTime
        endTime
        isStart
        isSubmit
        type
        }
      }
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
  }
}

Response:

{
  "data": {
    "getTalent": {
      "_id": "5d5b83789d7d66346da34752",
      "fullName": "Tito Wijaya",
      "telkomId": "T.2019.08.A.053",
      "email": "tito@tito.com",
      "phoneNumber": "+62123328292029",
      "nik": "3302192905820001",
      "linkedInUrl": "https://www.linkedin.com/in/cacahan",
      "cvUrl": "https://www.linkedin.com/in/cacahan",
      "portfolioUrl": "https://www.linkedin.com/",
      "portfolioLinkUrl": null,
      "jobRoleId": {
        "_id": "5cb4099090bb020028450e7a",
        "title": "Data Scientist",
        "state": "DATA_SCIENTIST"
      },
      "jobLevelId": {
        "_id": "5c1befe06450f803866801db",
        "title": "Medium",
        "state": "MEDIUM"
      },
      "source": {
        "type": "program",
        "title": "BPJS"
      },
      "isActive": true,
      "projects": [
        {
          "tribe": "TDS",
          "title": "TDS - Assurance",
          "squad": "Squad TDS 1"
        },
        {
          "tribe": "TDS",
          "title": "TDS - Bank",
          "squad": "Squad TDS 2"
        }
      ],
      "candidateId": {
        "_id": "5d53c7820658a50f219f5744",
        "nik": null,
        "latestFullName": "Tito Handoko dongs dongs",
        "latestPhoneNumber": "20833223239",
        "latestActivityLog": {
          "_id": "5d5b5569d99b7e284828e80a",
          "title": "Incomplete Data Profile & Grit Test",
          "timestamp": "1566266729674"
        },
        "latestEmail": "jodfd323ss2@mailinator.com",
        "funnelId": {
          "_id": "5c24bcf85108408debf4d065",
          "title": null,
          "state": null
        },
        "history": [
          {
            "_id": "5cfec0f6d50883f7e3e2456f",
            "fullName": "Tito Handoko dongs dongs",
            "email": "jodfd323ss2@mailinator.com",
            "phoneNumber": "20833223239",
            "source": {
              "type": "refferal',
              "title": "dilo"
            },
            "isActive": true,
            "activityLog": [
              {
                "_id": "5cfec0f6d50883f7e3e24571",
                "title": "Send an Email",
                "timestamp": "1560199414579"
              },
              {
                "_id": "5cfec0fad50883f7e3e24572",
                "title": "Email Sent",
                "timestamp": "1560199418499"
              },
              {
                "_id": "5cfec0fad50883f7e3e24573",
                "title": "Incomplete Data Profile & Grit Test",
                "timestamp": "1560199418655"
              },
              {
                "_id": "5d3934d685ab2131c483d157",
                "title": "Completed Skill Test",
                "timestamp": "1564030166257"
              },
              {
                "_id": "5d5b552fb084492830465759",
                "title": "Send an Email",
                "timestamp": "1566266671184"
              },
              {
                "_id": "5d5b5567d99b7e284828e808",
                "title": "Send an Email",
                "timestamp": "1566266727872"
              },
              {
                "_id": "5d5b5569d99b7e284828e809",
                "title": "Email Sent",
                "timestamp": "1566266729647"
              },
              {
                "_id": "5d5b5569d99b7e284828e80a",
                "title": "Incomplete Data Profile & Grit Test",
                "timestamp": "1566266729674"
              }
            ],
            "skill": {
              "jobRoleId": {
                "_id": "5cb40a3bb607ed0028f841fb",
                "title": null,
                "state": null
              },
              "jobLevelId": {
                "_id": "5c1befe06450f803866801db",
                "title": null,
                "state": null
              },
              "experience": null
            },
            "linkedInUrl": "http://kucing.com",
            "cvUrl": "http://tms-api.apps.playcourt.id/media/1560199751832874_91311716a147c896787290658f862768.pdf",
            "portfolioUrl": null,
            "portfolioLinkUrl": "http://kucing.com",
            "stackIds": [
              {
                "_id": "5c3c51a034d8633278e730e8",
                "title": null,
                "state": null
              },
              {
                "_id": "5c3c51a034d8633278e730e9",
                "title": null,
                "state": null
              }
            ],
            "assessments": [
              {
                "_id": "5cfec249f57fcdf9c72d7238",
                "result": {
                  "pass": 2,
                  "failed": 4,
                  "score": 33.33
                },
                "questions": [
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [
                        1
                      ],
                      "selectedIndexes": [
                        1
                      ],
                      "score": [],
                      "list": [
                        {
                          "title": "123"
                        },
                        {
                          "title": "123123"
                        },
                        {
                          "title": "123"
                        },
                        {
                          "title": "123"
                        }
                      ]
                    },
                    "isMarked": true,
                    "isVisited": true,
                    "title": "<p>123</p>",
                    "type": "mcq"
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [
                        1
                      ],
                      "selectedIndexes": [],
                      "score": [],
                      "list": [
                        {
                          "title": "1"
                        },
                        {
                          "title": "1"
                        },
                        {
                          "title": "1"
                        },
                        {
                          "title": "1"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "<p>1234</p>",
                    "type": "mcq"
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [
                        1
                      ],
                      "selectedIndexes": [],
                      "score": [],
                      "list": [
                        {
                          "title": "False"
                        },
                        {
                          "title": "True"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "<p>1234</p>",
                    "type": "tf"
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [
                        0
                      ],
                      "selectedIndexes": [],
                      "score": [],
                      "list": [
                        {
                          "title": "<br>"
                        },
                        {
                          "title": "<newline>"
                        },
                        {
                          "title": "<span> 123"
                        },
                        {
                          "title": "<break>"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "<p>ewffw11111</p>",
                    "type": "mcq"
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [
                        1
                      ],
                      "selectedIndexes": [],
                      "score": [],
                      "list": [
                        {
                          "title": "1231"
                        },
                        {
                          "title": "1234"
                        },
                        {
                          "title": "1222"
                        },
                        {
                          "title": "12212"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "<p>12345</p>",
                    "type": "mcq"
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [
                          "number",
                          "number"
                        ],
                        "outputType": "number",
                        "generate": "const main = function(inp1, inp2) {\n\n              }"
                      },
                      "testCase": [
                        {
                          "params": [
                            "5",
                            "3"
                          ],
                          "output": "8"
                        },
                        {
                          "params": [
                            "1",
                            "2"
                          ],
                          "output": "3"
                        },
                        {
                          "params": [
                            "-3",
                            "-3"
                          ],
                          "output": "-6"
                        }
                      ],
                      "answerCode": "const main = (a, b) => {\n    return a+b\n\n}",
                      "results": [
                        true,
                        true,
                        true
                      ]
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [],
                      "list": []
                    },
                    "isMarked": true,
                    "isVisited": true,
                    "title": "<p>Sum 2 input variables <em>A </em>&amp; <em>B</em></p><p></p><p><em>Example:</em> </p><p>A -&gt; 5</p><p>B -&gt; 3</p><p>Expected Output -&gt; 8</p>",
                    "type": "lc"
                  }
                ],
                "timeSpent": "7200",
                "startTime": "1563293494057",
                "endTime": "1563300694057",
                "isStart": true,
                "isSubmit": true,
                "type": "exam"
              },
              {
                "_id": "5cfec249f57fcdf9c72d7254",
                "result": {
                  "pass": 0,
                  "failed": 0,
                  "score": 3
                },
                "questions": [
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        1,
                        2,
                        3,
                        4,
                        5
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": true,
                    "title": "I have difficulty maintaining my focus on projects that take more than a few months to complete.",
                    "type": null
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        5,
                        4,
                        3,
                        2,
                        1
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "I am diligent. I never give up.",
                    "type": null
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        1,
                        2,
                        3,
                        4,
                        5
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "New ideas and projects sometimes distract me from previous ones.",
                    "type": null
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        1,
                        2,
                        3,
                        4,
                        5
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "My interests change from year to year.",
                    "type": null
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        1,
                        2,
                        3,
                        4,
                        5
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "I often set a goal but later choose to pursue a different one.",
                    "type": null
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        1,
                        2,
                        3,
                        4,
                        5
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "I have been obsessed with a certain idea or project for a short time but later lost interest.",
                    "type": null
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        5,
                        4,
                        3,
                        2,
                        1
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "I finish whatever I begin",
                    "type": null
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        5,
                        4,
                        3,
                        2,
                        1
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "Setbacks don’t discourage me. I don’t give up easily.",
                    "type": null
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        5,
                        4,
                        3,
                        2,
                        1
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "I have overcome setbacks to conquer an important challenge.",
                    "type": null
                  },
                  {
                    "liveCoding": {
                      "mainFunction": {
                        "paramsType": [],
                        "outputType": null,
                        "generate": null
                      },
                      "testCase": [],
                      "answerCode": null,
                      "results": []
                    },
                    "answer": {
                      "correctIndexes": [],
                      "selectedIndexes": [],
                      "score": [
                        5,
                        4,
                        3,
                        2,
                        1
                      ],
                      "list": [
                        {
                          "title": "Very much like me"
                        },
                        {
                          "title": "Mostly like me"
                        },
                        {
                          "title": "Somewhat like me"
                        },
                        {
                          "title": "Not much like me"
                        },
                        {
                          "title": "Not like me at all"
                        }
                      ]
                    },
                    "isMarked": false,
                    "isVisited": false,
                    "title": "I am a hard worker.",
                    "type": null
                  }
                ],
                "timeSpent": "73",
                "startTime": "1560199787255",
                "endTime": "9999999999999",
                "isStart": true,
                "isSubmit": true,
                "type": "grit"
              }
            ]
          }
        ],
        "createdAt": null,
        "updatedAt": "1566266729675"
      },
      "createdAt": "1566278520915",
      "updatedAt": "1566454234600"
    }
  }
}

4. Filter Data Talent

Name filterTalents
Description This API is used to get data talent by filter
Content-Type application/json

query for filterTalents:

query FilterTalents {
  getTalents(filter: {
    jobRoleId: "5cb4099090bb020028450e7a"
    jobLevelId: "5c1befe06450f803866801db"
    #source: {
    #  type: "program"
    #  title: "BPJS"
    #}
    #date: {
    #  start: ""
    #  end: ""
    #}
    #isActive: true
    #sort: ""
    #skip: 0
    #limit: 0
  }) {
    data {
      _id
      fullName
      telkomId
      email
      phoneNumber
      nik
      linkedInUrl
      cvUrl
      portfolioUrl
      portfolioLinkUrl
      telkomId
      jobRoleId {
        _id
        title
        state
      }
      jobLevelId {
        _id
        title
        state
      }
      source {
        title
        type
      }
      projects {
        tribe
        title
        squad
      }
      candidateId{
        _id
        nik
      }
      createdAt
      updatedAt
    }
    count
  }
}

Response:

{
  "data": {
    "getTalents": {
      "data": [
        {
          "_id": "5d5b83789d7d66346da34752",
          "fullName": "Tito Kun",
          "telkomId": "T.2019.08.A.053",
          "email": "tito@tito.com",
          "phoneNumber": "+62123328292029",
          "nik": "3302192905820001",
          "linkedInUrl": "https://www.linkedin.com/in/cacahan",
          "cvUrl": "https://www.linkedin.com/in/cacahan",
          "portfolioUrl": "https://www.linkedin.com/",
          "portfolioLinkUrl": null,
          "jobRoleId": {
            "_id": "5cb4099090bb020028450e7a",
            "title": "Data Scientist",
            "state": "DATA_SCIENTIST"
          },
          "jobLevelId": {
            "_id": "5c1befe06450f803866801db",
            "title": "Medium",
            "state": "MEDIUM"
          },
          "source": {
            "title": "BPJS",
            "type": "program"
          },
          "projects": [
            {
              "tribe": "TDS",
              "title": "TDS - Assurance",
              "squad": "Squad TDS 1"
            },
            {
              "tribe": "TDS",
              "title": "TDS - Bank",
              "squad": "Squad TDS 2"
            }
          ],
          "candidateId": {
            "_id": "5d53c7820658a50f219f5744",
            "nik": null
          },
          "createdAt": "1566278520915",
          "updatedAt": "1566376570724"
        }
      ],
      "count": 8
    }
  }
}

5. Search Data Talent

Name searchTalents
Description This API is used to get data talent by name talent
Content-Type application/json

query for searchTalents:

query GetTalents {
  getTalents(search: {
    fullName: "Tito"
  }) {
    data {
      _id
      fullName
      telkomId
      email
      phoneNumber
      nik
      linkedInUrl
      cvUrl
      portfolioUrl
      portfolioLinkUrl
      telkomId
      jobRoleId {
        _id
        title
        state
      }
      jobLevelId {
        _id
        title
        state
      }
      source {
        title
        type
      }
      projects {
        tribe
        title
        squad
      }
      candidateId{
        _id
        nik
      }
      createdAt
      updatedAt
    }
    count
  }
}

Response:

{
  "data": {
    "getTalents": {
      "data": [
        {
          "_id": "5d5b83789d7d66346da34752",
          "fullName": "Tito Kun",
          "telkomId": "T.2019.08.A.053",
          "email": "tito@tito.com",
          "phoneNumber": "+62123328292029",
          "nik": "3302192905820001",
          "linkedInUrl": "https://www.linkedin.com/in/cacahan",
          "cvUrl": "https://www.linkedin.com/in/cacahan",
          "portfolioUrl": "https://www.linkedin.com/",
          "portfolioLinkUrl": null,
          "jobRoleId": {
            "_id": "5cb4099090bb020028450e7a",
            "title": "Data Scientist",
            "state": "DATA_SCIENTIST"
          },
          "jobLevelId": {
            "_id": "5c1befe06450f803866801db",
            "title": "Medium",
            "state": "MEDIUM"
          },
          "source": {
            "title": "BPJS",
            "type": "program"
          },
          "projects": [
            {
              "tribe": "TDS",
              "title": "TDS - Assurance",
              "squad": "Squad TDS 1"
            },
            {
              "tribe": "TDS",
              "title": "TDS - Bank",
              "squad": "Squad TDS 2"
            }
          ],
          "candidateId": {
            "_id": "5d53c7820658a50f219f5744",
            "nik": null
          },
          "createdAt": "1566278520915",
          "updatedAt": "1566376570724"
        }
      ],
      "count": 8
    }
  }
}

6. Send Email Invitation to talent

Name EmailTalentInvite
Description This API is used to send email invitation to talent
Content-Type application/json

mutation for EmailTalentInvite:

mutation EmailTalentInvite {
  emailTalentInvite(input: {
    email: "tito@gmail.com"
  })
}

Response:

{
  "data": {
    "emailTalentInvite": "success"
  }
}

7. Send Email Reminder to talent

Name EmailTalentReminder
Description This API is used to send email reminder to talent
Content-Type application/json

mutation for EmailTalentReminder:

mutation EmailTalentReminder {
  emailTalentReminder(input: {
    email: "ekaafrianti01@gmail.com"
  })
}

Response:

{
  "data": {
    "emailTalentReminder": "success"
  },
  "extensions": {}
}

8. Edit Data Talent

Name updateTalent
Description This API is used to update data talent
Content-Type application/json

mutation for updateTalent:

mutation UpdateTalent {
  updateTalent(talentId: "5d5b83789d7d66346da34752" input: {
    fullName: "Tito Wijaya"
    email: "tito@tito.com"
    phoneNumber: "+62123328292029"
  }) {
    _id
  }
}

Response:

{
  "data": {
    "updateTalent": {
      "_id": "5d5b83789d7d66346da34752"
    }
  }
}

9. Change Recruiting Status Talent

Name updateTalentStatus
Description This API is used to update recruiting status talent
Content-Type application/json

mutation for UpdateTalentStatus:

mutation UpdateTalentStatus {
  updateTalentStatus(input: {
    talentId: "5c25db88623b1dc767cd52b1"
    activityLog: "Send an Email"
  }) {
   _id
  }
}

Response :

{
  "data": {
    "updateTalentStatus": {
      "_id": "5c25db88623b1dc767cd52b1"
    }
  },
  "extensions": {}
}

10. Send Email Assessment to talent

Name emailTalentAssessmentLog
Description This API is used to send email assessment to talent
Content-Type application/json

mutation for emailCandidateInvite:

mutation emailTalentAssessmentLog {
  emailTalentAssessmentLog(input:
  {
    email: "tito@tito.com"
  })
}

Response:

{
  "data": {
    "emailTalentAssessmentLog": "success"
  }
}

Assessment

1. Generate Assessment Log

mutation for GenerateAssessmentLog:

mutation GenerateAssessmentLog {
  generateAssessmentLog(candidateHistoryId: "5d5b83789d7d66346da34752")
}

Response:

{
  "data": {
    "generateAssessmentLog": "success"
  }
}

2. Submit AssessmentLog

mutation for submitAssessmentLog:

mutation SubmitAssessmentLog {
  submitAssessmentLog(
    candidateHistoryId: "5d5b83789d7d66346da34752"
    assessmentLogId: "5cfec249f57fcdf9c72d7238"
  )
}

Response:

{
  "data": {
    "submitAssessmentLog": "success"
  }
}

3. update AssessmentLog Question

mutation for updateAssessmentLogQuestion:

mutation updateAssessmentLogQuestion{
  updateAssessmentLogQuestion(
    candidateHistoryId: "5d5b83789d7d66346da34752"
    assessmentLogId:"5cfec249f57fcdf9c72d7238"
    questionId: "5c98767e9fdf4b0028c8adb5"
    input: {
      answerIndex: 4
      isMarked: true
    }){
    _id
  }
}

Response:

{
  "data": {
    "updateAssessmentLogQuestion": {
      "_id": "5d5b83789d7d66346da34752"
    }
  }
}

4. Auto Submit Assessment

mutation for bulkSubmitAssessmentLog:

mutation bulkSubmitAssessmentLog{
  bulkSubmitAssessmentLog
}

Response:

{
  "data": {
    "bulkSubmitAssessmentLog": "success"
  }
}

Pool-Assessors

Parameter Input:

Parameter Type Data Min Max Description Example
fullName string 10 50 required Bramasta Dwi Saka
email string 10 50 required, must be contains email corporate bramasta@codex.works
phoneNumber string 10 15 required, starting with ‘+’ +6281399889989
nik string 6 6 optional 123456
skills Array of object     required  
jobLevelId objectId     required Senior
jobRoleId objectId     required JUser Interface

Output:

Parameter Type Data Description Example
Assessor Name string Name of assessor Bramasta Dwi Saka
Email string Email corporate assessor bramasta@codex.works
Phone Number string phone number assessor +6281399889989
NIK string NIK corporate assessor if he/she have 123456
Assessor for string assess role and assess level assessor Senior User Interface
Invitation Status string Invitation Status Confirm
Status boolean Status assessor in dashboard Active

1. Add New Data Assessor

Name createAssessor
Description This API is used to add New Data Assessor
Content-Type application/json

mutation for createAssessor:

mutation createAssessor{
  createAssessor(input:
    {
      fullName: "Bramasta Dwi Saka"
      email: "bramasta@codex.works"
      phoneNumber: "+6281234512399"
      nik: "123456"
      skills: [
        {
          jobLevelId: "5c1befea8b316703ab7f6710"
          jobRoleId: "5c1f85f8c315bb5bd1d628cf"
        }
      ]
    })
    {
      _id
    }
}

Response:

{
  "data": {
    "createAssessor": {
      "_id": "5c7d1f7cadec6200288959a8"
    }
  },
  "extensions": {}
}

2. View Data Assessor

Name getAssessors
Description This API is used to get Data Assessor
Content-Type application/json

query for getAssessors:

query GetAssessors{
  getAssessors{
    data{
      _id
      status
      userId{
        _id
        email
        phoneNumber
        fullName
        nik
        roleId{
          _id
          title
          state
          level
        }
        userTypeId{
          _id
          title
          state
        }
        isActive
        lastLoggedIn
        lastResetPassword{
          email
          phoneNumber
        }
      }
    }
  }
}

Response:

{
  "data": {
    "getAssessors": {
      "data": [
        {
          "_id": "5d47e48afda436002ce3b95e",
          "status": "WAITING_FOR_CONFIRMATION",
          "userId": {
            "_id": "5d47e48afda436002ce3b95d",
            "email": "assessor@codex.works",
            "phoneNumber": "+62813982928392",
            "fullName": "assessor Test",
            "nik": "112373",
            "roleId": {
              "_id": "5c1c6d16a3fba470ca1846fa",
              "title": null,
              "state": null,
              "level": null
            },
            "userTypeId": {
              "_id": "5c19becc5a1665f6073c0cb3",
              "title": null,
              "state": null
            },
            "isActive": false,
            "lastLoggedIn": null,
            "lastResetPassword": null
          }
        }
      ]
    }
  }
}

3. Update Data Assessor

Name updateAssessor
Description This API is used to update Data Assessor
Content-Type application/json

mutation for updateAssessor:

mutation updateAssessor{
  updateAssessor(assessorId: "5c7d1f7cadec6200288959a8" input: {
    name: "Bramasta"
    email: "bramasta@codex.works"
    phoneNumber: "+6281234512399"
    nik: "123426"
    skills: [
      {
        jobLevelId: "5c1befea8b316703ab7f6710"
        jobRoleId: "5c1f85f8c315bb5bd1d628cf"
      }
    ]
  }){
    _id
  }
}

Response:

{
  "data": {
    "updateAssessor": {
      "_id": "5c7d1f7cadec6200288959a8"
    }
  },
  "extensions": {}
}

4. Active-Inactive Assessor

Name toggleActiveAssessor
Description This API is used to update status assessor
Content-Type application/json

mutation for toggleActiveAssessor:

mutation toggleActiveAssessor{
  toggleActiveAssessor(assessorId: "5c7d1f7cadec6200288959a8")
  {
    _id
  }
}

Response:

{
  "data": {
    "toggleActiveAssessor": {
      "_id": "5c7d1f7cadec6200288959a8"
    }
  },
  "extensions": {}
}

5. Filter Data Assessor

Name FilterAssessors
Description This API is used to get Data Assessor by filter
Content-Type application/json

query for FilterAssessors:

query FilterAssessors{
  getAssessors(filter: {
    jobRoleId: "5c1f85f8c315bb5bd1d628cf"
    jobLevelId: "5c1befea8b316703ab7f6710"
    isActive: true
    status: "WAITING_FOR_CONFIRMATION"
    skip: 1
    limit: 1
    sort: ""
  })
    { data{
      _id
      status
      userId{
        _id
        email
        phoneNumber
        fullName
        nik
        roleId{
          _id
          title
          state
          level
        }
        userTypeId{
          _id
          title
          state
        }
        isActive
        lastLoggedIn
        lastResetPassword{
          email
          phoneNumber
        }
      }
    }
    count
  }
}

Response:

{
  "data": {
    "getAssessors": {
      "data": [
        {
          "_id": "5d47e48afda436002ce3b95e",
          "status": "WAITING_FOR_CONFIRMATION",
          "userId": {
            "_id": "5d47e48afda436002ce3b95d",
            "email": "assessor@codex.works",
            "phoneNumber": "+62813982928392",
            "fullName": "assessor Test",
            "nik": "112373",
            "roleId": {
              "_id": "5c1c6d16a3fba470ca1846fa",
              "title": null,
              "state": null,
              "level": null
            },
            "userTypeId": {
              "_id": "5c19becc5a1665f6073c0cb3",
              "title": null,
              "state": null
            },
            "isActive": false,
            "lastLoggedIn": null,
            "lastResetPassword": null
          }
        }
      ],
      "count": 16
    }
  }
}

6. Search Data Assessor

Name SearchAssessors
Description This API is used to get Data Assessor by search
Content-Type application/json

query for SearchAssessors:

query SearchAssessors{
  getAssessors(search: {
    fullName: "Bramasta"
  }){
    data{
      _id
      status
      userId {
        email
        phoneNumber
        nik
        fullName
        isActive
      }
      skills {
        jobRoleId {
          _id
          title
          state
        }
        jobLevelId {
          _id
          title
          state
        }
      }
    }
    count
  }
}

Response:

{
  "data": {
    "getAssessors": {
      "data": [
        {
          "_id": "5c7d1f7cadec6200288959a8",
          "status": "WAITING_FOR_CONFIRMATION",
          "userId": {
            "email": "bramasta@codex.works",
            "phoneNumber": "+6281234512399",
            "nik": "123456",
            "fullName": "Bramasta Dwi Saka",
            "isActive": true
          },
          "skills": [
            {
              "jobRoleId": {
                "_id": "5c1f85f8c315bb5bd1d628cf",
                "title": "User Interface",
                "state": "USER_INTERFACE"
              },
              "jobLevelId": {
                "_id": "5c1befea8b316703ab7f6710",
                "title": "Senior",
                "state": "SENIOR"
              }
            }
          ]
        }
      ],
      "count": 3
    }
  },
  "extensions": {}
}

Pool-Partners

Parameter Input:

Parameter Type Data Min Max Description Example
CompanyName string 1 50 required PT. Solusi Konvergen Indonesia
PIC string 1 50 required Dewi Rosalia
email string 1 50 required, must contains email corporate dewi@ski.id
phoneNumber string 10 15 required, starting with ‘+’ +6281308998879

Output:

Parameter Type Data Description Example
Company Name string Company name that our partner PT. Solusi Konvergen Indonesia
PIC Name string PIC Name in the company Dewi Rosalia
Email string email corporate of PIC dewi@ski.id
Phone Number string phone number of PIC +6281308998879
Number of Talent string number of talents under the partner 45
Count number count of company 10

1. Add New Data Partner

Name createPartner
Description This API is used to add new data Partner
Content-Type application/json

mutation for createPartner:

mutation createPartner {
  createPartner(input: {
    companyName: "PT. Solusi Konvergen Indonesia"
    PIC: "Dewi Rosalia"
    email: "dewi@ski.id"
    phoneNumber: "+6281308998879"
  }){
    _id
  }
}

Response:

{
  "data": {
    "createPartner": {
      "_id": "5c7e3258c158450028217091"
    }
  },
  "extensions": {}
}

2. View Data Partners

Name getPartners
Description This API is used to get data partner
Content-Type application/json

query for getPartners:

query getPartners {
  getPartners(filter: {
    # isActive: true
    # sort: 1
    # skip: 1
    # sort: "-email"
  }){
    data{
      _id
      companyName
      PIC
      email
      phoneNumber
      count
      isActive
    }
    count
  }
}

Response:

{
  "data": {
    "getPartners": {
      "data": [
        {
          "_id": "5c268141945652c6b80da941",
          "companyName": "PT. Solusi Konvergensi Indonesia",
          "PIC": "Dewi Rosalia",
          "email": "dewi@ski.id",
          "phoneNumber": "+6281308998879",
          "count": "8",
          "isActive": true
        }
      ],
      "count": 10
    }
  },
  "extensions": {}
}

3. Update Data Partner

Name updatePartner
Description This API is used to update data partner
Content-Type application/json

query for updatePartner:

mutation updatePartner {
  updatePartner(partnerId: "5c268141945652c6b80da941" input: {
    companyName: "PT. Solusi Konvergensi Indonesia"
    PIC: "Dewi Rosalia"
    email: "dewi@ski.id"
    phoneNumber: "+6281308998879"
  }){
    _id
  }
}

Response:

{
"data": {
  "updatePartner": {
    "_id": "5c268141945652c6b80da941"
  }
},
"extensions": {}
}

4. Active-Inactive Partner

Name toggleActivePartner
Description This API is used to update status partner
Content-Type application/json

mutation for toggleActivePartner:

mutation toggleActivePartner{
  toggleActiveAssessor(partnerId: "5c268141945652c6b80da941")
  {
    _id
  }
}

Response:

{
  "data": {
    "toggleActivePartner": {
      "_id": "c268141945652c6b80da941"
    }
  },
  "extensions": {}
}

5. Filter Data Partners

Name FilterPartners
Description This API is used to get Data Partners by filter
Content-Type application/json

query for FilterPatners:

query FilterPatners {
  getPartners(filter: {
    isActive: true
    sort: 1
    skip: 1
    sort: "-email"
  }){
    data{
      _id
      companyName
      PIC
      email
      phoneNumber
      count
      isActive
    }
    count
  }
}

Response:

{
  "data": {
    "getPartners": {
      "data": [
        {
          "_id": "5c268141945652c6b80da941",
          "companyName": "PT. Solusi Konvergensi Indonesia",
          "PIC": "Dewi Rosalia",
          "email": "dewi@ski.id",
          "phoneNumber": "+6281308998879",
          "count": "8",
          "isActive": true
        }
      ],
      "count": 10
    }
  },
  "extensions": {}
}

6. Search Data Partners

Name SearchPartners
Description This API is used to get Data Partners by search
Content-Type application/json

query for SearchPartners:

query SearchPartners {
  getPartners(search: {
    companyName: "Solusi"
  }){
    data{
      _id
      companyName
      PIC
      email
      phoneNumber
      count
      isActive
    }
    count
  }
}

Response:

{
  "data": {
    "getPartners": {
      "data": [
        {
          "_id": "5c268141945652c6b80da941",
          "companyName": "PT. Solusi Konvergensi Indonesia",
          "PIC": "Dewi Rosalia",
          "email": "dewi@ski.id",
          "phoneNumber": "+6281308998879",
          "count": "8",
          "isActive": true
        }
      ],
      "count": 1
    }
  },
  "extensions": {}
}

Pool-TM Members

Parameter Input:

Parameter Type Data Min Max Description Example
fullName string 1 50 required Facnia Dwi Zettira
email string 1 50 required, must be contains email corporate facnia@codex.works
phoneNumber string 10 15 required, starting with ‘+’ +6281309090808
nik string 6 6 optional 090900
roleId objectId     required Super Admin

Output:

Parameter Type Data Description Example
TM Member Name string TM member name Facnia Dwi Zettira
Email string email corporate of tm member fachnia@codex.works
Phone Number string phone number of tm member +6281383162787
NIK string NIK of TM member if he/she have 090900
Role string Role TM member in dashboard Super Admin
Invitation Status string Invitation status for TM member Confirm
Status boolean Status TM member in dashboard Active

1. Add New Data TM Member

Name createTmMember
Description This API is used to add new data TM Member
Content-Type application/json

mutation for createTmMember:

mutation CreateTmMember {
  createTmMember(input: {
    fullName: "Facnia Dwi Zettira",
    email: "facnia@codex.works",
    phoneNumber: "+6281383162787",
    roleId: "5c1caaa5fb6fc00eee84421d"
  })
  {
    _id
  }
}

Response:

{
"data": {
  "createTmMember": {
    "_id": "5c9358879fdf4b0028c8ad8c"
  }
},
"extensions": {}
}

2. View Data TM Member

Name GetTmMembers
Description This API is used to get data TM Member
Content-Type application/json

query for GetTmMembers:

query GetTmMembers {
  getTmMembers {
    data {
      _id
      email
      phoneNumber
      fullName
      userTypeId {
        _id
        title
      }
      roleId {
        _id
        title
      }
      isActive
    }
    count
  }
}

Response:

{
"data": {
    "getTmMembers": {
      "data": [
        {
          "_id": "5c9358879fdf4b0028c8ad8c",
          "email": "fachnia@codex.works",
          "phoneNumber": "+6281383162787",
          "fullName": "Facnia Dwi Zettira",
          "userTypeId": {
            "_id": "5c19beee5a1665f6073c0cb5",
            "title": "TM Member"
          },
          "roleId": {
            "_id": "5c1caaa5fb6fc00eee84421d",
            "title": "Super Admin"
          },
          "isActive": false
        }
      ],
      "count" : 7
    }
  },
"extensions" : {}
}

3. Update Data TM Member

Name UpdateTmMember
Description This API is used to update data TM Member
Content-Type application/json

mutation for updateTmMember:

mutation UpdateTmMember {
  updateTmMember(userId: "5c9358879fdf4b0028c8ad8c", input: {
    fullName: "Facnia Dwi Zettira"
    email: "fachnia@codex.works"
    phoneNumber: "+6281383162787"
    roleId: "5c1caaa5fb6fc00eee84421d"
  }) {
    _id
  }
}

Response:

{
  "data": {
    "updateTmMember": {
      "_id": "5c9358879fdf4b0028c8ad8c"
    }
  },
  "extensions": {}
}

4. Active-Inactive TM Member

Name toggleActiveTmMember
Description This API is used to update status TM Member
Content-Type application/json

mutation for toggleActiveTmMember:

mutation toggleActiveTmMember{
  toggleActiveTmMember(userId: "5c9358879fdf4b0028c8ad8c")
  {
    _id
  }
}

Response:

{
  "data": {
    "toggleActiveTmMember": {
      "_id": "5c9358879fdf4b0028c8ad8c"
    }
  },
  "extensions": {}
}

5. Filter Data TM Members

Name FilterTmMember
Description This API is used to get Data TM Member by filter
Content-Type application/json

query for FilterTmMember:

query FilterTmMember {
  getTmMembers(filter: {
    roleId: "5c1caaa5fb6fc00eee84421d"
    isActive: true
    skip: 1
    limit: 1
    sort: ""
  }) {
    data {
      _id
      email
      phoneNumber
      fullName
      userTypeId {
        _id
        title
      }
      roleId {
        _id
        title
      }
      isActive
    }
    count
  }
}

Response:

{
  "data": {
      "getTmMembers": {
        "data": [
          {
            "_id": "5c9358879fdf4b0028c8ad8c",
            "email": "fachnia@codex.works",
            "phoneNumber": "+6281383162787",
            "fullName": "Facnia Dwi Zettira",
            "userTypeId": {
              "_id": "5c19beee5a1665f6073c0cb5",
              "title": "TM Member"
            },
            "roleId": {
              "_id": "5c1caaa5fb6fc00eee84421d",
              "title": "Super Admin"
            },
            "isActive": true
          }
        ],
        "count" : 7
      }
    },
  "extensions" : {}
}

6. Search Data TM Members

Name SearchTmMember
Description This API is used to get Data TM Member by search
Content-Type application/json

query for SearchTmMember:

query SearchTmMember {
  getTmMembers(search: {
    fullName: "Fachnia"
  }) {
    data {
      _id
      email
      phoneNumber
      fullName
      userTypeId {
        _id
        title
      }
      roleId {
        _id
        title
      }
      isActive
    }
    count
  }
}

Response:

{
  "data": {
      "getTmMembers": {
        "data": [
          {
            "_id": "5c9358879fdf4b0028c8ad8c",
            "email": "fachnia@codex.works",
            "phoneNumber": "+6281383162787",
            "fullName": "Fachnia Dwi Zettira",
            "userTypeId": {
              "_id": "5c19beee5a1665f6073c0cb5",
              "title": "TM Member"
            },
            "roleId": {
              "_id": "5c1caaa5fb6fc00eee84421d",
              "title": "Super Admin"
            },
            "isActive": false
          }
        ],
        "count" : 7
      }
    },
  "extensions" : {}
}

Assessment-Job Roles

Parameter Input:

Parameter Type Data Min Max Description Example
title string 1 50 required, name of job role Document Engineer

Output:

Parameter Type Data Description Example
Job Role string job role Document Engineer
Count number count of job role 4

1. Add New Data Job Role

Name createJobRole
Description This API is used to add new Job Role
Content-Type application/json

mutation for createJobRole:

mutation createJobRole {
  createJobRole(input:{
    title: "Document Engineer"
  })
  {
    _id
  }
}

Response:

{
  "data": {
    "createJobRole":
    {
      "_id": "5c935f9d9fdf4b0028c8ad90"
    }
  },
  "extensions": {}
}

2. View all Data Job Roles

Name GetJobRoles
Description This API is used to get job roles
Content-Type application/json

query for GetJobRoles:

query GetJobRoles{
  getJobRoles{
    data{
      _id
      title
      state
    }
    count
  }
}

Response:

{
  "data": {
    "getJobRoles": {
      "data": [
        {
          "_id": "5cb4099090bb020028450e7a",
          "title": "Data Scientist",
          "state": "DATA_SCIENTIST"
        }
      ],
      "count": 29
    }
  }
}

3. Update Data Job Role

Name UpdateJobRoles
Description This API is used to update job roles
Content-Type application/json

mutation for UpdateJobRoles:

mutation UpdateJobRole {
  updateJobRole(jobRoleId: "55c935f9d9fdf4b0028c8ad90", input: {
      title: "Document Engineer"
  }) {
    _id
    title
    state
  }
}

Response:

{
  "data": {
    "updateJobRole": {
      "_id": "5c3d9df996e74b0028d0ec5e",
      "title": "Document Engineer",
      "state": "DOCUMENT_ENGINEER"
    }
  },
  "extensions": {}
}

4. Delete Data Job Role

Name DeleteJobRole
Description This API is used to delete job roles
Content-Type application/json

mutation for DeleteJobRole:

mutation DeleteJobRole {
  deleteJobRole(jobRoleId: "5c3d8beb7f89c60028129bf8")
  {
    _id
  }
}

Response:

{
  "data": {
    "deleteJobRole": {
      "_id": "5c3e933b9c21d900281cf728"
    }
  },
  "extensions": {}
}

5. Search Data Job Role

Name SearchJobRoles
Description This API is used to search job roles
Content-Type application/json

mutation for SearchJobRoles:

query SearchJobRoles{
  getJobRoles(search: {
    title: "Document"
  }) {
    data {
      _id
      title
      state
    }
    count
  }
}

Response:

{
  "data": {
    "getJobRoles": {
      "data": [
        {
          "_id": "5c935f9d9fdf4b0028c8ad90",
          "title": "Document Engineer",
          "state": "DOCUMENT_ENGINEER"
        }
      ],
      "count": 2
    }
  },
  "extensions": {}
}

Assessment-Stacks

Parameter Input:

Parameter Type Data Min Max Description Example
title string 1 50 required, name of stack NodeJs

Output:

Parameter Type Data Description Example
Stack string Stack or skill of job role NodeJs
Count number count of stack 4

1. Add New Data Stack

Name createStack
Description This API is used to add new Stack
Content-Type application/json

mutation for createStack:

mutation createStack {
  createStack(input:{
    title: "NodeJs"
  }) {
    _id
  }
}

Response:

{
  "data": {
    "createJobRole":
    {
      "_id": "5c3c51a034d8633278e730e8"
    }
  },
  "extensions": {}
}

2. View all Data Stacks

Name GetStacks
Description This API is used to get job roles
Content-Type application/json

query for GetStacks:

query GetStacks {
  getStacks {
    data {
      _id
      title
      state
    }
    count
  }
}

Response:

{
  "data": {
    "getStacks": {
      "data": [
        {
          "_id": "5c3c51a034d8633278e730e8",
          "title": "NodeJS",
          "state": "NODEJS"
        }
      ],
      "count": 2,
    }
  },
  "extensions": {}
}

3. Update Data Stack

Name UpdateStack
Description This API is used to update stack
Content-Type application/json

query for UpdateStack:

mutation UpdateStack {
  updateStack(stackId: "5c3c51a034d8633278e730e8" input: {
    title: "NodeJs"
    })
    {
      _id
    }
}

Response:

{
  "data": {
    "updateStack": {
      "_id": "5c3c51a034d8633278e730e8"
    }
  },
  "extensions": {}
}

4. Delete Data Stack

Name DeleteStack
Description This API is used to delete stack
Content-Type application/json

query for DeleteStack:

mutation DeleteStack {
  deleteStack(stackId: "5c3c51a034d8633278e730ee")
  {
    _id
  }
}

Response:

{
  "data": {
    "deleteStack": {
      "_id": "5c3c51a034d8633278e730ee"
    }
  },
  "extensions": {}
}

5. Search Data Stacks

Name SearchStacks
Description This API is used to search stacks
Content-Type application/json

mutation for SearchStacks:

query SearchStack {
  getStacks(search: {
    title: "Node"
  }) {
    data {
      _id
      title
      state
    }
    count
  }
}

Response:

{
  "data": {
    "getStacks": {
      "data": [
        {
          "_id": "5c3c51a034d8633278e730e8",
          "title": "NodeJS",
          "state": "NODEJS"
        }
      ],
      "count": 1
    }
  },
  "extensions": {}
}

Assessment-Exams

Parameter Input:

Parameter Type Data Min Max Description Example
title string 1 50 Exam name Senior Backend Engineer Skill Test
duration number 1 86400000 required 01:00:00
numberOfQuestion number 1 100 required 75
passingGrade number 10 100 required 80
jobRoleId objectId     required 5c3e933b9c21d900281cf728
jobLevelId objectId     required 5c1befc6df07570377f999ed
hasLiveCoding boolean     opsional true

Output:

Parameter Type Data Description Example
Exam Name string required, Exam name Senior Backend Engineer Skill Test
Job Role string required, job role for exam Backend Engineer
Job Level string required, job level for exam Senior
Time Duration number required, time duration for exam 01:00:00
No. of Questions number required, number of question for exam 75
Passing Grade number required, passing for exam 80
Status Live Coding string optional, status live coding for exam Available

1. Add New Exam

Name createExam
Description This API is used to create exam
Content-Type application/json

mutation for createExam:

mutation createExam {
  createExam(input: {
    title: "Senior Backend Engineer Skill Test"
    duration: 3600
    numberOfQuestions: 44
    passingGrade: 78
    jobRoleId: "5c1bf01cc6e58403dabafb00"
    jobLevelId: "5c1befc6df07570377f999ed"
    hasLiveCoding: true
  }) {
     _id
     }
}

Response:

{
  "data": {
    "createExam": {
      "_id": "5c94a6889fdf4b0028c8ad91"
    }
  },
  "extensions": {}
}

2. View Data Exam

Name getExams
Description This API is used to get data exam
Content-Type application/json

query for getExam:

query getExams {
  getExams {
    data{
      _id
      title
      duration
      numberOfQuestions
      passingGrade
      jobRoleId{
        _id
        title
      }
      jobLevelId{
        _id
        title
      }
      hasLiveCoding
    }
    count
  }
}

Response:

{
  "data": {
    "getExams": {
      "data": [
        {
          "_id": "5c6fb906d448943cb5b4cf9c",
          "title": "Senior Backend Engineer Skill Test",
          "duration": 3600,
          "numberOfQuestions": 75,
          "passingGrade": 80,
          "jobRoleId": {
            "_id": "5c1f85f8c315bb5bd1d628cf",
            "title": "Backend Engineer"
          },
          "jobLevelId": {
          "_id": "5c1befc6df07570377f999ed",
            "title": "Senior"
          },
          "hasLiveCoding": true
        }
      ],
      "count": 6
    }
  },
  "extensions": {}
}

3. Update Data Exam

Name updateExam
Description This API is used to update data exam
Content-Type application/json

mutation for updateExam:

mutation updateExam {
  updateExam(examId: "5c6fb906d448943cb5b4cf9c" input: {
    title: "Senior Backend Engineer Skill Test",
    duration: 3600,
    numberOfQuestions: 75,
    passingGrade: 80,
    jobRoleId: "5c1f85f8c315bb5bd1d628cf",
    jobLevelId: "5c1befc6df07570377f999ed",
    hasLiveCoding: true
  }){
   _id
  }
}

Response:

{
  "data": {
    "updateExam": {
        "_id": "5c6fb906d448943cb5b4cf9c"
      }
    },
    "extensions": {}
}

4. Delete Exam

Name deleteExam
Description This API is used to delete data exam
Content-Type application/json

mutation for DeleteJobRole:

mutation DeleteJobRole {
  deleteJobRole(jobRoleId: "5c3e933b9c21d900281cf728") {
    _id
  }
}

Response:

{
  "data": {
    "deleteExam": {
      "_id": "5c3e933b9c21d900281cf728"
    }
  },
  "extensions": {}
}

5. Filter Data Exams

Name FilterExams
Description This API is used to filter exams
Content-Type application/json

query for FilterExams:

query FilterExams {
getExams (filter: {
  jobRoleId: "5c1f85f8c315bb5bd1d628cf"
  jobLevelId: "5c1befc6df07570377f999ed"
  hasLiveCoding: true
}) {
      data{
    _id
    title
    duration
    numberOfQuestions
    passingGrade
    jobRoleId{
      _id
      title
    }
    jobLevelId{
      _id
      title
    }
    hasLiveCoding
  }
  count
}

Response:

{
  "data": {
    "getExams": {
      "data": [
        {
          "_id": "5c6fb906d448943cb5b4cf9c",
          "title": "Senior Backend Engineer Skill Test",
          "duration": 3600,
          "numberOfQuestions": 75,
          "passingGrade": 80,
          "jobRoleId": {
            "_id": "5c1f85f8c315bb5bd1d628cf",
            "title": "Backend Engineer"
          },
          "jobLevelId": {
          "_id": "5c1befc6df07570377f999ed",
            "title": "Senior"
          },
          "hasLiveCoding": true
        }
      ],
      "count": 6
    }
  },
  "extensions": {}
}

6. Search Data Exams

Name SearchExams
Description This API is used to search exams
Content-Type application/json

query for SearchExams:

query SearchExams {
  getExams(search: {
    title: "Senior Backend"
  }
  ) {
    data{
      _id
      title
      duration
      numberOfQuestions
      passingGrade
      jobRoleId{
        _id
        title
      }
      jobLevelId{
        _id
        title
      }
      hasLiveCoding
    }
    count
  }
}

Response:

{
  "data": {
    "getExams": {
      "data": [
        {
          "_id": "5c6fb906d448943cb5b4cf9c",
          "title": "Senior Backend Engineer Skill Test",
          "duration": 3600,
          "numberOfQuestions": 75,
          "passingGrade": 80,
          "jobRoleId": {
            "_id": "5c1f85f8c315bb5bd1d628cf",
            "title": "Backend Engineer"
          },
          "jobLevelId": {
          "_id": "5c1befc6df07570377f999ed",
            "title": "Senior"
          },
          "hasLiveCoding": true
        }
      ],
      "count": 6
    }
  },
  "extensions": {}
}

Assessment-Questions

Parameter Input:

Parameter Type Data Min Max Description Example
jobRoleId objectId     required, 5c3e933b9c21d900281cf728
jobLevelId objectId     required, 5c1befc6df07570377f999ed
title string 1 2000 required, question Apa nama diagram yang menggambarkan hubungan sistem dan user?
type objectId     required, type of question Multiple Choice
image object 1 500 | opsional, image for question or answer | null
answer object,array     required, answer of question Activity Diagram, ERD, DFD, Sequence Diagram
liveCoding object,array     for type of question: live coding null

Output in list table:

Parameter Type Data Description Example
Type Of Question string required, type of question Multiple Choice
Job Role string required, job role for exam Document Engineer
Job Level string required, job level for exam Junior
Question string required, time duration for exam Apa nama diagram yang menggambarkan hubungan sistem dan user?

1. Add Question for Multiple Choice type:

Name createQuestion
Description This API is used to create data question
Content-Type application/json

mutation for createQuestionMultipleChoice:

mutation createQuestionMultipleChoice {
  createQuestion(input: {
    jobRoleId: "5c52ac3bab444000281b1b80"
    jobLevelId: "5c1befea8b316703ab7f6710"
    type: "mcq"
    title: "Apa nama diagram yang menggambarkan hubungan sistem dan user?"
    answer: {
      correctIndexes: [0]
      list: [
        {
          title: "Activity Diagram"
        },
        {
          title: "ERD"
        },
        {
          title: "DFD"
        },
        {
          title: "Sequence Diagram"
        }
      ]
    }
    category: "teori"
  }){
   _id
  }
}

Response:

{
  "data": {
    "createQuestion": {
      "_id": "5c98767e9fdf4b0028c8adb5"
    }
  },
  "extensions": {}
}

2. Add Question for live Coding type:

mutation for createQuestionLiveCoding:

mutation createQuestionLiveCoding{
  createQuestion(input: {
    jobRoleId: "5c52ac3bab444000281b1b80"
    jobLevelId: "5c1befea8b316703ab7f6710"
    title: "jika a+b maka..."
    liveCoding: {
      mainFunction: {
        paramsType: ["string", "number", "boolean"]
        outputType: "boolean"
      }
      testCase: [
        {
          params: ["q", "3", "true"]
          output: "true"
        },
        {
          params: ["r", "23", "true"]
          output: "false"
        }
      ]
    }
    type: "liveCoding"
    category: "tools"
  }){
    _id
  }
}

Response:

{
  "data": {
    "createQuestion": {
      "_id": "5c98767e9fdf4b0028c8adb5"
    }
  },
  "extensions": {}
}

3. View Question

Name getQuestions
Description This API is used to get data question
Content-Type application/json

query for getQuestion:

query getQuestions{
  getQuestions{
    data{
      _id
      title
      image{
        path
        coordinate{
          x
          y
          width
          height
        }
      }
      answer{
        list{
          title
          image{
            path
            coordinate{
              x
              y
              height
              width
            }
          }
        }
        correctIndexes
      }
      liveCoding {
        mainFunction {
          paramsType
          outputType
        }
        testCase{
          params
          output
        }
      }
      type
      category
      jobRoleId{
        _id
        title
        state
      }
      jobLevelId{
        _id
        title
        state
      }
    }
    count
  }
}

Response:

{
  "data": {
    "getQuestions": {
      "data": [
        {
          "_id": "5c7e197311acebb626ac8475",
          "title": "question 1 update update",
          "image": {
            "path": "http://tms-api.apps.playcourt.id/media/1551767921735291_alexander-putter-1352873-unsplash.jpg",
            "coordinate": {
              "x": 12,
              "y": 12,
              "width": 121,
              "height": 45
            }
          },
          "answer": {
            "list": [
              {
                "title": "title1 satu",
                "image": {
                  "path": "http://tms-api.apps.playcourt.id/media/1551767922910666_alexander-putter-1352873-unsplash.jpg",
                  "coordinate": {
                    "x": 12,
                    "y": 12,
                    "height": 45,
                    "width": 121
                  }
                }
              }
            ],
            "correctIndexes": [
              1,
              2,
              3
            ]
          }
        ],
      "count": 51
    }
  },
  "extensions": {}
}

4. Update Question

Name updateQuestion
Description This API is used to update data question
Content-Type application/json

mutation for updateQuestion:

Response:

{
  "data": {
    "updateQuestion": {
      "_id": "5c7e197311acebb626ac8475"
    }
  },
  "extensions": {}
}

5. Delete Question

Name deleteQuestion
Description This API is used to delete data question
Content-Type application/json

mutation for deleteQuestion:

mutation deleteQuestion{
  deleteQuestion(questionId: "5c7eb7121e26e20028d71296")
  {
    _id
  }
}

Response:

{
  "data": {
    "deleteQuestion": {
      "_id": "5c7eb7121e26e20028d71296"
    }
  },
  "extensions": {}
}

6. Filter Data Questions

Name FilterQuestions
Description This API is used to filter questions
Content-Type application/json

query for FilterQuestions:

query FilterQuestions {
  getExams (filter: {
    typeOfQuestions: "mcq"
    jobRoleId: "5c1f85f8c315bb5bd1d628cf"
    jobLevelId: "5c1befc6df07570377f999ed"
  }) {
    data{
        _id
        title
        image{
          path
          coordinate{
            x
            y
            width
            height
          }
        }
        answer{
          list{
            title
            image{
              path
              coordinate{
                x
                y
                height
                width
              }
            }
          }
          correctIndexes
        }
        liveCoding {
          mainFunction {
            paramsType
            outputType
          }
          testCase{
            params
            output
          }
        }
        type
        category
        jobRoleId{
          _id
          title
          state
        }
        jobLevelId{
          _id
          title
          state
        }
      }
      count
    }
}

Response:

{
   "data": {
     "getQuestions": {
       "data": [
         {
           "_id": "5c7e197311acebb626ac8475",
           "title": "question 1 update update",
           "image": {
             "path": "http://tms-api.apps.playcourt.id/media/1551767921735291_alexander-putter-1352873-unsplash.jpg",
             "coordinate": {
               "x": 12,
               "y": 12,
               "width": 121,
               "height": 45
             }
           },
           "answer": {
             "list": [
               {
                 "title": "title1 satu",
                 "image": {
                   "path": "http://tms-api.apps.playcourt.id/media/1551767922910666_alexander-putter-1352873-unsplash.jpg",
                   "coordinate": {
                     "x": 12,
                     "y": 12,
                     "height": 45,
                     "width": 121
                   }
                 }
               }
             ],
             "correctIndexes": [
               1,
               2,
               3
             ]
           }
         ],
       "count": 51
     }
   },
   "extensions": {}
 }

7. Search Data Questions

Name SearchQuestions
Description This API is used to search questions
Content-Type application/json

query for SearchQuestions:

query SearchQuestions {
  getQuestions (search: {
    title: "questions"
  }) {
    data{
        _id
        title
        image{
          path
          coordinate{
            x
            y
            width
            height
          }
        }
        answer{
          list{
            title
            image{
              path
              coordinate{
                x
                y
                height
                width
              }
            }
          }
          correctIndexes
        }
        liveCoding {
          mainFunction {
            paramsType
            outputType
          }
          testCase{
            params
            output
          }
        }
        type
        category
        jobRoleId{
          _id
          title
          state
        }
        jobLevelId{
          _id
          title
          state
        }
      }
      count
    }
}

Response:

{
   "data": {
     "getQuestions": {
       "data": [
         {
           "_id": "5c7e197311acebb626ac8475",
           "title": "question 1 update update",
           "image": {
             "path": "http://tms-api.apps.playcourt.id/media/1551767921735291_alexander-putter-1352873-unsplash.jpg",
             "coordinate": {
               "x": 12,
               "y": 12,
               "width": 121,
               "height": 45
             }
           },
           "answer": {
             "list": [
               {
                 "title": "title1 satu",
                 "image": {
                   "path": "http://tms-api.apps.playcourt.id/media/1551767922910666_alexander-putter-1352873-unsplash.jpg",
                   "coordinate": {
                     "x": 12,
                     "y": 12,
                     "height": 45,
                     "width": 121
                   }
                 }
               }
             ],
             "correctIndexes": [
               1,
               2,
               3
             ]
           }
         ],
       "count": 51
     }
   },
   "extensions": {}
 }