Job listings as found on jobs.careers.gov.sg
This repository uses GitHub Actions to automatically fetch and update Singapore Government job listings from Careers@Gov public data endpoints.
Most users would be interested in the fetched data, saved in the data/ directory:
job-listings.json: Processed job listingsjob-listings.csv: Processed job listings in CSV format
Information on the structure of the data is described at job-listings.instructions.md.
- Deno installed locally for development
The following environment variables are required:
CAREERSGOVSG_JOB_HEADER: URL endpoint for job listingsCAREERSGOVSG_JOB_DETAILS: URL endpoint for job details
For local development:
- Copy
.env.exampleto.env.local - Fill in the actual endpoint URLs
For GitHub Actions:
- Set these as repository secrets in Settings > Secrets and variables > Actions
# process job data
deno task process
# Run in watch mode for development
deno task dev├── .github/
│ └── workflows/
│ └── fetch-jobs.yml # GitHub Actions workflow
├── scripts/
│ └── fetch-jobs.ts # Main data fetching script
├── data/ # Generated data files (git-tracked)
├── deno.json # Deno configuration
└── .env.example # Example environment variables
The GitHub Action can be triggered manually via workflow_dispatch.
This repository includes comprehensive context for AI coding assistants:
- .github/copilot-instructions.md - Repository-wide context including architecture, conventions, and build steps
- .github/instructions/ - Path-specific guidance:
- job-listings.instructions.md - Data schema for job listings
- scripts.instructions.md - Guidelines for Deno postprocessing scripts
- workflows.instructions.md - GitHub Actions workflow patterns
These files provide context about:
- OData response structures and how to process them
- Required patterns for Flat Data postprocessing scripts
- Conventions for handling API URLs and secrets
- Data transformation rules (date parsing, string cleaning, CSV generation)
See LICENSE for details.