---
title: Module 6(Candidates CRUD)
tags: general
---
# List of APIs
### Module 6: Candidates Module
#### Prerequisites
**New Tables**
- candidates
- id: uuid
- name
- email
- phoneNumber
- DOB
- highestQualification
- pastCompany: string, nullable
- pastDesignation: string, nullable
- pastCTC: string, nullable
- totalExperience: number (default = 0)
- location1
- location2
- location3
- industry1
- industry2
- skill1
- skill2
- skill3
- uploadedResumeUrl: string, url, nullable
- about: Text, nullable
- organizationId
- createdResumeUrl: string, url
- created_at
- updated_at
- created_by
- updated_by
Rec -- Cand
##### 1) Create candidate
**Endpoint:**: POST '/candidate'
**Requirement**: isRecruiterOrgAdmin or isRecruiterMember
##### 2) Get All candidates
**Endpoint:**: GET '/candidates'
**Response**:
```
{
meta: {
...
},
data: [{
name, about, totalExperience, etc.
industry
skills
}, ...]
}
```
##### 3) Edit candidate
**EndPoint**: PUT 'candidates/:candidate_id'
**Required**: isRecruiterOrgAdmin or isRecruiterMember
Process:
Same as other Edit table functions.
##### 5) Disable candidate
**EndPoint**: POST 'candidates/disable'
**Required**: isRecruiterOrgAdmin or member
Process:
Same as recruiter members, will work with the given candidateId.
Request Body:
```
[{
candidateId: {candidate's id},
disable: true/false
}]
```
If disable == true then disable the client else enable it.
##### 6) Delete candidates
**EndPoint**: DELETE '/candidates'
**Required**: isRecruiterOrgAdmin or Member
Process:
Same as recruiter members, will work with the given candidate_id.
Request Body:
```
[{
candidateId: {candidate's id}
}]
```
##### 7) Filters on candidates
same as before
##### 8) Create PDF
We need to create an action to create a PDf resume based on the details provided.
Then we will use this action to create a pdf and store it in post and put operation of candidates.
Also, we will create an endpoint for this in case we need it
##### 9) Get candidates Resume PDF
**EndPoint**: POST '/candidates/resumes'
**Required**: isRecruiterOrgAdmin or Member
Process:
Fetch the createdResumeUrls
Request Body:
```
[{
candidateIds: [array of candidate ids]
}]
```
Response Body:
```
{
meta: {...},
data: {
candidate1_id: "resume_url1",
candidate2_id: "resume_url2",
candidate3_id: "resume_url3",
...
}
}
```