On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

jobTitle

jobTitle · Not mentioned by Google

Appears in

Person

What is it?

jobTitle declares a person's professional title. It accepts plain text ("CEO," "Senior Software Engineer") or a DefinedTerm object for standardized occupational classifications. This field is one of the most common Person properties used in author markup and team pages because it establishes professional context alongside worksFor.

Why this matters for AEO

When a user asks "Who is the CEO of [Company]?" or "What does [Person] do?", AI answer engines pull jobTitle to construct responses. This field is central to E-E-A-T author signals: Google's guidance for article structured data directs publishers to nest jobTitle within the author Person object. An AI engine answering "Is [Author] qualified to write about [topic]?" evaluates jobTitle as a credential signal alongside knowsAbout and worksFor.

What the specs say

Schema.org: Expects Text or DefinedTerm. "The job title of the person (for example, Financial Manager)." Source

Google: Not listed in Google's ProfilePage structured data documentation. However, Google's article author guidance references jobTitle as a property to include within Person markup nested under an article's author field. Source

How to find your value

  • LinkedIn profile — Current title under Experience
  • Company website — Team page or about page titles
  • Email signature — Professional title line
  • Business cards — Title printed below name
  • HR records — Official job title on file

Format and code

Plain text (most common):

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Patrick Coombe",
  "jobTitle": "CEO",
  "worksFor": {
    "@type": "Organization",
    "name": "Elite Strategies"
  }
}

With DefinedTerm for standardized classification:

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Maria Lopez",
  "jobTitle": {
    "@type": "DefinedTerm",
    "name": "Financial Manager",
    "inDefinedTermSet": {
      "@type": "DefinedTermSet",
      "name": "Bureau of Labor Statistics SOC",
      "url": "https://www.bls.gov/soc/"
    },
    "termCode": "11-3031"
  }
}

Nested in article author (E-E-A-T pattern):

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "SEO Strategy Guide",
  "author": {
    "@type": "Person",
    "name": "Patrick Coombe",
    "jobTitle": "CEO",
    "worksFor": {
      "@type": "Organization",
      "name": "Elite Strategies"
    }
  }
}

Use plain text for most implementations. The DefinedTerm form is useful for job boards or HR platforms that map to standardized occupational codes. Keep titles concise and accurate. Do not inflate titles in markup that differ from what appears on the page.

Webflow implementation

Static pages

Add jobTitle in Page Settings > Custom Code (before </head>):

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Pavel Kurecka",
  "jobTitle": "Founder & CRO Strategist",
  "worksFor": {
    "@type": "Organization",
    "name": "Karpi Studio"
  }
}
</script>

CMS template pages

For team member pages with a "Title" plain text field:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "{{wf {"path":"name","type":"PlainText"} }}",
  "jobTitle": "{{wf {"path":"title","type":"PlainText"} }}",
  "worksFor": {
    "@type": "Organization",
    "name": "Your Company"
  }
}
</script>

For blog post author markup, nest the Person inside the Article schema on your CMS blog template.

In Schema HQ

jobTitle is output in Person schema generation. Enter the professional title, and Schema HQ pairs it with worksFor in the published JSON-LD for complete author attribution.

Real examples

Jay Holtslander on jay.holtslander.ca:

{
  "@context": "http://www.schema.org",
  "@type": "Person",
  "name": "Jay Holtslander",
  "jobTitle": "Technical Director",
  "worksFor": [
    {
      "@type": "Organization",
      "name": "Skunkworks Creative Group Inc."
    }
  ]
}

Patrick Coombe on patrickcoombe.com/about-patrick:

{
  "@context": "http://schema.org",
  "@type": "Person",
  "name": "Patrick Coombe",
  "jobTitle": "CEO",
  "worksFor": {
    "@type": "Organization",
    "name": "Elite Strategies"
  }
}

Related fields

  • worksFor — the organization where this title is held
  • knowsAbout — expertise areas that complement the title
  • givenName — first name of the person
  • familyName — last name of the person
  • description — bio text that often includes role context

FAQ

Should jobTitle be plain text or a DefinedTerm?

Plain text works for nearly all implementations. Use DefinedTerm only if you need to reference a standardized occupational classification system (like BLS SOC codes). Search engines and AI systems parse both formats, but plain text is simpler and more widely supported.

Can a person have multiple jobTitles?

Schema.org does not restrict jobTitle to a single value, so an array is technically valid. However, most implementations use a single primary title. If someone holds titles at multiple organizations, pair each jobTitle with its corresponding worksFor in separate Person objects or use the primary title.

Does jobTitle help with Google Knowledge Panels?

jobTitle contributes to the entity information Google uses for Knowledge Panels, especially when paired with worksFor and sameAs links to authoritative profiles. It is not sufficient on its own but strengthens the overall entity signal.

On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

Need help with schema on your site?

We implement structured data for Webflow sites — from audit to deployment.

Work with us

Work with us