Skip to main content

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 in src/content.config.ts:242-269.

TypeScript Type

Fields

Core Fields

string
required
The job title or position name (e.g., “Content Curator & Editor”).
string
required
The name of the hiring organization (e.g., “Dzaleka Digital Heritage”).
string
required
The work location (e.g., “Remote / Dzaleka”, “Dzaleka Refugee Camp”, “Dowa District”).
enum
required
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
enum
required
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
string
required
Detailed job description, responsibilities, and requirements. This field contains the full job posting content.
string
Compensation or salary range (e.g., “Competitive”, “Volunteer”, “$500-800/month”).
Date
required
Application deadline. Automatically coerced to Date type from various input formats.
Date
required
Date when the job was posted. Automatically coerced to Date type.
enum
required
Current status of the job posting. Options:
  • 'open' - Accepting applications (default)
  • 'closed' - No longer accepting applications
  • 'draft' - Not yet published
Defaults to 'open'.
Whether the job should be featured prominently on the platform. Defaults to false.
string[]
required
Array of required or desired skills for the position.

Contact Information

object
required

Example

Here’s a complete example of a Job object:

Usage in Content

Jobs are stored as Markdown files in src/content/jobs/ with YAML frontmatter:

Validation Rules

  • All required fields must be provided: title, organization, location, type, category, deadline, posted, status, featured, skills, contact, and description
  • contact.email must be a valid email address format
  • contact.website (if provided) must be a valid URL format
  • type must be one of: 'full-time', 'part-time', 'contract', 'volunteer', or 'internship'
  • category must be one of the predefined categories
  • status must be 'open', 'closed', or 'draft'
  • skills must be an array with at least one skill
  • deadline and posted dates are automatically coerced from various date formats

Status Management

The status 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
Setting featured: true will display the job prominently on the jobs page and homepage, helping important positions get more visibility.