Overview
The Jobs API enables companies to post job openings and manage applications. Freelancers and job seekers can apply to posted positions with cover letters.Mutations
create
Create a new job posting. Requires the user to have a company profile. Input Parameters:Job title (5-250 characters)
EditorJS OutputData object with job description
Job location (5-250 characters)
Employment type:
full_time: Full-time positionpart_time: Part-time positioncontract: Contract workintern: Internship
Whether the position can be performed remotelyDefault:
falseSalary range or information (optional)
BAD_REQUEST: User needs to setup a company profile firstBAD_REQUEST: Error occurred while creating the job
update
Update an existing job posting. Input Parameters:Job ID to update
Job title (5-250 characters)
EditorJS OutputData object with job description
Job location (5-250 characters)
Employment type:
full_time, part_time, contract, or internWhether remote work is allowed
Salary information
BAD_REQUEST: User needs a company profile or update failed
apply
Submit a job application with a cover letter. Input Parameters:Job posting slug (URL identifier)
Cover letter text
BAD_REQUEST: Job not foundBAD_REQUEST: Error occurred while applying
Job Model
Job Fields
Unique job identifier (CUID)
URL-friendly unique identifier (auto-generated)
Job title
Rich text job description (EditorJS format)
Job location
Salary information (optional)
Whether remote work is allowed
Employment type enum: full_time, part_time, contract, intern
ID of the company posting the job
Creation timestamp
Last update timestamp
Relations
The company that posted this job
All applications submitted for this job
Application Model
Application Fields
Unique application identifier (CUID)
ID of the job being applied to
ID of the applicant
Cover letter text
Application submission timestamp
Last update timestamp
Relations
The user who applied
The job being applied to
Server-Side Functions
getJobById(id: string)
Fetch job details by ID. Returns: Job object or null if not found Example:getUserJobs()
Fetch all jobs posted by the authenticated user’s company, including applications. Returns: Array of jobs with detailed application data Redirects: To/auth/sign-in if not authenticated
Response includes:
- Job details (id, title, slug, type, description, location, salary, canBeRemote)
- Application details for each job:
- Application ID and cover letter
- Applicant profile (name, bio, resume, contact info)
getJobApplications(id: string)
Fetch all applications for a specific job. Parameters:id: Job ID