Overview

When validating your resume JSON-LD with validator.schema.org, you need to include @type properties for structured data entities. This ensures proper semantic web integration and allows validators to understand what type of Schema.org entity each object represents.

⚠️ Important: @type for Schema.org Validation

When validating with validator.schema.org, you must include @type properties for all structured entities. The @type field specifies what kind of Schema.org entity each object represents.

Document-Level Types

You can optionally add document-level type information at the root:

{
  "$schema": "https://tradik.github.io/schema-resume/schema.json",
  "@type": "DigitalDocument",
  "additionalType": "https://tradik.github.io/schema-resume/Person",
  "basics": {
    "@type": "schema:Person",
    ...
  }
}
  • @type: "DigitalDocument" - Indicates this is a digital document (Schema.org type)
  • additionalType: URL or type providing additional classification for the document
  • Validate against the correct Schema.org vocabulary
  • Enable proper RDF conversion and semantic web integration
  • Support knowledge graph integration

Common @type Values for Resume Sections

Resume Sections

For the resume sections, use appropriate Schema.org types based on the section nature:

Resume Section@type ValueDescription
basicsschema:PersonThe person/candidate
basics.locationschema:PostalAddressPhysical address
basics.profiles[]schema:ContactPointSocial media profiles
basics.nationalities[]schema:CountryCitizenship information
work[]schema:OrganizationEmployer/company
volunteer[]schema:OrganizationVolunteer organization
education[]schema:EducationalOrganizationEducational institution
awards[]schema:AwardProfessional awards
certificates[]schema:EducationalOccupationalCredentialProfessional certifications
publications[]schema:ArticlePublished articles/papers
skills[]schema:DefinedTermSkill categories
tools[]schema:SoftwareApplicationSoftware tools
projects[]schema:SoftwareApplication or schema:EventProjects (see details below)
languages[]schema:LanguageLanguage proficiency
interests[]schema:ThingPersonal interests
references[]schema:ReviewProfessional recommendations

Projects

For the projects array, use appropriate Schema.org types based on the project nature:

Project Type@type ValueUse Case
Software/Applicationsschema:SoftwareApplicationOpen source projects, libraries, applications
General Creative Workschema:CreativeWorkGeneral projects, creative works
Events/Workshopsschema:EventConferences, workshops, presentations
Research Papersschema:ScholarlyArticleAcademic research, papers
Websitesschema:WebSiteWebsite projects

Example with @type

{
  "@context": {
    "@vocab": "https://tradik.github.io/schema-resume/",
    "schema": "http://schema.org/"
  },
  "$schema": "https://tradik.github.io/schema-resume/schema.json",
  "projects": [
    {
      "@type": "schema:SoftwareApplication",
      "name": "My Awesome Library",
      "description": "An open-source JavaScript library",
      "url": "https://github.com/user/awesome-lib",
      "keywords": ["JavaScript", "Library", "Open Source"]
    },
    {
      "@type": "schema:Event",
      "name": "Tech Conference Talk",
      "description": "Presentation on modern web development",
      "startDate": "2024-06",
      "url": "https://conference.example.com"
    }
  ]
}

Other Sections That May Need @type

While the schema doesn't require @type for all sections, you may want to add it for better semantic validation:

Work Experience

{
  "@type": "schema:Organization",
  "name": "Company Name",
  "position": "Software Engineer"
}

Education

{
  "@type": "schema:EducationalOrganization",
  "institution": "University Name",
  "degree": "Bachelor of Science"
}

Publications

{
  "@type": "schema:Article",
  "name": "Article Title",
  "publisher": "Publisher Name"
}

Validation Tools

validator.schema.org

  • URL: https://validator.schema.org/
  • Purpose: Validates JSON-LD structured data against Schema.org vocabulary
  • Requirement: Requires @type for all entities

JSON Schema Validators

  • Purpose: Validates JSON structure against the schema definition
  • Requirement: Does NOT require @type (optional field)

Important Notes

streetAddress vs address

For Schema.org compatibility, use streetAddress instead of address in the location object:

"location": {
  "@type": "schema:PostalAddress",
  "streetAddress": "123 Main Street\nApt 4B",  // ✅ Schema.org compliant
  "city": "San Francisco",
  "postalCode": "94103"
}

The address property is kept for backwards compatibility but will trigger a warning on validator.schema.org.

Best Practices

  1. Always include @type when using validator.schema.org

    • Add @type to all structured entities including awards, languages, interests, and nationalities
  2. Use appropriate Schema.org types

    • Choose the most specific type that matches your content
    • Refer to https://schema.org/ for available types
  3. Prefix with namespace

    • Use schema: prefix: "@type": "schema:SoftwareApplication"
    • Or use full URL: "@type": "http://schema.org/SoftwareApplication"
  4. Keep it optional for JSON Schema validation

    • The @type field is optional in the schema
    • Only required when validating with Schema.org validators

Common Errors

Error: "Unspecified Type (The @type is required and cannot be an empty string.)"

Cause: Missing @type field in a structured data object

Solution: Add appropriate @type to the object:

{
  "@type": "schema:SoftwareApplication",
  "name": "Project Name"
}

Error: "Invalid @type value"

Cause: Using a non-existent or incorrect Schema.org type

Solution: Verify the type exists at https://schema.org/ and use correct format:

  • "@type": "schema:SoftwareApplication"
  • "@type": "http://schema.org/SoftwareApplication"
  • "@type": "Application" (incorrect)

References

Edit this page on GitHub