SEO.JSONLD.Occupation (SEO v0.3.0-rc.0)

View Source

A profession, may involve prolonged training and/or a formal qualification.

Helper for building a Schema.org Occupation JSON-LD structure.

Summary

Types

t()

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "Occupation", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

Build a Occupation JSON-LD map.

Types

attrs()

@type attrs() ::
  %{
    optional(:education_requirements) =>
      SEO.JSONLD.EducationalOccupationalCredential.t() | map() | String.t(),
    optional(:estimated_salary) =>
      SEO.JSONLD.MonetaryAmountDistribution.t()
      | map()
      | SEO.JSONLD.MonetaryAmount.t()
      | number(),
    optional(:experience_requirements) =>
      String.t() | SEO.JSONLD.OccupationalExperienceRequirements.t() | map(),
    optional(:occupation_location) => SEO.JSONLD.AdministrativeArea.t() | map(),
    optional(:occupational_category) =>
      SEO.JSONLD.CategoryCode.t() | map() | String.t(),
    optional(:qualifications) => SEO.JSONLD.Credential.t() | map() | String.t(),
    optional(:responsibilities) => String.t(),
    optional(:skills) => String.t() | SEO.JSONLD.DefinedTerm.t() | map(),
    optional(:additional_type) => String.t() | URI.t(),
    optional(:alternate_name) => String.t(),
    optional(:description) => SEO.JSONLD.TextObject.t() | map() | String.t(),
    optional(:disambiguating_description) => String.t(),
    optional(:identifier) =>
      String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
    optional(:image) =>
      URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
    optional(:main_entity_of_page) =>
      SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
    optional(:name) => String.t(),
    optional(:owner) =>
      SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
    optional(:potential_action) => SEO.JSONLD.Action.t() | map(),
    optional(:same_as) => URI.t() | String.t(),
    optional(:subject_of) =>
      SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
    optional(:url) => URI.t() | String.t()
  }
  | [
      education_requirements:
        SEO.JSONLD.EducationalOccupationalCredential.t() | map() | String.t(),
      estimated_salary:
        SEO.JSONLD.MonetaryAmountDistribution.t()
        | map()
        | SEO.JSONLD.MonetaryAmount.t()
        | number(),
      experience_requirements:
        String.t() | SEO.JSONLD.OccupationalExperienceRequirements.t() | map(),
      occupation_location: SEO.JSONLD.AdministrativeArea.t() | map(),
      occupational_category: SEO.JSONLD.CategoryCode.t() | map() | String.t(),
      qualifications: SEO.JSONLD.Credential.t() | map() | String.t(),
      responsibilities: String.t(),
      skills: String.t() | SEO.JSONLD.DefinedTerm.t() | map(),
      additional_type: String.t() | URI.t(),
      alternate_name: String.t(),
      description: SEO.JSONLD.TextObject.t() | map() | String.t(),
      disambiguating_description: String.t(),
      identifier: String.t() | URI.t() | SEO.JSONLD.PropertyValue.t() | map(),
      image: URI.t() | String.t() | SEO.JSONLD.ImageObject.t() | map(),
      main_entity_of_page:
        SEO.JSONLD.CreativeWork.t() | map() | URI.t() | String.t(),
      name: String.t(),
      owner: SEO.JSONLD.Organization.t() | map() | SEO.JSONLD.Person.t(),
      potential_action: SEO.JSONLD.Action.t() | map(),
      same_as: URI.t() | String.t(),
      subject_of: SEO.JSONLD.Event.t() | map() | SEO.JSONLD.CreativeWork.t(),
      url: URI.t() | String.t()
    ]

t()

@type t() :: %{required(String.t()) => term()}

A JSON-LD map ready to be nested or rendered. String-keyed, always includes "@type" set to "Occupation", plus any camelCased field keys the caller provided (see build/1). "@context" is added at render time by SEO.JSONLD.meta/1 on the top-level node only.

Functions

build(attrs)

@spec build(attrs()) :: t()

Build a Occupation JSON-LD map.

Fields

  • :education_requirements - Educational background needed for the position or Occupation.
  • :estimated_salary - An estimated salary for a job posting or occupation, based on a variety of variables including, but not limited to industry, job title, and location. Estimated salaries are often computed by outside organizations rather than the hiring organization, who may not have committed to the estimated value.
  • :experience_requirements - Description of skills and experience needed for the position or Occupation.
  • :occupation_location - The region/country for which this occupational description is appropriate. Note that educational requirements and qualifications can vary between jurisdictions.
  • :occupational_category - A category describing the job, preferably using a term from a taxonomy such as BLS O*NET-SOC, ISCO-08 or similar, with the property repeated for each applicable value. Ideally the taxonomy should be identified, and both the textual label and formal code for the category should be provided.

Note: for historical reasons, any textual label and formal code provided as a literal may be assumed to be from O*NET-SOC.

  • :qualifications - Specific qualifications required for this role or Occupation.
  • :responsibilities - Responsibilities associated with this role or Occupation.
  • :skills - A statement of knowledge, skill, ability, task or any other assertion expressing a competency that is either claimed by a person, an organization or desired or required to fulfill a role or to work in an occupation.

Inherited properties

Additional properties are available through the inheritance chain. See each ancestor's docs for its properties: