Overview
The Job model represents employment opportunities, volunteer positions, and internships available in and around Dzaleka Refugee Camp. Jobs can be posted by organizations, businesses, and community groups.Schema Definition
The Job model is defined using Zod schema validation insrc/content.config.ts:242-269.
TypeScript Type
Fields
Core Fields
The job title or position name (e.g., “Content Curator & Editor”).
The name of the hiring organization (e.g., “Dzaleka Digital Heritage”).
The work location (e.g., “Remote / Dzaleka”, “Dzaleka Refugee Camp”, “Dowa District”).
The employment type. Options:
'full-time'- Full-time position'part-time'- Part-time position'contract'- Contract-based work'volunteer'- Volunteer opportunity'internship'- Internship or training position
The job category. Options:
'education'- Education and teaching roles'healthcare'- Medical and health services'technology'- IT and digital roles'community'- Community development'business'- Business and entrepreneurship'arts'- Creative and cultural positions'services'- Service industry roles'other'- Other categories
Detailed job description, responsibilities, and requirements. This field contains the full job posting content.
Compensation or salary range (e.g., “Competitive”, “Volunteer”, “$500-800/month”).
Application deadline. Automatically coerced to Date type from various input formats.
Date when the job was posted. Automatically coerced to Date type.
Current status of the job posting. Options:
'open'- Accepting applications (default)'closed'- No longer accepting applications'draft'- Not yet published
'open'.Whether the job should be featured prominently on the platform. Defaults to
false.Array of required or desired skills for the position.
Contact Information
Example
Here’s a complete example of a Job object:Usage in Content
Jobs are stored as Markdown files insrc/content/jobs/ with YAML frontmatter:
Validation Rules
- All required fields must be provided:
title,organization,location,type,category,deadline,posted,status,featured,skills,contact, anddescription contact.emailmust be a valid email address formatcontact.website(if provided) must be a valid URL formattypemust be one of:'full-time','part-time','contract','volunteer', or'internship'categorymust be one of the predefined categoriesstatusmust be'open','closed', or'draft'skillsmust be an array with at least one skilldeadlineandposteddates are automatically coerced from various date formats
Status Management
Thestatus field helps manage job postings:
- open: Currently accepting applications
- closed: No longer accepting applications (past deadline or position filled)
- draft: Not yet published to the public platform
Featured Jobs
Settingfeatured: true will display the job prominently on the jobs page and homepage, helping important positions get more visibility.