-
Notifications
You must be signed in to change notification settings - Fork 1
API Route Map Sprint 2
eyJhbGciOiJSUzI1NiIsImNhdCI6ImNsX0I3ZDRQRDIyMkFBQSIsImtpZCI6Imluc18ycEZ2Y3JTS1hvQzgwVVJmcUY2bTVMTFRBcXQiLCJ0eXAiOiJKV1QifQ.eyJhenAiOiJodHRwczovL3N1YnRsZS1ncmlmZm9uLTk5LmFjY291bnRzLmRldiIsImV4cCI6MjA0Nzc0NTY1MCwiaWF0IjoxNzMyMzg1NjUwLCJpc3MiOiJodHRwczovL3N1YnRsZS1ncmlmZm9uLTk5LmNsZXJrLmFjY291bnRzLmRldiIsImp0aSI6ImU4MTJiNmM4MDY0ZjQwNDdiYzcyIiwibWV0YWRhdGEiOnsib25ib2FyZGluZ0NvbXBsZXRlIjp0cnVlLCJyb2xlIjoiZGV2ZWxvcGVyIn0sIm5iZiI6MTczMjM4NTY0NSwic3ViIjoidXNlcl8ycEZ3NnlVZzR5RHNiRG5pNzRsNWdqVTdYalYifQ.WEUTnLgYbwEt40M8XVqENUsKjkSjvwurNEtQKwR5fAGh4Zpowk3HLKCxaTso4cHxYxnWxoIdUNnrJL3U8C9FgirEMICtbVcBD3hVkHkRpO9QbGm8Qvx6y-pJZOsXekSpFxwV3fnYT0qf3obU9yHxGp1MotbUkEN8myWFRdUBP7u2maa_zx51sAxSCEHUgzz1FkAB9qaIzLuBBSKfEwHjySl1zmhq3d2p3cEmCntbZRQLyIGi1Do-cCyJZQHCeXKf41PViGqkWW_dSO5ZTQOt3sWLInPYQoeLYqQTd_LGxTbGfqsy8AxgL6PSmqXgvT02iaKkV01GLBhwlj1VNqEn-w
eyJhbGciOiJSUzI1NiIsImNhdCI6ImNsX0I3ZDRQRDIyMkFBQSIsImtpZCI6Imluc18ycEZ2Y3JTS1hvQzgwVVJmcUY2bTVMTFRBcXQiLCJ0eXAiOiJKV1QifQ.eyJhenAiOiJodHRwczovL3N1YnRsZS1ncmlmZm9uLTk5LmFjY291bnRzLmRldiIsImV4cCI6MjA0Nzc0NTUzMiwiaWF0IjoxNzMyMzg1NTMyLCJpc3MiOiJodHRwczovL3N1YnRsZS1ncmlmZm9uLTk5LmNsZXJrLmFjY291bnRzLmRldiIsImp0aSI6IjVmMjZmN2Q4ZjNmY2Q3NzE5MjZjIiwibWV0YWRhdGEiOnsib25ib2FyZGluZ0NvbXBsZXRlIjp0cnVlLCJyb2xlIjoicmVjcnVpdGVyIn0sIm5iZiI6MTczMjM4NTUyNywic3ViIjoidXNlcl8ycEZ3Y2NuOFJzcDZlVmRYTXZvQ1QxbEFSNmoifQ.INYYylklvHJWFKkyZ2sRdZ5R7dVYBC0SSYb4aZ3oyNl73Ux8IqYW02EloyxDGWfkBM3i9ZCtnE8R0uqho0KfijOHp4YMdZFMaLawo4RekxIkGCemy8gTkf_bg_cLmi9hkPg_emvpa3_5JadOOu0Hx9ZQgqn5AwEnOxRUyS_rNJwvErFKT29XlxLX_j3zYFn0O9BxtS1HmguF2F_w_3f6SyctDwbSJHBNayyZqzXzlPQVwFucBBTbXuXc1BqIUir7x1xiM4qv4uS0GQATnTQ_92WdVXb_0wM4s3M3hB4zWiwJ-zmfdBde3uTE5oV3YDsdjmMEZxA2iLkiO0saHqQtVg
- Auth: Default Authentication
- Description: Get User by Identity Id
- Difficulty: Medium
- Link to Clickup: Clickup
Route Params:
-
identityId: The Identity Id of the User (Clerk)
Response:
- Auth: Open
- Description: Post a new user
- Difficulty: Medium
- Link to Clickup: Clickup
Data:
{
"identityId": "user identity id",
"role": "user role", // `Recruiter` | `Developer`
"email": "user email"
}- Auth: Open
- Description: Retrieve list of all Recruiters with pagination
- Difficulty: Hard
- Link to Clickup: Clickup
Query Params:
-
page: (Default 1) actual pagination page -
pageSize: (Default 10) actual pagination page size
Response:
{
"items": [
{
"id": "recruiter uuid",
"name": "recruiter name",
"location": "recruiter location", // string? | possible null
"description": "recruiter description", // string? | possible null
"profilePictureUrl": "recruiter profile picture Url", // string? | possible null
"isVerified": true, // (boolean)
"userId": "the user uuid",
"createdAt": "2012-04-21T18:25:43-05:00", // Created at DateTime
"updatedAt": "2012-04-21T18:25:43-05:00" // Updated at DateTime
}
],
"page": "selected page",
"pageSize": "size of the selected page",
"totalCount": "total number of jobs",
"hasNextPage": true, // (boolean) | if there is a next page
"hasPreviousPage": true // (boolean) | if there is a previous page
}- Auth: Open
- Description: Retrieve a list of jobs of a recruiter with pagination
- Difficulty: Hard
- Link to Clickup: Clickup
Route Params:
-
recruiterId: The recruiter id
Query Params:
-
page: (Default 1) actual pagination page -
pageSize: (Default 10) actual pagination page size
Response:
{
"items": [
{
"id": "job uuid",
"title": "job title",
"salaryPerHour": 0.00, // (double) | job salary per hour
"schedule": "job schedule", // `Full Time` | `Part Time`
"modality": "job modality", // `Remote` | `On Site`
"status": "job status", // `Open` | `In Progress` | `For Review` | `Done`
"description": "job description", // string? | possible null
"location": "job location", // string? | possible null
"recruiterId": "job recruiter uuid",
"recruiterLogo": "job recruiter url logo", // string? | possible null
"createdAt": "2012-04-21T18:25:43-05:00", // Created at DateTime
"updatedAt": "2012-04-21T18:25:43-05:00" // Updated at DateTime
}
],
"page": "selected page",
"pageSize": "size of the selected page",
"totalCount": "total number of jobs",
"hasNextPage": true, // (boolean) | if there is a next page
"hasPreviousPage": true // (boolean) | if there is a previous page
}- Auth: Recruiters
- Description: Retrieve list of all Jobs applicants of a recruiter with pagination
- Difficulty: Very Hard
- Link to Clickup: Clickup
Route Params:
-
recruiterId: The Id of the Recruiter -
jobId: The Id of the job of the recruiter
Query Params:
-
status: "Published" | "Accepted" | "Rejected" | "Viewed" // (Default null) Optional -
page: (Default 1) actual pagination page -
pageSize: (Default 10) actual pagination page size
Response:
{
"jobId": "uuid of job",
"jobTitle": "Title of the job",
"developers": {
"items": [
{
"developerId": "uuid of the applicant developer",
"developerProfileUrl": "link url of the profile picture of the developer",
"developerName": "The name of the developer",
"developerLastName": "The last name of the developer",
"status": "Application status", // `Published`, `Viewed`, `Accepted`, `Rejected`
"createdAt": "2012-04-21T18:25:43-05:00", // Created at DateTime
"updatedAt": "2012-04-21T18:25:43-05:00" // Updated at DateTime
}
],
"page": "selected page",
"pageSize": "size of the selected page",
"totalCount": "total number of jobs",
"hasNextPage": true, // (boolean) | if there is a next page
"hasPreviousPage": true // (boolean) | if there is a previous page
}
}- Auth: Recruiters
- Description: Stats of the recruiter applicants in a specific job
- Difficulty: Medium
- Link to Clickup: Clickup
Route Params:
-
recruiterId: The Id of the recruiter -
jobId: The Id of the job
Response:
{
"total": 45,
"pending": 20,
"accepted": 15,
"rejected": 8,
"viewed": 2
}- Auth: Default authentication
- Description: Post a new recruiter
- Difficulty: Medium
- Link to Clickup: Clickup
Data:
{
"userId": "uuid of the user",
"name": "company name",
"location": "company location",
"profilePicture": "link"
}- Auth: Recruiters
- Description: Update recruiter description
- Difficulty: Easy
- Link to Clickup: Clickup
Route Params:
-
recruiterId: The Id of the recruiter
Data:
{
"about": "Markdown About of Recruiter"
}- Auth: Developers
- Description: Retrieve list of all Jobs applications of a developer with pagination
- Difficulty: Very Hard
- Link to Clickup: Clickup
Route Params:
-
developerId: The Id of the developer
Query Params:
-
status: "Published" | "Accepted" | "Rejected" | "Viewed" // (Default null) Optional -
page: (Default 1) actual pagination page -
pageSize: (Default 10) actual pagination page size
Response:
{
"items": [
{
"status": "Application status", // `Published`, `Viewed`, `Accepted`, `Rejected`
"jobId": "uuid of job",
"jobTitle": "Title of the job",
"recruiterId": "uuid of the recruiter of the job",
"recruiterName": "Recruiter name",
"recruiterProfileUrl": "link url of the profile picture of the recruiter",
"createdAt": "2012-04-21T18:25:43-05:00", // Created at DateTime
"updatedAt": "2012-04-21T18:25:43-05:00" // Updated at DateTime
}
],
"page": "selected page",
"pageSize": "size of the selected page",
"totalCount": "total number of jobs",
"hasNextPage": true, // (boolean) | if there is a next page
"hasPreviousPage": true // (boolean) | if there is a previous page
}- Auth: Developers
- Description: Stats of a developer by Id
- Difficulty: Medium
- Link to Clickup: Clickup
Route Params:
-
developerId: The Id of the developer
Response:
{
"total": 45,
"pending": 20,
"accepted": 15,
"rejected": 8,
"viewed": 2
}- Auth: Default authentication
- Description: Post a new developer
- Difficulty: Very Hard
- Link to Clickup: Clickup
Data:
{
"userId": "uuid of user",
"firstName": "firstName",
"lastName": "LastName",
"modality": "Developer modality preferred", // `Remote`, `Hybrid`, `On Site`
"yearsOfExperience": 5, // max 20
"salaryExpected": 10.50, // (double) `salary expected per hour`
"location": "location of developer",
"profilePicture": "developer profile picture url", // (Optional) possible null
"portfolioUrl": "developer portfolio url", // (Optional) possible null
"specializationId": "uuid specialization",
"skills": [
"uuid skill",
"uuid skill"
],
"spokenLanguages": [
"uuid of language",
"uuid of language"
]
}- Auth: Developers
- Description: Update developer description
- Difficulty: Medium
- Link to Clickup: Clickup
Route Params:
-
developerId: The id of the developer
Data:
{
"description": "Markdown CV of Developer"
}- Auth: Open
- Description: Retrieve list of all Jobs with pagination
- Difficulty: Hard
- Link to Clickup: Clickup
Query Params:
-
page: (Default 1) actual pagination page -
pageSize: (Default 10) actual pagination page size
Response:
{
"items": [
{
"id": "job uuid",
"title": "job title",
"salaryPerHour": 0.00, // (double) | job salary per hour
"schedule": "job schedule", // `Full Time` | `Part Time`
"modality": "job modality", // `Remote` | `On Site`
"status": "job status", // `Open` | `In Progress` | `For Review` | `Done`
"description": "job description", // string? | possible null
"location": "job location", // string? | possible null
"recruiterId": "job recruiter uuid",
"recruiterLogo": "job recruiter url logo", // string? | possible null
"createdAt": "2012-04-21T18:25:43-05:00", // Created at DateTime
"updatedAt": "2012-04-21T18:25:43-05:00" // Updated at DateTime
}
],
"page": "selected page",
"pageSize": "size of the selected page",
"totalCount": "total number of jobs",
"hasNextPage": true, // (boolean) | if there is a next page
"hasPreviousPage": true // (boolean) | if there is a previous page
}- Auth: Open
- Description: Retrieve a Job with Id
- Difficulty: Medium
- Link to Clickup: Clickup
Route Params:
-
jobId: The id of the Job
Response:
{
"id": "job uuid",
"title": "job title",
"salaryPerHour": 0.00, // (double) | job salary per hour
"schedule": "job schedule", // `Full Time` | `Part Time`
"modality": "job modality", // `Remote` | `On Site`
"status": "job status", // `Open` | `In Progress` | `For Review` | `Done`
"description": "job description", // string? | possible null
"location": "job location", // string? | possible null
"recruiterId": "job recruiter uuid",
"recruiterLogo": "job recruiter url logo", // string? | possible null
"createdAt": "2012-04-21T18:25:43-05:00", // Created at DateTime
"updatedAt": "2012-04-21T18:25:43-05:00" // Updated at DateTime
}- Auth: Recruiter
- Description: Post a new job
- Difficulty: Hard
- Link to Clickup: Clickup
Data:
{
"title": "job title",
"salaryPerHour": 75.0, // (double)
"schedule": "job schedule", // `Full Time` | `Part Time`
"modality": "job modality", // `Remote` | `On Site`
"location": "job location here", // Optional possible null
"description": "job description here", // Min 50 characters
"skills": [
"uuid skill",
"uuid skill"
],
"languages": ["uuid language", "uuid language"],
"recruiterId": "Recruiter Id Job",
"specializationId": "Specialization Id Job"
}- Auth: Developer
- Description: Apply to an existing job
- Difficulty: Medium
- Link to Clickup: Clickup
Route Params:
-
jobId: The id of the Job
Data:
{
"developerId": "uuid of developer"
}- Auth: Open
- Description: Retrieve list of all languages
- Difficulty: Easy
- Link to Clickup: Clickup
Response:
[
{
"id": "uuid language",
"name": "language name"
}
]- Auth: Open
- Description: Retrieve list of all skills
- Difficulty: Easy
- Link to Clickup: Clickup
Response:
[
{
"id": "uuid skill",
"name": "skill name"
}
]- Auth: Open
- Description: Retrieve list of all specilizations
- Difficulty: Easy
- Link to Clickup: Clickup
Response:
[
{
"id": "uuid specialization",
"name": "speclization name"
}
]
{ "id": "user uuid", "role": "user role", // `Recruiter` | `Developer` "email": "user email", "doOnboarding": true, // (boolean) true if the user already to the onboarding "developerId": "developer uuid", // (Optional) possible null "recruiterId": "recruiter uuid" // (Optional) possible null }