Brand and design tokens
Every value on this page is read from the stylesheet that paints the site, not copied into it. Change a token once and both the site and this page move together — no screen is left behind on an old scheme.
Colour
Ground and ink
--ground
#fbfbfc
--surface
#ffffff
--sunk
#f1f2f5
--raised
#ffffff
--ink
#111318
--body
#33363d
--muted
#545862
--faint
#676c76
Edges
--edge
#d7dae1
--edge-soft
#e7e9ee
--hairline
rgba(17,19,24,.10)
Signal
--signal
#1d4ed8
--signal-ink
#1b45bd
--signal-wash
#e7edfd
--signal-hover
#1740b0
Data
--age
#b5841f
--age-ink
#7a5612
--age-wash
#f7ecd4
--fresh
#2f6f5e
--fresh-wash
#dfeae4
--data-mute
#8a8f99
--data-track
#e8eaf0
--up
#2f6f5e
--down
#7a5612
--flat
#676c76
Type
Three slots with one job each. The grotesque carries headings and text; the serif carries figures, because in a statistical record the number is the content and the heading is its caption; the mono carries code and identifiers.
| Token | Specimen | Family |
|---|---|---|
--font-fig | Hiring Index 1,634,293 | Inter Tight |
--font-display | Hiring Index 1,634,293 | Inter Tight |
--font-text | Hiring Index 1,634,293 | Inter Tight |
--font-num | Hiring Index 1,634,293 | IBM Plex Mono |
Scale
| Role | Element | Size |
|---|---|---|
| Page title | h1 | 2.5rem |
| Section title | h2 | 1.75rem |
| Block title | h3 | 1.125rem |
| Body | p | 1rem |
| Caption | .tile-s | .8125rem |
Rhythm and shape
Three vertical weights on an 8-pixel baseline, and at most one major section per page. Structure is carried by a hairline rule, not by a shadow: the page should read as a ruled sheet, not as a stack of floating cards.
| Token | Value |
|---|---|
--sp-major | 104px |
--sp | 64px |
--sp-minor | 32px |
--r-sm | 6px |
--r-md | 8px |
--r-lg | 12px |
--r-xl | 16px |
--r-pill | 999px |
--r | var(--r-lg) |
Voice
Five rules, drawn from the sentences on this site that already work. Each one is checkable: a reviewer can point at a line and say whether it obeys.
| Rule | Write this | Not this |
|---|---|---|
| The number, then the word Show the measurement first, explain second. | 1,634,293 postings, read from ten named systems. | We provide accurate, comprehensive job market data. |
| Limits in the same breath The caveat sits beside the figure, never in a footnote. | Age is left blank where the source publishes implausible dates. | Data quality is our top priority. |
| No superlative without a figure Best, powerful, leading — banned unless a number stands next to them. | Cross-platform duplicates run to a couple of hundred groups across the whole index. | The most complete and reliable index on the market. |
| Invite the check Confidence comes from being verifiable, not from being loud. | Ask any vendor for the same list with the same shares. | Trusted by industry leaders worldwide. |
| Short sentence, ordinary word Written for an engineer and a recruiter, not for an investor deck. | One filter object for search, insights and a single posting. | A unified, extensible query abstraction layer. |
What the brand promises
Say what the number counts
Every figure carries its unit and its rule. A median is printed with its period, a count says whether it was matched on the job title or anywhere in the posting. A number a reader cannot cross-check is worse than no number.
Show the limits in the same breath as the data
Where a source publishes implausible dates, the age is left blank and the reason is printed beside it. Where a row rests on a single employer, it is flagged. The limits live on the page, not in a footnote nobody opens.
Name the sources
Ten applicant tracking systems, listed by name, with the share each contributes. The invitation to compare is the product: ask any vendor for the same list with the same shares.
Draw the data, do not decorate around it
The only ornament is the data itself — a ranking bar inside the cell, a distribution strip, a share of the index. No stock imagery, no illustration standing in for a fact.