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

type Job = {
  title: string;
  organization: string;
  location: string;
  type: 'full-time' | 'part-time' | 'contract' | 'volunteer' | 'internship';
  category: 'education' | 'healthcare' | 'technology' | 'community' | 'business' | 'arts' | 'services' | 'other';
  salary?: string;
  deadline: Date;
  posted: Date;
  status: 'open' | 'closed' | 'draft';
  featured: boolean;
  skills: string[];
  contact: {
    email: string;
    phone?: string;
    website?: string;
  };
  description: string;
};

Fields

Core Fields

title
string
required
The job title or position name (e.g., “Content Curator & Editor”).
organization
string
required
The name of the hiring organization (e.g., “Dzaleka Digital Heritage”).
location
string
required
The work location (e.g., “Remote / Dzaleka”, “Dzaleka Refugee Camp”, “Dowa District”).
type
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
category
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
description
string
required
Detailed job description, responsibilities, and requirements. This field contains the full job posting content.
salary
string
Compensation or salary range (e.g., “Competitive”, “Volunteer”, “$500-800/month”).
deadline
Date
required
Application deadline. Automatically coerced to Date type from various input formats.
posted
Date
required
Date when the job was posted. Automatically coerced to Date type.
status
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.
skills
string[]
required
Array of required or desired skills for the position.

Contact Information

contact
object
required

Example

Here’s a complete example of a Job object:
{
  "title": "Content Curator & Editor",
  "organization": "Dzaleka Digital Heritage",
  "location": "Remote / Dzaleka",
  "type": "part-time",
  "category": "business",
  "posted": "2025-03-12T00:00:00.000Z",
  "deadline": "2025-05-12T00:00:00.000Z",
  "status": "open",
  "featured": true,
  "skills": [
    "Content creation",
    "Editing & proofreading",
    "Digital storytelling",
    "Multimedia curation",
    "Content management systems (CMS)",
    "Photography & video editing",
    "Collaborative Teamwork"
  ],
  "contact": {
    "email": "dzalekaconnect@gmail.com",
    "website": "https://services.dzaleka.com",
    "phone": ""
  },
  "description": "Join Dzaleka Digital Heritage as a Content Curator & Editor to help shape and refine the digital narratives that showcase the stories of Dzaleka's community. Bring your creativity to the forefront by managing and curating multimedia content for our platform."
}

Usage in Content

Jobs are stored as Markdown files in src/content/jobs/ with YAML frontmatter:
---
title: "Content Curator & Editor"
organization: Dzaleka Digital Heritage
location: "Remote / Dzaleka"
type: "part-time"
category: business
posted: 2025-03-12
deadline: 2025-05-12
status: open
featured: true
skills:
  - Content creation
  - Editing & proofreading
  - Digital storytelling
  - Multimedia curation
  - Content management systems (CMS)
  - Photography & video editing
  - Collaborative Teamwork
contact:
  email: "dzalekaconnect@gmail.com"
  website: "https://services.dzaleka.com"
  phone: ""
description: "Join Dzaleka Digital Heritage as a Content Curator & Editor..."
---

## About the Role
Dzaleka Digital Heritage is seeking a creative and detail-oriented Content Curator & Editor...

## Key Responsibilities
- Review and edit written content for clarity, accuracy, and consistency.
- Curate and organize multimedia content (photos, videos, audio) for digital platforms.
...

## Requirements
- Strong writing, editing, and proofreading skills.
- Experience in content creation, journalism, or digital storytelling.
...

## How to Apply
Submit your application via email...

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.