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 Applications API manages the full pipeline between job seekers and recruiters. Job seekers can submit an application with a cover letter and salary expectation, track all the roles they have applied to, and withdraw if needed. Recruiters can view every applicant for a specific job listing and move candidates through the hiring pipeline by updating their status. All endpoints require a valid token cookie.

GET /api/v1/applications/applylist

Returns every application submitted by the authenticated user, joined with the corresponding job details and company name.
Requires authentication (token cookie).
curl -s https://yeti-jobs.onrender.com/api/v1/applications/applylist \
  --cookie 'token=JWT_TOKEN'
{
  "message": [
    {
      "uid": "f1e2d3c4-b5a6-7890-abcd-112233445566",
      "title": "Backend Engineer",
      "company_name": "Acme Corp",
      "description": "Design and build scalable REST APIs...",
      "job_type": "Remote",
      "applied_at": "2024-11-05T14:22:00.000Z",
      "cover_letter": "I am excited to apply for this role...",
      "notice_period": 30,
      "expected_salary": 110000,
      "why_hire": "I have built production Node.js systems at scale.",
      "experience_years": 3,
      "expired_at": "2025-06-30T00:00:00.000Z",
      "status": "shortlisted"
    }
  ]
}

POST /api/v1/applications/:id/apply

Submits a new application for the job identified by :id. Each user may apply to a given job only once; a duplicate attempt returns 401.
Requires authentication and the guest (job seeker) role. The :id in the path is the job UUID.
id
string
required
UUID of the job being applied to.
cover_letter
string
Covering letter text. 10–250 characters.
notice_period
integer
Availability in days (0–90).
expected_salary
integer
required
Expected annual salary. 5,000–10,000,000.
why_hire
string
Why the applicant should be hired. 10–250 characters.
curl -s -X POST https://yeti-jobs.onrender.com/api/v1/applications/f1e2d3c4-b5a6-7890-abcd-112233445566/apply \
  --cookie 'token=JWT_TOKEN' \
  -H "Content-Type: application/json" \
  -d '{
    "cover_letter": "I am excited to apply for this role and bring my expertise in Node.js.",
    "notice_period": 30,
    "expected_salary": 115000,
    "why_hire": "I have shipped three production APIs at scale and can contribute from day one."
  }'
{
  "message": "You've Successfully applied to the role."
}

DELETE /api/v1/applications/:id/withdraw

Withdraws the authenticated user’s application for the job identified by :id. If no matching application exists the request succeeds silently.
Requires authentication. The :id in the path is the job UUID (not the application UUID).
id
string
required
UUID of the job whose application should be withdrawn.
curl -s -X DELETE https://yeti-jobs.onrender.com/api/v1/applications/f1e2d3c4-b5a6-7890-abcd-112233445566/withdraw \
  --cookie 'token=JWT_TOKEN'
{
  "message": "Successfully Withdraw from applications"
}

GET /api/v1/applications/:id/applist

Returns all applicants for the job identified by :id. Each row includes the applicant’s contact details, skills, resume URL, and current status.
Requires authentication, the company-employee role, and ownership of the job (i.e. the job must belong to the caller’s company).
id
string
required
UUID of the job whose applicant list is being retrieved.
curl -s https://yeti-jobs.onrender.com/api/v1/applications/f1e2d3c4-b5a6-7890-abcd-112233445566/applist \
  --cookie 'token=JWT_TOKEN'
{
  "message": [
    {
      "full_name": "Jane Doe",
      "experience": "3",
      "phone_number": "+14155552671",
      "resume_url": "https://cdn.example.com/resumes/jane-doe.pdf",
      "user_skills": ["Node.js", "PostgreSQL", "Docker"],
      "status": "shortlisted",
      "applied_at": "2024-11-05T14:22:00.000Z"
    },
    {
      "full_name": "John Smith",
      "experience": "5",
      "phone_number": "+14085550192",
      "resume_url": "https://cdn.example.com/resumes/john-smith.pdf",
      "user_skills": ["Python", "Django", "AWS"],
      "status": "applied",
      "applied_at": "2024-11-06T09:10:00.000Z"
    }
  ]
}

POST /api/v1/applications/:id/status

Changes the hiring-pipeline status for a specific applicant on a specific job. Both the job UUID (:id path param) and the applicant’s user UUID (user_id body field) must be provided.
Requires authentication and the company-employee role. The :id in the path is the job UUID.
id
string
required
UUID of the job.
user_id
string
required
UUID of the applicant whose status is being changed.
status
string
required
New status. Allowed values: applied, shortlisted, rejected, hired.
curl -s -X POST https://yeti-jobs.onrender.com/api/v1/applications/f1e2d3c4-b5a6-7890-abcd-112233445566/status \
  --cookie 'token=JWT_TOKEN' \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "hired"
  }'
{
  "message": "Application Status Updated Successfully"
}

Build docs developers (and LLMs) love