Skip to main content

Overview

The DEVision Platform consists of two backend systems with distinct APIs:

Base URLs

JM Backend (Job Manager)

EnvironmentBase URL
Productionhttps://sgjm-api.vohoangphuc.com
Developmenthttp://localhost:8072

JA Backend (Job Applicant)

EnvironmentBase URL
Productionhttps://sgja-api.vohoangphuc.com
Developmenthttp://localhost:8888

JM Backend (Job Manager)

The JM Backend provides APIs for companies to manage their presence on the platform.

Authentication (/v1/auth)

MethodEndpointDescription
POST/v1/auth/registerRegister new company
POST/v1/auth/loginLogin with email/password
POST/v1/auth/verify-accountVerify OTP and activate account
POST/v1/auth/resend-otpResend OTP to email
GET/v1/auth/google/redirect-urlGet Google OAuth URL
GET/v1/auth/google/authHandle Google OAuth callback
POST/v1/auth/google/registerComplete registration with Google

Company Profile (/v1/profile)

MethodEndpointDescription
POST/v1/profileCreate company profile
GET/v1/profile/{id}Get company profile by ID
PATCH/v1/profile/{id}Update company profile
DELETE/v1/profile/{id}Delete company profile
GET/v1/profile/profilesList all company profiles

Search Profile (/v1/search-profile) - Premium

MethodEndpointDescription
POST/v1/search-profileCreate search profile
GET/v1/search-profile/{id}Get search profile by ID
GET/v1/search-profile/company/{companyId}Get profiles by company
PUT/v1/search-profile/{id}Update search profile
DELETE/v1/search-profile/{id}Delete search profile

JA Backend (Job Applicant)

The JA Backend provides APIs for job applicants to manage their profiles and applications.

Authentication (/auth)

MethodEndpointDescription
POST/auth/registerRegister new applicant
POST/auth/loginLogin with email/password
POST/auth/oauth/googleGoogle OAuth login (PKCE)
POST/auth/token/refreshRefresh access token
POST/auth/logoutLogout and revoke tokens
POST/auth/resend-verificationResend verification email
GET/auth/verify-emailVerify email with token
GET/auth/public-keyGet JWKS public key

User Profile (/user-profile)

MethodEndpointDescription
POST/user-profile/applicants/{id}/work-experiencesAdd work experience
POST/user-profile/applicants/{id}/educationsAdd education
POST/user-profile/applicants/{id}/portfolioUpload portfolio file
GET/user-profile/applicants/{id}/portfolio/allGet all portfolio items
GET/user-profile/healthHealth check

Authentication Methods

The JM Backend uses JWE tokens stored in HttpOnly cookies:
Cookie: auth_token=<jwe_access_token>
Cookie: refresh_token=<jwe_refresh_token>

JA Backend - Bearer Token Auth

The JA Backend uses JWT Bearer tokens:
Authorization: Bearer <jwt_access_token>

Error Response Format

Both backends use a consistent error format:
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Email format is invalid"
  },
  "timestamp": "2025-12-22T10:30:00Z",
  "path": "/auth/register"
}

Error Codes

CodeHTTP StatusDescription
VALIDATION_ERROR400Request validation failed
UNAUTHORIZED401Invalid or expired token
FORBIDDEN403Insufficient permissions
NOT_FOUND404Resource not found
CONFLICT409Resource already exists

API Playground

Use the navigation menu to explore individual endpoints with interactive API playground. Each endpoint includes request/response schemas and the ability to test directly.