Data ethics

What we hold, what we suppress, and what we will not publish — including the cases where the answer costs us a story.

Commitments

Suppression floor

No published cell describes fewer than 5 distinct companies. This is a hard floor, not a guideline: a breakdown that cannot clear it is coarsened until it does, or it is not published.

Provenance

Everything on this site is derived from public job advertisements — postings on company applicant-tracking systems and public job boards. Nothing is derived from a customer's account, usage, or queries.

This website itself reads no data at all: every page is static, written by hand, and holds no figures computed from the corpus. The research corpus and customer-facing product data are read through different code paths with different credentials, and nothing on this site reaches either.

Every field we hold about a posting

This is the complete list — not a summary of it. It is every field the API serves about a posting, plus the few derived or joined on for published research.

  • id
  • url
  • title
  • standard_title
  • company_id
  • company_name
  • company_domain
  • location
  • country
  • country_code
  • posted_at
  • source
  • description
  • skills
  • remote_type
  • remote_type_source
  • remote_type_confidence
  • salary_raw
  • salary_min
  • salary_max
  • salary_currency
  • salary_period
  • yearly_salary_usd
  • seniority_level
  • apply_url
  • apply_type
  • apply_url_source
  • apply_precision
  • ats_provider
  • leaves_site
  • external_reference_id
  • employer_type
  • job_family
  • posting_type
  • contact_person
  • is_intermediated
  • employer_disclosed
  • is_canonical_source
  • eligibility
  • relevance_score
  • title_similarity
  • company_signal_count
  • has_substantive_description
  • posted_at_precision
  • salary_estimate_median
  • industry
  • headcount
  • posting_liveness
  • last_check_at

No field here is a person record. We hold no name, email address, phone number or profile of an individual as a field of a posting.

contact_person reads like an exception and is audited as one: Despite the name, this carries no person: it is the PII-safe projection of the posting's on-behalf-of routing, and holds only two company identifiers — the agency's and the company the role was posted for. The underlying record's recruiter name, email address, phone number, LinkedIn profile and job title are deliberately never served.

One caveat we will not paper over. The `description` field is the advertisement's own text, stored and served exactly as the employer published it. Where an employer has chosen to print an individual's details in their own public job advert, those details are inside that text. We do not extract them, index them, build a person record from them, or publish them on this site — and we offer no way to search or filter on them. What we will not do is claim there is no field in which such a detail could appear, because that would not be true.

See also Method — the sample definition and pre-registered metric definitions.