node-behind-api-client 2.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitlab-ci.yml +20 -0
- package/README.md +65 -0
- package/docs/behind-api-client/easyjob/JobDescriptions/README.md +654 -0
- package/docs/behind-api-client/easyjob/README.md +647 -0
- package/docs/behind-api-client/easyjob/applicants/README.md +494 -0
- package/docs/behind-api-client/easyjob/applications/README.md +754 -0
- package/docs/behind-api-client/easyjob/candidateProfiles/README.md +940 -0
- package/docs/behind-api-client/easyjob/jd-candidate-questions/README.md +372 -0
- package/docs/behind-api-client/payments/payture/README.21.md +901 -0
- package/docs/behind-api-client/payments/payture/README.cards.md +1497 -0
- package/docs/behind-api-client/payments/payture/README.md +1497 -0
- package/docs/behind-api-client/payments/payture/README.rukitchen.md +396 -0
- package/docs/behind-api-client/payments/payture/README.subscriptions.md +1266 -0
- package/docs/behind-api-client/payments/stripe/README.flow.md +254 -0
- package/docs/behind-api-client/rag/storage/README.md +519 -0
- package/example.js +35 -0
- package/index.cjs +14 -0
- package/index.js +15 -0
- package/lib/behind-api-auth-client/BehindApiAuthClient.js +91 -0
- package/lib/behind-api-auth-client/authorisation/AuthorisationApp.js +9 -0
- package/lib/behind-api-auth-client/authorisation/AuthorisationV10.js +9 -0
- package/lib/behind-api-auth-client/authorisation/AuthorisationV10Code.js +30 -0
- package/lib/behind-api-auth-client/example.js +47 -0
- package/lib/behind-api-auth-client/package.json +9 -0
- package/lib/behind-api-client/BehindApiClient.js +137 -0
- package/lib/behind-api-client/chat/ChatApp.js +11 -0
- package/lib/behind-api-client/chat/ChatV10.js +13 -0
- package/lib/behind-api-client/chat/ChatV10Chat.js +87 -0
- package/lib/behind-api-client/chat/ChatV10Chats.js +14 -0
- package/lib/behind-api-client/chat/ChatV10Message.js +57 -0
- package/lib/behind-api-client/chat/ChatV20.js +11 -0
- package/lib/behind-api-client/chat/ChatV20Chat.js +14 -0
- package/lib/behind-api-client/chat/ChatV20Message.js +27 -0
- package/lib/behind-api-client/easyjob/EasyjobApp.js +9 -0
- package/lib/behind-api-client/easyjob/EasyjobV10.js +31 -0
- package/lib/behind-api-client/easyjob/EasyjobV10Answers.js +16 -0
- package/lib/behind-api-client/easyjob/EasyjobV10Applicants.js +29 -0
- package/lib/behind-api-client/easyjob/EasyjobV10Applications.js +39 -0
- package/lib/behind-api-client/easyjob/EasyjobV10CandidateProfileArtifacts.js +31 -0
- package/lib/behind-api-client/easyjob/EasyjobV10CandidateProfiles.js +99 -0
- package/lib/behind-api-client/easyjob/EasyjobV10Companies.js +36 -0
- package/lib/behind-api-client/easyjob/EasyjobV10Cv.js +15 -0
- package/lib/behind-api-client/easyjob/EasyjobV10Departments.js +37 -0
- package/lib/behind-api-client/easyjob/EasyjobV10JobDescriptionArtifacts.js +29 -0
- package/lib/behind-api-client/easyjob/EasyjobV10JobDescriptionCandidateQuestions.js +63 -0
- package/lib/behind-api-client/easyjob/EasyjobV10JobDescriptions.js +93 -0
- package/lib/behind-api-client/easyjob/EasyjobV10Reports.js +35 -0
- package/lib/behind-api-client/example.js +47 -0
- package/lib/behind-api-client/global/GlobalApp.js +9 -0
- package/lib/behind-api-client/global/GlobalV10.js +11 -0
- package/lib/behind-api-client/global/GlobalV10Sockets.js +16 -0
- package/lib/behind-api-client/global/GlobalV10Storage.js +29 -0
- package/lib/behind-api-client/gpt/GptApp.js +15 -0
- package/lib/behind-api-client/gpt/GptV10.js +15 -0
- package/lib/behind-api-client/gpt/GptV10Prompt.js +17 -0
- package/lib/behind-api-client/gpt/GptV10Request.js +16 -0
- package/lib/behind-api-client/gpt/GptV10Storedprompts.js +14 -0
- package/lib/behind-api-client/gpt/GptV10Whisper.js +23 -0
- package/lib/behind-api-client/gpt/GptV20.js +9 -0
- package/lib/behind-api-client/gpt/GptV20Prompt.js +15 -0
- package/lib/behind-api-client/gpt/GptV30.js +13 -0
- package/lib/behind-api-client/gpt/GptV30Chat.js +19 -0
- package/lib/behind-api-client/gpt/GptV30Prompt.js +41 -0
- package/lib/behind-api-client/gpt/GptV30Prompts.js +32 -0
- package/lib/behind-api-client/gpt/GptV40.js +11 -0
- package/lib/behind-api-client/gpt/GptV40Prompt.js +24 -0
- package/lib/behind-api-client/gpt/GptV40Prompts.js +30 -0
- package/lib/behind-api-client/mailer/MailerApp.js +11 -0
- package/lib/behind-api-client/mailer/MailerV10.js +15 -0
- package/lib/behind-api-client/mailer/MailerV10Bulk.js +21 -0
- package/lib/behind-api-client/mailer/MailerV10Message.js +83 -0
- package/lib/behind-api-client/mailer/MailerV10Settings.js +44 -0
- package/lib/behind-api-client/mailer/MailerV10Template.js +23 -0
- package/lib/behind-api-client/mailer/MailerV20.js +9 -0
- package/lib/behind-api-client/mailer/MailerV20Message.js +21 -0
- package/lib/behind-api-client/mastogram/MastogramApp.js +9 -0
- package/lib/behind-api-client/mastogram/MastogramV10.js +13 -0
- package/lib/behind-api-client/mastogram/MastogramV10Bluesky.js +42 -0
- package/lib/behind-api-client/mastogram/MastogramV10Mastodon.js +45 -0
- package/lib/behind-api-client/mastogram/MastogramV10Telegram.js +39 -0
- package/lib/behind-api-client/monitor/MonitorApp.js +9 -0
- package/lib/behind-api-client/monitor/MonitorV10.js +13 -0
- package/lib/behind-api-client/monitor/MonitorV10Finances.js +39 -0
- package/lib/behind-api-client/monitor/MonitorV10Record.js +15 -0
- package/lib/behind-api-client/monitor/MonitorV10Records.js +22 -0
- package/lib/behind-api-client/oauth/OauthApp.js +9 -0
- package/lib/behind-api-client/oauth/OauthV10.js +9 -0
- package/lib/behind-api-client/oauth/OauthV10Authorisation.js +15 -0
- package/lib/behind-api-client/package.json +9 -0
- package/lib/behind-api-client/payments/PaymentsApp.js +13 -0
- package/lib/behind-api-client/payments/PaymentsV10.js +15 -0
- package/lib/behind-api-client/payments/PaymentsV10Gift.js +32 -0
- package/lib/behind-api-client/payments/PaymentsV10Payture.js +30 -0
- package/lib/behind-api-client/payments/PaymentsV10Product.js +15 -0
- package/lib/behind-api-client/payments/PaymentsV10Telegram.js +44 -0
- package/lib/behind-api-client/payments/PaymentsV20.js +9 -0
- package/lib/behind-api-client/payments/PaymentsV20Payture.js +32 -0
- package/lib/behind-api-client/payments/PaymentsV21.js +15 -0
- package/lib/behind-api-client/payments/PaymentsV21Cards.js +14 -0
- package/lib/behind-api-client/payments/PaymentsV21Payture.js +29 -0
- package/lib/behind-api-client/payments/PaymentsV21Stripe.js +28 -0
- package/lib/behind-api-client/payments/PaymentsV21Subscriptions.js +21 -0
- package/lib/behind-api-client/questionnaire/QuestionnaireApp.js +9 -0
- package/lib/behind-api-client/questionnaire/QuestionnaireV10.js +9 -0
- package/lib/behind-api-client/questionnaire/QuestionnaireV10Form.js +22 -0
- package/lib/behind-api-client/raet/RaetApp.js +11 -0
- package/lib/behind-api-client/raet/RaetV10.js +21 -0
- package/lib/behind-api-client/raet/RaetV10Cv.js +87 -0
- package/lib/behind-api-client/raet/RaetV10Individual.js +43 -0
- package/lib/behind-api-client/raet/RaetV10Individuals.js +38 -0
- package/lib/behind-api-client/raet/RaetV10Jd.js +47 -0
- package/lib/behind-api-client/raet/RaetV10Project.js +61 -0
- package/lib/behind-api-client/raet/RaetV10Projects.js +14 -0
- package/lib/behind-api-client/raet/RaetV10Report.js +39 -0
- package/lib/behind-api-client/raet/RaetV20.js +11 -0
- package/lib/behind-api-client/raet/RaetV20Cv.js +31 -0
- package/lib/behind-api-client/raet/RaetV20Individuals.js +25 -0
- package/lib/behind-api-client/rag/RagApp.js +9 -0
- package/lib/behind-api-client/rag/RagV10.js +9 -0
- package/lib/behind-api-client/rag/RagV10Storage.js +27 -0
- package/lib/behind-api-client/ruKitchen/RuKitchenApp.js +9 -0
- package/lib/behind-api-client/ruKitchen/RuKitchenV10.js +11 -0
- package/lib/behind-api-client/ruKitchen/RuKitchenV10Importer.js +29 -0
- package/lib/behind-api-client/ruKitchen/RuKitchenV10SeoArticle.js +14 -0
- package/lib/behind-api-client/sales/SalesApp.js +11 -0
- package/lib/behind-api-client/sales/SalesV10.js +23 -0
- package/lib/behind-api-client/sales/SalesV10Catalogue.js +58 -0
- package/lib/behind-api-client/sales/SalesV10Categories.js +15 -0
- package/lib/behind-api-client/sales/SalesV10Companies.js +55 -0
- package/lib/behind-api-client/sales/SalesV10Company.js +120 -0
- package/lib/behind-api-client/sales/SalesV10Group.js +70 -0
- package/lib/behind-api-client/sales/SalesV10Groups.js +21 -0
- package/lib/behind-api-client/sales/SalesV10Logs.js +14 -0
- package/lib/behind-api-client/sales/SalesV10Notes.js +38 -0
- package/lib/behind-api-client/sales/SalesV20.js +11 -0
- package/lib/behind-api-client/sales/SalesV20Companies.js +26 -0
- package/lib/behind-api-client/sales/SalesV20Notes.js +17 -0
- package/lib/behind-api-client/sip/SipApp.js +9 -0
- package/lib/behind-api-client/sip/SipV10.js +15 -0
- package/lib/behind-api-client/sip/SipV10Call.js +83 -0
- package/lib/behind-api-client/sip/SipV10Phone.js +44 -0
- package/lib/behind-api-client/sip/SipV10Transcript.js +21 -0
- package/lib/behind-api-client/sip/SipV10Transcripts.js +21 -0
- package/lib/behind-api-client/storage/StorageApp.js +9 -0
- package/lib/behind-api-client/storage/StorageV10.js +11 -0
- package/lib/behind-api-client/storage/StorageV10File.js +35 -0
- package/lib/behind-api-client/storage/StorageV10Upload.js +21 -0
- package/lib/behind-api-client/tests/TestsApp.js +9 -0
- package/lib/behind-api-client/tests/TestsV10.js +15 -0
- package/lib/behind-api-client/tests/TestsV10Cases.js +29 -0
- package/lib/behind-api-client/tests/TestsV10CasesExtended.js +14 -0
- package/lib/behind-api-client/tests/TestsV10Core.js +14 -0
- package/lib/behind-api-client/tests/TestsV10Mail.js +14 -0
- package/lib/behind-api-client/tools/ToolsApp.js +9 -0
- package/lib/behind-api-client/tools/ToolsV10.js +9 -0
- package/lib/behind-api-client/tools/ToolsV10Pdf.js +30 -0
- package/package.json +25 -0
|
@@ -0,0 +1,647 @@
|
|
|
1
|
+
# EasyJob JavaScript API Client Documentation
|
|
2
|
+
|
|
3
|
+
This document describes the JavaScript client methods for the EasyJob recruitment management system. All methods are asynchronous and return promises.
|
|
4
|
+
|
|
5
|
+
## Installation & Setup
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
// Initialize the API client
|
|
9
|
+
const behindAPI = require('your-api-client');
|
|
10
|
+
|
|
11
|
+
// All EasyJob methods are available under:
|
|
12
|
+
behindAPI.easyjob.V10
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Authentication
|
|
16
|
+
All methods require a valid authenticated session. The client automatically handles user authentication and session management.
|
|
17
|
+
|
|
18
|
+
## Response Format
|
|
19
|
+
All methods return a response object with the following structure:
|
|
20
|
+
|
|
21
|
+
**Success Response:**
|
|
22
|
+
```javascript
|
|
23
|
+
{
|
|
24
|
+
success: true,
|
|
25
|
+
data: {...}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Error Response:**
|
|
30
|
+
```javascript
|
|
31
|
+
{
|
|
32
|
+
success: false,
|
|
33
|
+
message: "Error description"
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Companies API
|
|
40
|
+
|
|
41
|
+
### behindAPI.easyjob.V10.companies.create(name)
|
|
42
|
+
Creates a new company record for the authenticated user.
|
|
43
|
+
|
|
44
|
+
**Parameters:**
|
|
45
|
+
- `name` (string, required) - The name of the company
|
|
46
|
+
|
|
47
|
+
**Usage:**
|
|
48
|
+
```javascript
|
|
49
|
+
const result = await behindAPI.easyjob.V10.companies.create("Tech Solutions Inc.");
|
|
50
|
+
|
|
51
|
+
// Response:
|
|
52
|
+
{
|
|
53
|
+
success: true,
|
|
54
|
+
data: {
|
|
55
|
+
company_id: "550e8400-e29b-41d4-a716-446655440000"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### behindAPI.easyjob.V10.companies.delete(companyId)
|
|
61
|
+
Soft deletes a company record.
|
|
62
|
+
|
|
63
|
+
**Parameters:**
|
|
64
|
+
- `companyId` (string, required) - The company UUID to delete
|
|
65
|
+
|
|
66
|
+
**Usage:**
|
|
67
|
+
```javascript
|
|
68
|
+
const result = await behindAPI.easyjob.V10.companies.delete("550e8400-e29b-41d4-a716-446655440000");
|
|
69
|
+
|
|
70
|
+
// Response:
|
|
71
|
+
{
|
|
72
|
+
success: true
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### behindAPI.easyjob.V10.companies.update(companyId, name)
|
|
77
|
+
Updates an existing company record.
|
|
78
|
+
|
|
79
|
+
**Parameters:**
|
|
80
|
+
- `companyId` (string, required) - The company UUID to update
|
|
81
|
+
- `name` (string, required) - The new company name
|
|
82
|
+
|
|
83
|
+
**Usage:**
|
|
84
|
+
```javascript
|
|
85
|
+
const result = await behindAPI.easyjob.V10.companies.update(
|
|
86
|
+
"550e8400-e29b-41d4-a716-446655440000",
|
|
87
|
+
"Tech Solutions Ltd."
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
// Response:
|
|
91
|
+
{
|
|
92
|
+
success: true
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### behindAPI.easyjob.V10.companies.getList()
|
|
97
|
+
Retrieves all companies for the authenticated user.
|
|
98
|
+
|
|
99
|
+
**Parameters:** None
|
|
100
|
+
|
|
101
|
+
**Usage:**
|
|
102
|
+
```javascript
|
|
103
|
+
const result = await behindAPI.easyjob.V10.companies.getList();
|
|
104
|
+
|
|
105
|
+
// Response:
|
|
106
|
+
{
|
|
107
|
+
success: true,
|
|
108
|
+
data: [
|
|
109
|
+
{
|
|
110
|
+
company_id: "550e8400-e29b-41d4-a716-446655440000",
|
|
111
|
+
name: "Tech Solutions Inc.",
|
|
112
|
+
created_at: "2024-01-15T10:30:00Z",
|
|
113
|
+
updated_at: "2024-01-15T10:30:00Z",
|
|
114
|
+
deleted: false
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Departments API
|
|
123
|
+
|
|
124
|
+
### behindAPI.easyjob.V10.departments.create(companyId, name)
|
|
125
|
+
Creates a new department within a company.
|
|
126
|
+
|
|
127
|
+
**Parameters:**
|
|
128
|
+
- `companyId` (string, required) - The company UUID where the department belongs
|
|
129
|
+
- `name` (string, required) - The name of the department
|
|
130
|
+
|
|
131
|
+
**Usage:**
|
|
132
|
+
```javascript
|
|
133
|
+
const result = await behindAPI.easyjob.V10.departments.create(
|
|
134
|
+
"550e8400-e29b-41d4-a716-446655440000",
|
|
135
|
+
"Engineering"
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
// Response:
|
|
139
|
+
{
|
|
140
|
+
success: true,
|
|
141
|
+
data: {
|
|
142
|
+
department_id: "660e8400-e29b-41d4-a716-446655440001"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### behindAPI.easyjob.V10.departments.delete(departmentId)
|
|
148
|
+
Soft deletes a department record.
|
|
149
|
+
|
|
150
|
+
**Parameters:**
|
|
151
|
+
- `departmentId` (string, required) - The department UUID to delete
|
|
152
|
+
|
|
153
|
+
**Usage:**
|
|
154
|
+
```javascript
|
|
155
|
+
const result = await behindAPI.easyjob.V10.departments.delete("660e8400-e29b-41d4-a716-446655440001");
|
|
156
|
+
|
|
157
|
+
// Response:
|
|
158
|
+
{
|
|
159
|
+
success: true
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### behindAPI.easyjob.V10.departments.update(departmentId, name)
|
|
164
|
+
Updates an existing department record.
|
|
165
|
+
|
|
166
|
+
**Parameters:**
|
|
167
|
+
- `departmentId` (string, required) - The department UUID to update
|
|
168
|
+
- `name` (string, required) - The new department name
|
|
169
|
+
|
|
170
|
+
**Usage:**
|
|
171
|
+
```javascript
|
|
172
|
+
const result = await behindAPI.easyjob.V10.departments.update(
|
|
173
|
+
"660e8400-e29b-41d4-a716-446655440001",
|
|
174
|
+
"Software Engineering"
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
// Response:
|
|
178
|
+
{
|
|
179
|
+
success: true
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### behindAPI.easyjob.V10.departments.getList(companyId)
|
|
184
|
+
Retrieves all departments for a specific company.
|
|
185
|
+
|
|
186
|
+
**Parameters:**
|
|
187
|
+
- `companyId` (string, required) - The company UUID to get departments for
|
|
188
|
+
|
|
189
|
+
**Usage:**
|
|
190
|
+
```javascript
|
|
191
|
+
const result = await behindAPI.easyjob.V10.departments.getList("550e8400-e29b-41d4-a716-446655440000");
|
|
192
|
+
|
|
193
|
+
// Response:
|
|
194
|
+
{
|
|
195
|
+
success: true,
|
|
196
|
+
data: [
|
|
197
|
+
{
|
|
198
|
+
department_id: "660e8400-e29b-41d4-a716-446655440001",
|
|
199
|
+
company_id: "550e8400-e29b-41d4-a716-446655440000",
|
|
200
|
+
name: "Engineering",
|
|
201
|
+
created_at: "2024-01-15T10:30:00Z",
|
|
202
|
+
updated_at: "2024-01-15T10:30:00Z",
|
|
203
|
+
deleted: false
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Job Description Artifacts API
|
|
211
|
+
|
|
212
|
+
### behindAPI.easyjob.V10.jobDescriptionArtifacts.create(jobDescriptionId, content)
|
|
213
|
+
Creates a new artifact for a job description.
|
|
214
|
+
|
|
215
|
+
**Parameters:**
|
|
216
|
+
- `jobDescriptionId` (string, required) - The job description UUID where the artifact belongs
|
|
217
|
+
- `content` (string, required) - The content/text of the artifact
|
|
218
|
+
|
|
219
|
+
**Usage:**
|
|
220
|
+
```javascript
|
|
221
|
+
const result = await behindAPI.easyjob.V10.jobDescriptionArtifacts.create(
|
|
222
|
+
"770e8400-e29b-41d4-a716-446655440002",
|
|
223
|
+
"Additional requirements document content..."
|
|
224
|
+
);
|
|
225
|
+
|
|
226
|
+
// Response:
|
|
227
|
+
{
|
|
228
|
+
success: true,
|
|
229
|
+
data: {
|
|
230
|
+
artifact_id: "880e8400-e29b-41d4-a716-446655440003"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### behindAPI.easyjob.V10.jobDescriptionArtifacts.delete(artifactId)
|
|
236
|
+
Deletes an artifact record.
|
|
237
|
+
|
|
238
|
+
**Parameters:**
|
|
239
|
+
- `artifactId` (string, required) - The artifact UUID to delete
|
|
240
|
+
|
|
241
|
+
**Usage:**
|
|
242
|
+
```javascript
|
|
243
|
+
const result = await behindAPI.easyjob.V10.jobDescriptionArtifacts.delete("880e8400-e29b-41d4-a716-446655440003");
|
|
244
|
+
|
|
245
|
+
// Response:
|
|
246
|
+
{
|
|
247
|
+
success: true
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### behindAPI.easyjob.V10.jobDescriptionArtifacts.updateArtifactData(artifactId, data)
|
|
252
|
+
Updates the processed data field of an artifact.
|
|
253
|
+
|
|
254
|
+
**Parameters:**
|
|
255
|
+
- `artifactId` (string, required) - The artifact UUID to update
|
|
256
|
+
- `data` (object, required) - The processed data to store
|
|
257
|
+
|
|
258
|
+
**Usage:**
|
|
259
|
+
```javascript
|
|
260
|
+
const result = await behindAPI.easyjob.V10.jobDescriptionArtifacts.updateArtifactData(
|
|
261
|
+
"880e8400-e29b-41d4-a716-446655440003",
|
|
262
|
+
{
|
|
263
|
+
processed_requirements: ["React", "Node.js", "PostgreSQL"],
|
|
264
|
+
skill_level: "senior",
|
|
265
|
+
estimated_hours: 40
|
|
266
|
+
}
|
|
267
|
+
);
|
|
268
|
+
|
|
269
|
+
// Response:
|
|
270
|
+
{
|
|
271
|
+
success: true
|
|
272
|
+
}
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### behindAPI.easyjob.V10.jobDescriptionArtifacts.getList(jobDescriptionId)
|
|
276
|
+
Retrieves all artifacts for a specific job description.
|
|
277
|
+
|
|
278
|
+
**Parameters:**
|
|
279
|
+
- `jobDescriptionId` (string, required) - The job description UUID to get artifacts for
|
|
280
|
+
|
|
281
|
+
**Usage:**
|
|
282
|
+
```javascript
|
|
283
|
+
const result = await behindAPI.easyjob.V10.jobDescriptionArtifacts.getList("770e8400-e29b-41d4-a716-446655440002");
|
|
284
|
+
|
|
285
|
+
// Response:
|
|
286
|
+
{
|
|
287
|
+
success: true,
|
|
288
|
+
data: [
|
|
289
|
+
{
|
|
290
|
+
artifact_id: "880e8400-e29b-41d4-a716-446655440003",
|
|
291
|
+
job_description_id: "770e8400-e29b-41d4-a716-446655440002",
|
|
292
|
+
content: "Additional requirements document content...",
|
|
293
|
+
processed_data: {
|
|
294
|
+
processed_requirements: ["React", "Node.js", "PostgreSQL"],
|
|
295
|
+
skill_level: "senior",
|
|
296
|
+
estimated_hours: 40
|
|
297
|
+
},
|
|
298
|
+
created_at: "2024-01-15T10:30:00Z",
|
|
299
|
+
updated_at: "2024-01-15T10:30:00Z"
|
|
300
|
+
}
|
|
301
|
+
]
|
|
302
|
+
}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Candidate Profile Artifacts API
|
|
308
|
+
|
|
309
|
+
### behindAPI.easyjob.V10.candidateProfileArtifacts.create(candidateProfileId, content, source, type)
|
|
310
|
+
Creates a new artifact for a candidate profile.
|
|
311
|
+
|
|
312
|
+
**Parameters:**
|
|
313
|
+
- `candidateProfileId` (string, required) - The candidate profile UUID where the artifact belongs
|
|
314
|
+
- `content` (string, required) - The content/text of the artifact
|
|
315
|
+
- `source` (string, required) - The source of the artifact (e.g., "resume", "cover_letter")
|
|
316
|
+
- `type` (string, required) - The type of artifact (e.g., "pdf", "text", "docx")
|
|
317
|
+
|
|
318
|
+
**Usage:**
|
|
319
|
+
```javascript
|
|
320
|
+
const result = await behindAPI.easyjob.V10.candidateProfileArtifacts.create(
|
|
321
|
+
"aa0e8400-e29b-41d4-a716-446655440005",
|
|
322
|
+
"Resume content in text format...",
|
|
323
|
+
"resume",
|
|
324
|
+
"text"
|
|
325
|
+
);
|
|
326
|
+
|
|
327
|
+
// Response:
|
|
328
|
+
{
|
|
329
|
+
success: true,
|
|
330
|
+
data: {
|
|
331
|
+
artifact_id: "bb0e8400-e29b-41d4-a716-446655440006"
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### behindAPI.easyjob.V10.candidateProfileArtifacts.delete(artifactId)
|
|
337
|
+
Deletes a candidate profile artifact.
|
|
338
|
+
|
|
339
|
+
**Parameters:**
|
|
340
|
+
- `artifactId` (string, required) - The artifact UUID to delete
|
|
341
|
+
|
|
342
|
+
**Usage:**
|
|
343
|
+
```javascript
|
|
344
|
+
const result = await behindAPI.easyjob.V10.candidateProfileArtifacts.delete("bb0e8400-e29b-41d4-a716-446655440006");
|
|
345
|
+
|
|
346
|
+
// Response:
|
|
347
|
+
{
|
|
348
|
+
success: true
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### behindAPI.easyjob.V10.candidateProfileArtifacts.getList(candidateProfileId)
|
|
353
|
+
Retrieves all artifacts for a specific candidate profile.
|
|
354
|
+
|
|
355
|
+
**Parameters:**
|
|
356
|
+
- `candidateProfileId` (string, required) - The candidate profile UUID to get artifacts for
|
|
357
|
+
|
|
358
|
+
**Usage:**
|
|
359
|
+
```javascript
|
|
360
|
+
const result = await behindAPI.easyjob.V10.candidateProfileArtifacts.getList("aa0e8400-e29b-41d4-a716-446655440005");
|
|
361
|
+
|
|
362
|
+
// Response:
|
|
363
|
+
{
|
|
364
|
+
success: true,
|
|
365
|
+
data: [
|
|
366
|
+
{
|
|
367
|
+
artifact_id: "bb0e8400-e29b-41d4-a716-446655440006",
|
|
368
|
+
candidate_profile_id: "aa0e8400-e29b-41d4-a716-446655440005",
|
|
369
|
+
content: "Resume content in text format...",
|
|
370
|
+
source: "resume",
|
|
371
|
+
type: "text",
|
|
372
|
+
created_at: "2024-01-15T10:30:00Z",
|
|
373
|
+
updated_at: "2024-01-15T10:30:00Z"
|
|
374
|
+
}
|
|
375
|
+
]
|
|
376
|
+
}
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## CV Parsing API
|
|
382
|
+
|
|
383
|
+
### behindAPI.easyjob.V10.cv.parse(content, type)
|
|
384
|
+
Parses CV/resume content and extracts structured information.
|
|
385
|
+
|
|
386
|
+
**Parameters:**
|
|
387
|
+
- `content` (string, required) - The content of the CV/resume to parse
|
|
388
|
+
- `type` (string, required) - The type of content (e.g., "text", "pdf", "docx")
|
|
389
|
+
|
|
390
|
+
**Usage:**
|
|
391
|
+
```javascript
|
|
392
|
+
const result = await behindAPI.easyjob.V10.cv.parse(
|
|
393
|
+
"John Doe\nSoftware Engineer\nExperience: 5+ years in full-stack development...",
|
|
394
|
+
"text"
|
|
395
|
+
);
|
|
396
|
+
|
|
397
|
+
// Response:
|
|
398
|
+
{
|
|
399
|
+
success: true,
|
|
400
|
+
data: {
|
|
401
|
+
personal_info: {
|
|
402
|
+
name: "John Doe",
|
|
403
|
+
title: "Software Engineer"
|
|
404
|
+
},
|
|
405
|
+
experience: [...],
|
|
406
|
+
education: [...],
|
|
407
|
+
skills: [...],
|
|
408
|
+
contact_info: {...}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
|
|
415
|
+
## Complete Usage Example
|
|
416
|
+
|
|
417
|
+
```javascript
|
|
418
|
+
// Complete workflow example for candidate management
|
|
419
|
+
async function createCandidateProfile() {
|
|
420
|
+
try {
|
|
421
|
+
// 1. Create a candidate profile
|
|
422
|
+
const profile = await behindAPI.easyjob.V10.candidateProfiles.create();
|
|
423
|
+
const profileId = profile.data.profile_id;
|
|
424
|
+
|
|
425
|
+
// 2. Update basic profile information
|
|
426
|
+
await behindAPI.easyjob.V10.candidateProfiles.update(profileId, {
|
|
427
|
+
first_name: "Jane",
|
|
428
|
+
last_name: "Smith",
|
|
429
|
+
email: "jane.smith@example.com",
|
|
430
|
+
phone: "+1-555-987-6543",
|
|
431
|
+
location: "San Francisco, CA",
|
|
432
|
+
summary: "Full-stack developer with expertise in modern web technologies"
|
|
433
|
+
});
|
|
434
|
+
|
|
435
|
+
// 3. Add education
|
|
436
|
+
await behindAPI.easyjob.V10.candidateProfiles.updateEducation(profileId, [
|
|
437
|
+
{
|
|
438
|
+
institution: "Stanford University",
|
|
439
|
+
degree: "Master of Science",
|
|
440
|
+
field_of_study: "Computer Science",
|
|
441
|
+
start_year: 2018,
|
|
442
|
+
end_year: 2020,
|
|
443
|
+
gpa: 3.9
|
|
444
|
+
}
|
|
445
|
+
]);
|
|
446
|
+
|
|
447
|
+
// 4. Add job experience
|
|
448
|
+
await behindAPI.easyjob.V10.candidateProfiles.updateJobExperience(profileId, [
|
|
449
|
+
{
|
|
450
|
+
company: "Google",
|
|
451
|
+
position: "Software Engineer",
|
|
452
|
+
start_date: "2020-06-01",
|
|
453
|
+
end_date: null, // Current job
|
|
454
|
+
description: "Developed scalable web applications using React and Node.js",
|
|
455
|
+
technologies: ["React", "Node.js", "TypeScript", "MongoDB"]
|
|
456
|
+
}
|
|
457
|
+
]);
|
|
458
|
+
|
|
459
|
+
// 5. Add technical skills
|
|
460
|
+
await behindAPI.easyjob.V10.candidateProfiles.updateHardSkills(profileId, [
|
|
461
|
+
{ skill: "React", level: "Expert", years_experience: 4 },
|
|
462
|
+
{ skill: "Node.js", level: "Advanced", years_experience: 3 },
|
|
463
|
+
{ skill: "TypeScript", level: "Advanced", years_experience: 3 }
|
|
464
|
+
]);
|
|
465
|
+
|
|
466
|
+
// 6. Add soft skills
|
|
467
|
+
await behindAPI.easyjob.V10.candidateProfiles.updateSoftSkills(profileId, [
|
|
468
|
+
{ skill: "Team Leadership", level: "Advanced" },
|
|
469
|
+
{ skill: "Problem Solving", level: "Expert" }
|
|
470
|
+
]);
|
|
471
|
+
|
|
472
|
+
// 7. Add certificates
|
|
473
|
+
await behindAPI.easyjob.V10.candidateProfiles.updateCertificates(profileId, [
|
|
474
|
+
{
|
|
475
|
+
name: "Google Cloud Professional Developer",
|
|
476
|
+
issuing_organization: "Google Cloud",
|
|
477
|
+
issue_date: "2023-03-15",
|
|
478
|
+
expiry_date: "2025-03-15",
|
|
479
|
+
credential_id: "GCP-DEV-789123"
|
|
480
|
+
}
|
|
481
|
+
]);
|
|
482
|
+
|
|
483
|
+
// 8. Add languages
|
|
484
|
+
await behindAPI.easyjob.V10.candidateProfiles.updateLanguages(profileId, [
|
|
485
|
+
{ language: "English", proficiency: "Native" },
|
|
486
|
+
{ language: "French", proficiency: "Intermediate" }
|
|
487
|
+
]);
|
|
488
|
+
|
|
489
|
+
// 9. Upload resume as artifact
|
|
490
|
+
const resumeContent = "Jane Smith\nFull-Stack Developer\n..."; // Resume text
|
|
491
|
+
await behindAPI.easyjob.V10.candidateProfileArtifacts.create(
|
|
492
|
+
profileId,
|
|
493
|
+
resumeContent,
|
|
494
|
+
"resume",
|
|
495
|
+
"text"
|
|
496
|
+
);
|
|
497
|
+
|
|
498
|
+
console.log("Candidate profile created successfully!");
|
|
499
|
+
|
|
500
|
+
} catch (error) {
|
|
501
|
+
console.error("Error creating candidate profile:", error);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
// Complete workflow example for job posting management
|
|
506
|
+
async function createJobPosting() {
|
|
507
|
+
try {
|
|
508
|
+
// 1. Create a company
|
|
509
|
+
const company = await behindAPI.easyjob.V10.companies.create("Tech Innovations LLC");
|
|
510
|
+
const companyId = company.data.company_id;
|
|
511
|
+
|
|
512
|
+
// 2. Create a department
|
|
513
|
+
const department = await behindAPI.easyjob.V10.departments.create(companyId, "Software Development");
|
|
514
|
+
const departmentId = department.data.department_id;
|
|
515
|
+
|
|
516
|
+
// 3. Create a job description
|
|
517
|
+
const jobDesc = await behindAPI.easyjob.V10.jobDescriptions.create(
|
|
518
|
+
departmentId,
|
|
519
|
+
"Full Stack Developer",
|
|
520
|
+
"We are seeking a talented full stack developer..."
|
|
521
|
+
);
|
|
522
|
+
const jobDescId = jobDesc.data.job_description_id;
|
|
523
|
+
|
|
524
|
+
// 4. Update job description with detailed information
|
|
525
|
+
await behindAPI.easyjob.V10.jobDescriptions.update(
|
|
526
|
+
jobDescId,
|
|
527
|
+
"Senior Full Stack Developer", // Updated title
|
|
528
|
+
"We are seeking a talented senior full stack developer with 5+ years of experience...", // Updated description
|
|
529
|
+
"2024-02-01 09:00:00", // Published date
|
|
530
|
+
"2024-03-15 23:59:59" // Application deadline
|
|
531
|
+
);
|
|
532
|
+
|
|
533
|
+
// 5. Add structured job data
|
|
534
|
+
await behindAPI.easyjob.V10.jobDescriptions.updateData(jobDescId, {
|
|
535
|
+
salary_range: "90000-130000",
|
|
536
|
+
remote_work: true,
|
|
537
|
+
experience_level: "senior",
|
|
538
|
+
required_skills: ["React", "Node.js", "TypeScript", "AWS"],
|
|
539
|
+
nice_to_have: ["GraphQL", "Docker", "Kubernetes"],
|
|
540
|
+
benefits: ["Health insurance", "401k matching", "Flexible PTO"]
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
// 6. Add candidate questions
|
|
544
|
+
await behindAPI.easyjob.V10.jobDescriptionCandidateQuestions.create(
|
|
545
|
+
jobDescId,
|
|
546
|
+
"Describe your experience with React and modern JavaScript frameworks"
|
|
547
|
+
);
|
|
548
|
+
|
|
549
|
+
await behindAPI.easyjob.V10.jobDescriptionCandidateQuestions.create(
|
|
550
|
+
jobDescId,
|
|
551
|
+
"How do you approach debugging complex full-stack applications?"
|
|
552
|
+
);
|
|
553
|
+
|
|
554
|
+
// 7. Create job description artifacts
|
|
555
|
+
const artifact = await behindAPI.easyjob.V10.jobDescriptionArtifacts.create(
|
|
556
|
+
jobDescId,
|
|
557
|
+
"Technical requirements and team structure documentation..."
|
|
558
|
+
);
|
|
559
|
+
|
|
560
|
+
// 8. Update artifact with processed data
|
|
561
|
+
await behindAPI.easyjob.V10.jobDescriptionArtifacts.updateArtifactData(
|
|
562
|
+
artifact.data.artifact_id,
|
|
563
|
+
{
|
|
564
|
+
team_size: 8,
|
|
565
|
+
tech_stack: ["React", "Node.js", "PostgreSQL", "Redis"],
|
|
566
|
+
deployment_environment: "AWS",
|
|
567
|
+
development_methodology: "Agile/Scrum"
|
|
568
|
+
}
|
|
569
|
+
);
|
|
570
|
+
|
|
571
|
+
console.log("Job posting created successfully!");
|
|
572
|
+
|
|
573
|
+
} catch (error) {
|
|
574
|
+
console.error("Error creating job posting:", error);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
// CV parsing workflow example
|
|
579
|
+
async function processCandidateCV() {
|
|
580
|
+
try {
|
|
581
|
+
// 1. Parse CV content
|
|
582
|
+
const cvContent = `
|
|
583
|
+
John Doe
|
|
584
|
+
Software Engineer
|
|
585
|
+
john.doe@email.com
|
|
586
|
+
+1-555-123-4567
|
|
587
|
+
|
|
588
|
+
EXPERIENCE
|
|
589
|
+
Senior Developer at TechCorp (2020-2024)
|
|
590
|
+
- Led development of microservices architecture
|
|
591
|
+
- Managed team of 5 developers
|
|
592
|
+
- Technologies: React, Node.js, AWS
|
|
593
|
+
|
|
594
|
+
EDUCATION
|
|
595
|
+
B.S. Computer Science, MIT (2016-2020)
|
|
596
|
+
GPA: 3.8/4.0
|
|
597
|
+
|
|
598
|
+
SKILLS
|
|
599
|
+
JavaScript, Python, React, Node.js, AWS, Docker
|
|
600
|
+
`;
|
|
601
|
+
|
|
602
|
+
const parseResult = await behindAPI.easyjob.V10.cv.parse(cvContent, "text");
|
|
603
|
+
|
|
604
|
+
if (parseResult.success) {
|
|
605
|
+
// 2. Create candidate profile
|
|
606
|
+
const profile = await behindAPI.easyjob.V10.candidateProfiles.create();
|
|
607
|
+
const profileId = profile.data.profile_id;
|
|
608
|
+
|
|
609
|
+
// 3. Update profile with parsed data
|
|
610
|
+
const parsedData = parseResult.data;
|
|
611
|
+
|
|
612
|
+
if (parsedData.personal_info) {
|
|
613
|
+
await behindAPI.easyjob.V10.candidateProfiles.update(profileId, {
|
|
614
|
+
first_name: parsedData.personal_info.first_name,
|
|
615
|
+
last_name: parsedData.personal_info.last_name,
|
|
616
|
+
email: parsedData.personal_info.email,
|
|
617
|
+
phone: parsedData.personal_info.phone
|
|
618
|
+
});
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
if (parsedData.experience) {
|
|
622
|
+
await behindAPI.easyjob.V10.candidateProfiles.updateJobExperience(profileId, parsedData.experience);
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
if (parsedData.education) {
|
|
626
|
+
await behindAPI.easyjob.V10.candidateProfiles.updateEducation(profileId, parsedData.education);
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
if (parsedData.skills) {
|
|
630
|
+
await behindAPI.easyjob.V10.candidateProfiles.updateHardSkills(profileId, parsedData.skills);
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
// 4. Store original CV as artifact
|
|
634
|
+
await behindAPI.easyjob.V10.candidateProfileArtifacts.create(
|
|
635
|
+
profileId,
|
|
636
|
+
cvContent,
|
|
637
|
+
"resume",
|
|
638
|
+
"text"
|
|
639
|
+
);
|
|
640
|
+
|
|
641
|
+
console.log("CV processed and profile created successfully!");
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
} catch (error) {
|
|
645
|
+
console.error("Error processing CV:", error);
|
|
646
|
+
}
|
|
647
|
+
}````
|