Skip to content
SwiftJobs

Show pay in

Converted amounts are approximate and marked with ~.

ID
SwiftJobs
See open roles

Jobs and companies

The job and company schema, and how to manage content with the CMS.

Jobs

Each job is a markdown file in src/content/jobs/. The front matter is validated at build time:

---
title: Brand Designer
company: pendle-ash            # id from companies.json
category: design               # engineering, design, product, data, marketing, sales, operations, people
seniority: mid                 # junior, mid, senior, lead
employmentType: full-time      # full-time, part-time, contract, internship
workplace: hybrid              # remote, hybrid, on-site
location: London
countries: [GB]                # ISO codes
salary: { min: 48000, max: 58000, currency: GBP, period: year }
summary: One sentence, at most 200 characters.
skills: [Identity, Packaging]
posted: 2026-09-18
validThrough: 2026-11-02
featured: false
applyUrl: https://...          # optional; without it the built-in form is used
---

The body is regular markdown: headings, lists, links and emphasis are styled.

Pay is required. A job without salary fails the build. That rule is the product: do not remove it.

Supported currencies and their approximate conversion rates are in CURRENCIES and USD_RATES in src/config/site.ts. The rates are used only to convert, sort and compare pay, and converted amounts are always marked as approximate.

Companies

Companies live in src/content/companies/companies.json, inside a companies list. Each company has a monogram logo (mark) with one or two letters and a shape: circle, square, slant or arch.

Decap CMS

A CMS for jobs and companies is included at /admin/. It edits the same files through Git.

Local editing

npm run dev
npx decap-server

Then open http://localhost:4321/admin/index.html. Changes are written straight to src/content/, so commit them afterwards.

Online

  • On Netlify, enable Identity and Git Gateway for the site.
  • Elsewhere, change backend in public/admin/config.yml to github and set your repository.

The CMS fields mirror src/content.config.ts. If you change the schema, change public/admin/config.yml too.

SwiftJobs theme demo

Everything here ships in the theme. This panel does not.

Made by

Accent preset
Site mode