The jobs board and company pages

Step 3 of the site notes plan (27 October 2026). The website's side of companies and contracts. Agreed with Mark, 27 October; the site is built, the rolling board is with the game dev session.

What a job is (Mark): every commander starts in a Cobra Mk III at Lave, and every job is a contract offered by one of the Big Four: Hexon, Vorg, the Mutual and Wexley-Yorozu. There are no other jobs.

So the jobs board is the station's Contracts tab, on the website. In the game, docked, the Contracts tab lists what's "On offer at Cambridge Orbital" (Lave's station). /jobs/ shows that same board, at the same moment, to someone who hasn't played yet, and explains what each kind of contract is. Each company also gets its own page.

The rule that comes first: these are jobs in a game. They must never pass for real job adverts, to a person or to a search engine. See Keeping it a game.

How the Contracts tab works in the game

What the site has to mirror, from src/game/contracts.ts, src/game/assignments.ts and renderContracts() in src/main.ts. It was checked in the game on 27 October as a new Modern commander docked at Lave.

The board

At Lave, over a week of boards (the real numbers)

Offers per board about 6; never an empty board
By company Wexley-Yorozu 53 %, Mutual 20 %, Hexon 18 %, Vorg 10 % (Lave is a dictatorship with moons: W-Y country, Vorg's edge)
Surveys about 3 boards in 4 have one
Rush jobs about 1 offer in 5
Needing more than starter standing about 1 offer in 30
Pay 30 to 510 Cr; typically about 140 Cr

Taking one

Work that isn't on the public board

These are real, but personal to a commander, so the site describes them rather than listing them:

A live board: contracts posted one at a time (Mark)

Mark: "It needs to feel live." Contracts should come in one by one, each with a small notification, not all at once every 30 minutes.

Why it starts in the game. The site must show what the game shows. A trickle on the site over a board that, in the game, still changes all at once would be a fiction, so the change is to the game's board, and the site follows it.

A rolling board (board() in src/game/contracts.ts; game dev session):

On the site:

Honest about it:

Until the game changes, the site shows the half-hourly board as it is, with "New board in 12 min". It doesn't fake a trickle.

The jobs board: /jobs/

1. On offer at Cambridge Orbital, Lave

The board a new commander sees on docking, live.

2. What each company offers

The adverts now on /careers/ each turn out to be a kind of contract that's really in the game. Under the live board, they explain what you'll find:

Advert on /careers/ What it is in the game
Discreet Medical Courier (Hexon), Frontier Freight Pilot (Vorg), Member-Haulier (Mutual), Colony Supply Pilot (W-Y) Haulage: the company's own goods (Hexon's medicine and luxuries, Vorg's alloys and machinery…), starter work
Luxury Goods Haulier (Hexon) Bigger haulage, needing Contractor standing
Survey Contractor (W-Y) Moon surveys
Specimen Transport Associate (Hexon), Irregular Cargo Specialist (Vorg), Relief Runner (Mutual), Science Division Courier (W-Y) Special assignments, by invitation at Contractor standing
Pest Control Operative (Vorg) Not in the game: marked "Coming soon"

Filters

A row of chips, kept in the address (/jobs/?company=vorg&kind=survey) so a filtered board can be shared.

An empty filter is normal. Vorg is on fewer than half of Lave's boards. Then the board says so plainly: "Nothing from Vorg at Lave this half hour: it works the frontier. Riedquat, an anarchy one jump away, is its ground." It also says when the next board comes.

With no JavaScript, the adverts show and the live board says it needs JavaScript.

A short "How contracts work"

Under the board, in four lines from the facts above:

It ends: "Every commander starts at Lave in a Cobra Mk III with 20 t of hold and 100 Cr."

Apply

Company pages: /companies//

One for each company: hexon, vorg, mutual and wy, the ids the game uses. docs/companies.md stays the canon, and each page is built from that company's section.

  1. Header: the mark, the name, the motto and the colour (COMPANIES in src/game/companies.ts), plus its pitch.
  2. Who they are: "Where it came from", "What it does" and "What people say", from the canon.
  3. Its ship: the Coral, Gaboon, Garter or Bullsnake, as written. The Bullsnake links to its ship page; the others say "Not built yet".
  4. Working for them:
    • its adverts, from jobs.json
    • its home ground, from presence() in words: Hexon the safe core, Vorg anarchies and feudal worlds, the Mutual anywhere with a government, W-Y thinly settled worlds with moons
    • its contracts on the board at Lave now, if any; if none, at the nearest station on its home ground (for Vorg, Riedquat, one jump from Lave)
  5. Standing: the ladder from Blacklisted to Partner and what each rung opens, including the special assignment in that company's voice ("Mr Vorg would like a favour").
  6. Between them: its line from "Between them", and links to the other three.

Off the company pages: the logo and concept-art prompts, and the story hooks. They're for builders, and stay on the full design page.

Build jobs: Wexley-Yorozu's design commissions (Mark)

Mark: "We do also offer Build jobs where users can contribute to the Witchspace universe! I think 5000 credits for an approved design from Wexley-Y!"

These match the commission already designed in the Titanoboa:

On the site:

Careers becomes Jobs

Keeping it a game

Share cards

Page Ship on the card Kicker
/jobs/ Cobra Mk III (what every commander flies) Jobs in Witchspace
/companies/hexon/ Coriolis (the Coral isn't built) A company in Witchspace
/companies/vorg/ Mamba A company in Witchspace
/companies/mutual/ Cobra Mk III A company in Witchspace
/companies/wy/ Titanoboa A company in Witchspace

How it's built

Words needed from the marketing session

Placeholder copy (the current careers text) until these arrive:

  1. Company pages: a short in-character pitch for each, for its header.
  2. Adverts:
    • pay lines that match the game (starter work about 50 to 250 Cr at Lave)
    • two more adverts for Wexley-Yorozu, since it posts over half the work at Lave
  3. One line per company for the live cards, in its voice. Hexon: "Punctuality essential." Vorg: "Danger pay included. Pirates also included."
  4. Empty filters: a line for when a company has nothing at Lave this half hour. In character, but plainly saying there's nothing.
  5. Meta descriptions and card subtitles for /jobs/ and each company page (under 160 characters, saying it's a game).

Questions for Mark

  1. The rolling board: send it to the game dev session as a change to board()? Without it, the site can't honestly trickle.
  2. Take this job: the game dev session will build /play/?contract=<id>&company=<id> in the same PR as the rolling board, once you say go.
  3. The adverts' pay: bring them into line with the game (about 50 to 500 Cr), or keep them as in-character puffery with a "typical pay at Lave" line from the real board beside them?

As built (27 October 2026)

Think something here should change? Say so on the ideas board, where others can vote it up, or email hello@witchspace.org.uk. If you code: this page is docs/design/jobs-board.md on GitHub, open to pull requests.