Careers, Legal, Contact and Custom spaces

Embed
Preview of the card
<a href="https://forumulate.com/guides/careers-legal-contact-custom"><img src="https://forumulate.com/guides/_api/public/orgs/046a9bc0-d530-43ae-9bae-af7945008cda/spaces/36aa4df0-1e95-4cef-8ae9-795169441345/pages/d2234c94-64f2-44e6-9f5c-551cbb920148/social-card.svg?v=3e7ae33eec8b" alt="Careers, Legal, Contact and Custom spaces" width="600" height="315"></a>

Four more space types round out a site: Careers (open roles), Legal (versioned policies), Contact (a form and an inbox), and Custom (a blank space that takes whatever shape you give it).


Careers (CAREERS)

Open roles, and what it is like to work with you. Roles can be grouped by team.

Set it up

  1. Create a space and choose the Careers type. Its public prefix is /jobs/.

  2. Add a role. Staff author roles.

  3. Pick a layout: List (recommended — every open role in one list, location and kind beside each) or Departments (roles grouped under the team they join).

How the board reads

A jobs board is a flat list of what is open — the two things a candidate scans for (where the work happens, what kind of job it is) are shown before they open anything. A role whose Closes date has passed drops off automatically. A team has its own address (?team=), linkable from that team's page or a recruiter's outreach.

Per-role fields

  • Location, Employment (Full time / Part time / Contract / Internship), Where the work happens (On-site / Hybrid / Remote — the first filter most candidates apply).

  • Team, Experience level (Entry / Mid / Senior / Staff / Lead).

  • Compensation — a human-readable range shown in prose.

  • Salary band (structured) — a structured money value that feeds Google Jobs and JobPosting markup.

  • Visa sponsorship available (a toggle), Reference ID (internal — your ATS requisition id), Where to apply (applyUrl), and Closes (a date).

The authored sections

Summary (required), What you will do (required), What we need (required), Nice to have, What we offer, and How hiring works (steps). These map to JobPosting structured data (description, responsibilities, qualifications, skills, benefits).


Terms, privacy and the other documents every site needs — versioned, and optionally requiring acceptance. Each document is a page in the space; the public index lives at an org-wide address (/legal/[orgId]) so you can link it once from a footer and forget it.

Set it up

  1. Create a space and choose the Legal type. Staff author documents.

  2. Add a document (start from the terms and privacy shapes; you supply the words).

  3. Pick Document list (recommended) or No front door (each document is its own address, with no index page).

Per-document fields

  • Version (version) — what you cite when someone asks which terms they agreed to.

  • Effective from and Last amended (dates) — the amended date is shown to readers beside the version.

  • Governing law (jurisdiction) and Replaces (supersedes) — the version this one replaces.

  • Review by (internal date) — when counsel should look again.

  • Members must accept it (mustAccept, a toggle) — prompts every member on their next visit, and again whenever it changes.

The authored sections: In plain English (required), The document (the operative text, required), and Questions.

Acceptance register

The Legal type has a dedicated Acceptance tab, and a space-level require acceptance setting (legal.require_acceptance). Acceptance is tracked per document version, so you can show who agreed to which version.

The public index lists each document with its version (v{n}) and last-updated date.


Contact (CONTACT)

A way to reach you, and somewhere the messages land. The page is a form; the content is what arrives through it — the one type whose pieces are written by strangers.

Set it up

  1. Create a space and choose the Contact type. Its public prefix is /contact/.

  2. Fill in the facts and intro copy (below). The form goes live; messages land in the space, and unread ones stay marked.

  3. Set your support email (general.support_email). The layout preset is a single Contact page.

Fields (what the form promises)

  • Email (email), Hours (hours), Usually answers within (responseTarget).

  • Phone and Address — shown on the page and in the Organization structured data crawlers read.

  • Something urgent (escalationUrl) — where to go when waiting is not an option (a status page, an on-call number).

The authored sections

Introduction (what the form is for and is not for — required), When you will hear back, What to tell us (the details that save a round trip), and Other ways to reach us.

What readers get

A heading, your intro, the declared facts beside the form, and the form itself (which can offer departments to route the message). The page emits Organization structured data built from the same facts a person sees.


Custom (CUSTOM)

A space that starts with no opinion and takes the shape you give it. Its public prefix is /x/.

Use it when none of the declared types fit. It is page-backed, opens on a landing page, and arranges itself by its own shape rather than a preset — you define its tabs, fields, and sections through the same override system every other type uses. Staff author the pages. Because the shape is declared data (not free-form UI wiring), an agent can read a custom space's shape just as it reads a built-in type's.

The Forumulate teamUpdated