XooCode(){

EmployeeRole

EmployeeRole is an OrganizationRole subtype for describing an employee's role inside an organisation, carrying salary, title, and tenure. It adds 2 direct properties: baseSalary (MonetaryAmount, Number, or PriceSpecification) and salaryCurrency (ISO 4217 code).

Use EmployeeRole to wrap a Person inside Organization.employee when you want to attach role-scoped data (title, salary, dates). The pattern is:

Organization.employee = EmployeeRole { employee: Person, roleName, startDate, endDate, baseSalary }

Full example of schema.org/EmployeeRole json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/EmployeeRole
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Xoo Code",
  "employee": {
    "@type": "EmployeeRole",
    "roleName": "Staff Reporter",
    "startDate": "2023-07-15",
    "baseSalary": { "@type": "MonetaryAmount", "value": 78000, "currency": "USD" },
    "salaryCurrency": "USD",
    "employee": {
      "@type": "Person",
      "name": "Priya Chen",
      "jobTitle": "Staff Reporter",
      "worksFor": { "@type": "Organization", "name": "Xoo Code" }
    }
  }
}
</script>

Minimal valid version

The smallest markup that still produces a valid EmployeeRole entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/EmployeeRole (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "EmployeeRole",
  "roleName": "Staff Reporter",
  "employee": { "@type": "Person", "name": "Priya Chen" },
  "baseSalary": { "@type": "MonetaryAmount", "value": 78000, "currency": "USD" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • No dedicated rich result (used by HR / knowledge-graph consumers)
    Google docs

Common EmployeeRole mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Attaching salary directly to Person

    Wrong
    Person.baseSalary on an individual
    Right
    EmployeeRole.baseSalary inside Organization.employee

    Salary is role-scoped, not person-scoped. A person can hold different roles with different salaries. EmployeeRole carries that context.

  2. 02

    salaryCurrency without matching MonetaryAmount.currency

    Wrong
    baseSalary.currency = 'USD' but salaryCurrency = 'EUR'
    Right
    Keep the two currency signals consistent

    Inconsistent currencies confuse HR consumers and knowledge graphs.

About the example data

Priya Chen's current role as a Staff Reporter at Xoo Code, with salary and tenure information.

Comments

Loading comments...

Leave a comment