Skip to content

Commit ae782d5

Browse files
committed
job description parser
1 parent e76d67f commit ae782d5

File tree

5 files changed

+900
-48
lines changed

5 files changed

+900
-48
lines changed

config/default.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,5 +173,7 @@ module.exports = {
173173
// the minimum matching rate when searching roles by skills
174174
ROLE_MATCHING_RATE: process.env.ROLE_MATCHING_RATE || 0.70,
175175
// member groups representing Wipro or TopCoder employee
176-
INTERNAL_MEMBER_GROUPS: process.env.INTERNAL_MEMBER_GROUPS || ['20000000', '20000001', '20000003', '20000010', '20000015']
176+
INTERNAL_MEMBER_GROUPS: process.env.INTERNAL_MEMBER_GROUPS || ['20000000', '20000001', '20000003', '20000010', '20000015'],
177+
// Topcoder skills cache time in minutes
178+
TOPCODER_SKILLS_CACHE_TIME: process.env.TOPCODER_SKILLS_CACHE_TIME || 60
177179
}

docs/Topcoder-bookings-api.postman_collection.json

Lines changed: 216 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"info": {
3-
"_postman_id": "18310e1b-429d-49db-8555-f4a54404271f",
3+
"_postman_id": "d413d21d-272f-454f-b26a-0d7e3bf926d9",
44
"name": "Topcoder-bookings-api",
55
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
66
},
@@ -21165,6 +21165,221 @@
2116521165
}
2116621166
]
2116721167
},
21168+
{
21169+
"name": "Get Skills by Job Description",
21170+
"item": [
21171+
{
21172+
"name": "get skills successfully",
21173+
"event": [
21174+
{
21175+
"listen": "test",
21176+
"script": {
21177+
"exec": [
21178+
"pm.test('Status code is 200', function () {\r",
21179+
" pm.response.to.have.status(200);\r",
21180+
"});"
21181+
],
21182+
"type": "text/javascript"
21183+
}
21184+
}
21185+
],
21186+
"request": {
21187+
"method": "POST",
21188+
"header": [
21189+
{
21190+
"key": "Authorization",
21191+
"type": "text",
21192+
"value": "Bearer {{token_administrator}}"
21193+
},
21194+
{
21195+
"key": "Content-Type",
21196+
"type": "text",
21197+
"value": "application/json"
21198+
}
21199+
],
21200+
"body": {
21201+
"mode": "raw",
21202+
"raw": "{ \"description\": \"Description A global leading healthcare company is seeking a strong Databricks Engineer to join their development team as they build their new Databricks workspace. Development efforts will contribute to the migration of data from Hadoop to Databricks to prepare data for visualization. Candidate must be well-versed in Databricks components and best practices, be an excellent problem solver and be comfortable working in a fast-moving, rapidly changing, and dynamic environment via Agile, SCRUM, and DevOps. PREFERRED QUALIFICATIONS: 2+ years of Azure Data Stack experience: Azure Data Services using ADF, ADLS, Databricks with PySpark, Azure DevOps & Azure Key Vault. Strong knowledge of various data warehousing methodologies and data modeling concepts. Hands-on experience using Azure, Azure data lake, Azure functions & Databricks Minimum 2-3+ years of Python experience (PySpark) Design & Develop Azure native solutions for Data Platform Minimum 3+ years of experience using Big Data ecosystem (Cloudera/Hortonworks) using Oozie, Hive, Impala, and Spark Expert in SQL and performance tuning\" }",
21203+
"options": {
21204+
"raw": {
21205+
"language": "json"
21206+
}
21207+
}
21208+
},
21209+
"url": {
21210+
"raw": "{{URL}}/taas-teams/getSkillsByJobDescription",
21211+
"host": [
21212+
"{{URL}}"
21213+
],
21214+
"path": [
21215+
"taas-teams",
21216+
"getSkillsByJobDescription"
21217+
]
21218+
}
21219+
},
21220+
"response": []
21221+
},
21222+
{
21223+
"name": "get skills by invalid token",
21224+
"event": [
21225+
{
21226+
"listen": "test",
21227+
"script": {
21228+
"exec": [
21229+
"pm.test('Status code is 401', function () {\r",
21230+
" pm.response.to.have.status(401);\r",
21231+
" const response = pm.response.json()\r",
21232+
" pm.expect(response.message).to.eq(\"Invalid Token.\")\r",
21233+
"});"
21234+
],
21235+
"type": "text/javascript"
21236+
}
21237+
}
21238+
],
21239+
"request": {
21240+
"method": "POST",
21241+
"header": [
21242+
{
21243+
"key": "Authorization",
21244+
"type": "text",
21245+
"value": "Bearer invalid_token"
21246+
},
21247+
{
21248+
"key": "Content-Type",
21249+
"type": "text",
21250+
"value": "application/json"
21251+
}
21252+
],
21253+
"body": {
21254+
"mode": "raw",
21255+
"raw": "{ \"description\": \"Description A global leading healthcare company is seeking a strong Databricks Engineer to join their development team as they build their new Databricks workspace. Development efforts will contribute to the migration of data from Hadoop to Databricks to prepare data for visualization. Candidate must be well-versed in Databricks components and best practices, be an excellent problem solver and be comfortable working in a fast-moving, rapidly changing, and dynamic environment via Agile, SCRUM, and DevOps. PREFERRED QUALIFICATIONS: 2+ years of Azure Data Stack experience: Azure Data Services using ADF, ADLS, Databricks with PySpark, Azure DevOps & Azure Key Vault. Strong knowledge of various data warehousing methodologies and data modeling concepts. Hands-on experience using Azure, Azure data lake, Azure functions & Databricks Minimum 2-3+ years of Python experience (PySpark) Design & Develop Azure native solutions for Data Platform Minimum 3+ years of experience using Big Data ecosystem (Cloudera/Hortonworks) using Oozie, Hive, Impala, and Spark Expert in SQL and performance tuning\" }",
21256+
"options": {
21257+
"raw": {
21258+
"language": "json"
21259+
}
21260+
}
21261+
},
21262+
"url": {
21263+
"raw": "{{URL}}/taas-teams/getSkillsByJobDescription",
21264+
"host": [
21265+
"{{URL}}"
21266+
],
21267+
"path": [
21268+
"taas-teams",
21269+
"getSkillsByJobDescription"
21270+
]
21271+
}
21272+
},
21273+
"response": []
21274+
},
21275+
{
21276+
"name": "get skills by invalid field",
21277+
"event": [
21278+
{
21279+
"listen": "test",
21280+
"script": {
21281+
"exec": [
21282+
"pm.test('Status code is 400', function () {\r",
21283+
" pm.response.to.have.status(400);\r",
21284+
" const response = pm.response.json()\r",
21285+
" pm.expect(response.message).to.eq(\"\\\"data.description\\\" is not allowed to be empty\")\r",
21286+
"});"
21287+
],
21288+
"type": "text/javascript"
21289+
}
21290+
}
21291+
],
21292+
"request": {
21293+
"method": "POST",
21294+
"header": [
21295+
{
21296+
"key": "Authorization",
21297+
"type": "text",
21298+
"value": "Bearer {{token_administrator}}"
21299+
},
21300+
{
21301+
"key": "Content-Type",
21302+
"type": "text",
21303+
"value": "application/json"
21304+
}
21305+
],
21306+
"body": {
21307+
"mode": "raw",
21308+
"raw": "{ \"description\": \"\" }",
21309+
"options": {
21310+
"raw": {
21311+
"language": "json"
21312+
}
21313+
}
21314+
},
21315+
"url": {
21316+
"raw": "{{URL}}/taas-teams/getSkillsByJobDescription",
21317+
"host": [
21318+
"{{URL}}"
21319+
],
21320+
"path": [
21321+
"taas-teams",
21322+
"getSkillsByJobDescription"
21323+
]
21324+
}
21325+
},
21326+
"response": []
21327+
},
21328+
{
21329+
"name": "get skills by missing field",
21330+
"event": [
21331+
{
21332+
"listen": "test",
21333+
"script": {
21334+
"exec": [
21335+
"pm.test('Status code is 400', function () {\r",
21336+
" pm.response.to.have.status(400);\r",
21337+
" const response = pm.response.json()\r",
21338+
" pm.expect(response.message).to.eq(\"\\\"data.description\\\" is required\")\r",
21339+
"});"
21340+
],
21341+
"type": "text/javascript"
21342+
}
21343+
}
21344+
],
21345+
"request": {
21346+
"method": "POST",
21347+
"header": [
21348+
{
21349+
"key": "Authorization",
21350+
"type": "text",
21351+
"value": "Bearer {{token_administrator}}"
21352+
},
21353+
{
21354+
"key": "Content-Type",
21355+
"type": "text",
21356+
"value": "application/json"
21357+
}
21358+
],
21359+
"body": {
21360+
"mode": "raw",
21361+
"raw": "{}",
21362+
"options": {
21363+
"raw": {
21364+
"language": "json"
21365+
}
21366+
}
21367+
},
21368+
"url": {
21369+
"raw": "{{URL}}/taas-teams/getSkillsByJobDescription",
21370+
"host": [
21371+
"{{URL}}"
21372+
],
21373+
"path": [
21374+
"taas-teams",
21375+
"getSkillsByJobDescription"
21376+
]
21377+
}
21378+
},
21379+
"response": []
21380+
}
21381+
]
21382+
},
2116821383
{
2116921384
"name": "GET /taas-teams",
2117021385
"request": {
@@ -21648,44 +21863,6 @@
2164821863
},
2164921864
"response": []
2165021865
},
21651-
{
21652-
"name": "POST /taas-teams/getSkillsByJobDescription",
21653-
"request": {
21654-
"method": "POST",
21655-
"header": [
21656-
{
21657-
"key": "Authorization",
21658-
"type": "text",
21659-
"value": "Bearer {{token_member}}"
21660-
},
21661-
{
21662-
"key": "Content-Type",
21663-
"type": "text",
21664-
"value": "application/json"
21665-
}
21666-
],
21667-
"body": {
21668-
"mode": "raw",
21669-
"raw": "{\n \"description\": \"nodejs react c++ hello\"\n}",
21670-
"options": {
21671-
"raw": {
21672-
"language": "json"
21673-
}
21674-
}
21675-
},
21676-
"url": {
21677-
"raw": "{{URL}}/taas-teams/getSkillsByJobDescription",
21678-
"host": [
21679-
"{{URL}}"
21680-
],
21681-
"path": [
21682-
"taas-teams",
21683-
"getSkillsByJobDescription"
21684-
]
21685-
}
21686-
},
21687-
"response": []
21688-
},
2168921866
{
2169021867
"name": "GET /taas-teams/:id/members",
2169121868
"request": {

0 commit comments

Comments
 (0)