Update Notification Preference
curl --request PATCH \
--url https://api.example.com/api/v1/job-seekers/me/notification-preference \
--header 'Content-Type: application/json' \
--data '
{
"applicationStatusNotificationsEnabled": true,
"jobMatchNotificationsEnabled": true
}
'import requests
url = "https://api.example.com/api/v1/job-seekers/me/notification-preference"
payload = {
"applicationStatusNotificationsEnabled": True,
"jobMatchNotificationsEnabled": True
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
applicationStatusNotificationsEnabled: true,
jobMatchNotificationsEnabled: true
})
};
fetch('https://api.example.com/api/v1/job-seekers/me/notification-preference', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/job-seekers/me/notification-preference",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'applicationStatusNotificationsEnabled' => true,
'jobMatchNotificationsEnabled' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/job-seekers/me/notification-preference"
payload := strings.NewReader("{\n \"applicationStatusNotificationsEnabled\": true,\n \"jobMatchNotificationsEnabled\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/v1/job-seekers/me/notification-preference")
.header("Content-Type", "application/json")
.body("{\n \"applicationStatusNotificationsEnabled\": true,\n \"jobMatchNotificationsEnabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/job-seekers/me/notification-preference")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"applicationStatusNotificationsEnabled\": true,\n \"jobMatchNotificationsEnabled\": true\n}"
response = http.request(request)
puts response.read_bodyJob Seeker
Update Notification Preference
Update the current job seeker notification preferences
PATCH
/
api
/
v1
/
job-seekers
/
me
/
notification-preference
Update Notification Preference
curl --request PATCH \
--url https://api.example.com/api/v1/job-seekers/me/notification-preference \
--header 'Content-Type: application/json' \
--data '
{
"applicationStatusNotificationsEnabled": true,
"jobMatchNotificationsEnabled": true
}
'import requests
url = "https://api.example.com/api/v1/job-seekers/me/notification-preference"
payload = {
"applicationStatusNotificationsEnabled": True,
"jobMatchNotificationsEnabled": True
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
applicationStatusNotificationsEnabled: true,
jobMatchNotificationsEnabled: true
})
};
fetch('https://api.example.com/api/v1/job-seekers/me/notification-preference', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/job-seekers/me/notification-preference",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'applicationStatusNotificationsEnabled' => true,
'jobMatchNotificationsEnabled' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/job-seekers/me/notification-preference"
payload := strings.NewReader("{\n \"applicationStatusNotificationsEnabled\": true,\n \"jobMatchNotificationsEnabled\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/v1/job-seekers/me/notification-preference")
.header("Content-Type", "application/json")
.body("{\n \"applicationStatusNotificationsEnabled\": true,\n \"jobMatchNotificationsEnabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/job-seekers/me/notification-preference")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"applicationStatusNotificationsEnabled\": true,\n \"jobMatchNotificationsEnabled\": true\n}"
response = http.request(request)
puts response.read_bodyEndpoint
PATCH /api/v1/job-seekers/me/notification-preference
http://localhost:3000/api/v1
This endpoint requires authentication and Job Seeker role.
Authentication
Include the access token in the Authorization header:Authorization: Bearer YOUR_ACCESS_TOKEN
Request Body
All fields are optional. Only provide the settings you want to change.boolean
Enable or disable application status update notifications.
boolean
Enable or disable new job match notifications.
Request Shape
interface UpdateNotificationPreferenceDto {
applicationStatusNotificationsEnabled?: boolean;
jobMatchNotificationsEnabled?: boolean;
}
Request Examples
Disable Job Match Notifications
PATCH /api/v1/job-seekers/me/notification-preference
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
{
"jobMatchNotificationsEnabled": false
}
Disable Both Notification Types
PATCH /api/v1/job-seekers/me/notification-preference
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
{
"applicationStatusNotificationsEnabled": false,
"jobMatchNotificationsEnabled": false
}
Re-enable Application Status Notifications
PATCH /api/v1/job-seekers/me/notification-preference
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
{
"applicationStatusNotificationsEnabled": true
}
Response
Success Response (200 OK)
{
"success": true,
"data": {},
"message": "Success",
"meta": {
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/job-seekers/me/notification-preference",
"method": "PATCH"
}
}
Error Responses
400 Bad Request - Validation Error
{
"success": false,
"error": {
"message": ["applicationStatusNotificationsEnabled must be a boolean value"],
"statusCode": 400,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/job-seekers/me/notification-preference",
"method": "PATCH",
"details": "Bad Request"
}
}
401 Unauthorized - Not Authenticated
{
"success": false,
"error": {
"message": "Unauthorized",
"statusCode": 401,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/job-seekers/me/notification-preference",
"method": "PATCH",
"details": "Unauthorized"
}
}
403 Forbidden - Insufficient Permissions
{
"success": false,
"error": {
"message": "Forbidden resource",
"statusCode": 403,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/job-seekers/me/notification-preference",
"method": "PATCH",
"details": "Forbidden"
}
}
Notes
Upsert Behavior: If the preference row does not exist yet, this endpoint creates it before
applying the update.
Read After Write: Call
GET /job-seekers/me/notification-preference after updating if the
frontend needs the latest persisted values.⌘I
