Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/tech-dipesh/yeti-Jobs/llms.txt

Use this file to discover all available pages before exploring further.

The Notifications API delivers real-time alerts to Yeti Jobs users — including new job matches, application status changes, company-follow confirmations, and platform announcements. Each notification is linked to the user who receives it and optionally to a specific job or company. The API supports fetching the full notification feed, toggling read/unread status on individual notifications, bulk-marking all as read, and programmatically sending a notification to any user by UUID. All endpoints require a valid token cookie. Supported notification types: new_jobs, application_status, job_alert, bookmark_reminder, company_follow, application_recieved, profile_view, message_recieved, resume_analysed, announcement.

GET /api/v1/notifications/all

Returns all notifications for the authenticated user, ordered newest-first. Each item includes the resolved job title and company name from joined tables.
Requires authentication (token cookie).
Response fields
message[].uid
string
Notification UUID.
message[].type
string
Notification type. One of: new_jobs, application_status, job_alert, bookmark_reminder, company_follow, application_recieved, profile_view, message_recieved, resume_analysed, announcement.
message[].created_at
string
ISO 8601 timestamp of when the notification was created.
message[].read_at
string | null
ISO 8601 timestamp of when the notification was read, or null if unread.
message[].job_id
string | null
UUID of the associated job, or null.
message[].company_id
string | null
UUID of the associated company, or null.
message[].users_id
string
UUID of the notification recipient.
message[].job_title
string | null
Title of the associated job (joined from the jobs table), or null.
message[].company_name
string | null
Name of the associated company (joined from the companies table), or null.
curl -s https://yeti-jobs.onrender.com/api/v1/notifications/all \
  --cookie 'token=JWT_TOKEN'
{
  "message": [
    {
      "uid": "n1a2b3c4-d5e6-7890-fghi-jk1234567890",
      "type": "application_status",
      "created_at": "2024-11-10T12:30:00.000Z",
      "read_at": null,
      "job_id": "f1e2d3c4-b5a6-7890-abcd-112233445566",
      "company_id": "c1d2e3f4-0000-1111-2222-aabbccddeeff",
      "users_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "job_title": "Backend Engineer",
      "company_name": "Acme Corp"
    },
    {
      "uid": "n2b3c4d5-e6f7-8901-ghij-kl2345678901",
      "type": "new_jobs",
      "created_at": "2024-11-09T08:00:00.000Z",
      "read_at": "2024-11-09T09:15:00.000Z",
      "job_id": "a9b8c7d6-e5f4-3210-abcd-998877665544",
      "company_id": "c1d2e3f4-0000-1111-2222-aabbccddeeff",
      "users_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "job_title": "Senior Frontend Engineer",
      "company_name": "Acme Corp"
    }
  ]
}

PATCH /api/v1/notifications/read-all

Marks every notification belonging to the authenticated user as read by setting read_at to the current timestamp.
Requires authentication.
curl -s -X PATCH https://yeti-jobs.onrender.com/api/v1/notifications/read-all \
  --cookie 'token=JWT_TOKEN'
{
  "message": "Successfully Read All notifications"
}

POST /api/v1/notifications/:id

Sends a new notification to the user identified by :id. The notification is stored in the database and associated with the caller’s session. Both job_id and company_id must be valid UUIDs that exist in the system.
Requires authentication. The :id in the path is the recipient user’s UUID.
id
string
required
UUID of the user who will receive the notification.
type
string
required
Notification type. Must be one of: new_jobs, application_status, job_alert, bookmark_reminder, company_follow, application_recieved, profile_view, message_recieved, resume_analysed, announcement.
job_id
string
required
UUID of the related job.
company_id
string
required
UUID of the related company.
curl -s -X POST https://yeti-jobs.onrender.com/api/v1/notifications/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  --cookie 'token=JWT_TOKEN' \
  -H "Content-Type: application/json" \
  -d '{
    "type": "application_status",
    "job_id": "f1e2d3c4-b5a6-7890-abcd-112233445566",
    "company_id": "c1d2e3f4-0000-1111-2222-aabbccddeeff"
  }'
{
  "message": [
    {
      "uid": "n3c4d5e6-f7a8-9012-hijk-lm3456789012",
      "users_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "job_id": "f1e2d3c4-b5a6-7890-abcd-112233445566",
      "company_id": "c1d2e3f4-0000-1111-2222-aabbccddeeff",
      "type": "application_status",
      "created_at": "2024-11-15T10:45:00.000Z",
      "read_at": null
    }
  ]
}

PATCH /api/v1/notifications/:id/read

Toggles the read state of a single notification. Pass ?isRead=true to mark it as read (sets read_at to current_timestamp) or ?isRead=false to mark it as unread (clears read_at). The notification must belong to the authenticated user.
Requires authentication. The :id in the path is the notification UUID.
id
string
required
UUID of the notification to update.
isRead
boolean
true to mark the notification as read; false to mark it as unread. Defaults to true.
# Mark as read
curl -s -X PATCH "https://yeti-jobs.onrender.com/api/v1/notifications/n1a2b3c4-d5e6-7890-fghi-jk1234567890/read?isRead=true" \
  --cookie 'token=JWT_TOKEN'
{
  "message": "Successfully marked notification as read"
}
# Mark as unread
curl -s -X PATCH "https://yeti-jobs.onrender.com/api/v1/notifications/n1a2b3c4-d5e6-7890-fghi-jk1234567890/read?isRead=false" \
  --cookie 'token=JWT_TOKEN'
{
  "message": "Successfully marked notification as unread"
}

Build docs developers (and LLMs) love