Json.Fr

Documentation pour le format générique JSON chez FCMS #

Le but de ce document est d’aborder le format générique JSON pour une offre d’emploi dans l’écosystème de FCMS.

Exemple complet #

Voici un exemple d’un JSON attendu au format FCMS.

Cet exemple liste tous les champs disponibles pour décrire une offre d’emploi. La plupart sont optionnels, mais nous vous encourageons à en remplir un maximum.

[
  {
    "title": "Aide-Soignant à Domicile en CDI H/F",
    "partnerID": "399f923225c901",
    "description": "Description de l'offre",
    "profileDescription": "Description du profil attendu",
    "baseSalary": {
      "period": "P1M",
      "currency": "EUR",
      "maxValue": 3000,
      "minValue": 2500.50,
      "comment": "Salaire minimum de 2500.50 euros",
      "hidden": false
    },
    "hiringOrganization": {
      "siret": "52099004500053",
      "identifier": "150321626112783351",
      "description": "société de recrutement ODELYS",
      "legalName": "ODELYS"
    },
    "employmentType": {
      "identifier": "2",
      "label": "CDD"
    },
    "employmentTime": "parttime",
    "industries": [
      {
        "identifier": "1000",
        "label": "Informatique / Télécom / Internet"
      }
    ],
    "occupationalCategories": [
      {
        "identifier": "K1304",
        "label": "Services domestiques"
      }
    ],
    "educationRequirements": [
      {
        "identifier": "3",
        "label": "CAP / BEP ou équivalent"
      }
    ],
    "experienceRequirements": [
      {
        "identifier": "2",
        "label": "1 à 2 ans d'expérience"
      }
    ],
    "profileStatus": "non-executive",
    "jobLocations": [
      {
        "locality": "Charenton-le-Pont",
        "postalCode": "94220",
        "streetAddress": "52 Rue de Paris",
        "coordinates": {
          "latitude": 48.793144,
          "longitude": 2.474034
        },
        "subRegion": {
          "name": "Val-de-Marne",
          "code": "94",
          "isoCode": "FR-94"
        },
        "region": {
          "name": "Île-de-France",
          "code": "IDF",
          "isoCode": "FR-IDF"
        },
        "country": {
          "identifier": "France",
          "code": "FR"
        }
      }
    ],
    "application": {
      "reference": "399f923225c901",
      "url": "https://mycompany.com/to-job-posting.html",
      "email": "john.ford@gmail.com",
      "telephone": "+33612345678",
      "type": "redirect",
      "info": "extra info for application purposes",
      "person": {
        "name": "John Ford",
        "telephone": "+33612345678",
        "faxNumber": "+33612345677",
        "email": "john.ford@gmail.co"
      }
    },
    "remote": {
      "remoteDays": 4,
      "temporary": false
    },
    "createdAt": "02 Nov 22 08:20 UTC",
    "updatedAt": "02 Nov 22 08:35 UTC",
    "validThrough": "2022-10-29T19:00:00+02:00"
  }
]

Champs Requis #

  • partnerID
  • title
  • one of {description, profiledescription}
  • jobLocations.PostalCode
  • jobLocations.Country.Code
  • occupationalcategories.Label (*)
  • one of {hiringOrganization.legalName, hiringOrganization.identifier}
  • employmentType.label
  • application.url

(*) occupational categories autrement appelées les fonctions peut-être automatiquement remplies en se basant sur le titre de l’offre d’emploi. Si vous décidez d’activer cette fonctionnalité, n’hésitez pas à vous rapprocher de votre commercial chez FCMS. Une fois celle-ci activée, il n’est plus nécessaire de remplir le champs occupationalcategories.Label

Champs #

title #

type: string

Le titre de l’offre.

Le nombre de caractères dans le titre de l’offre doit être compris entre 2 et 76.

partnerID #

type: string

Ce champ représente l’identifiant unique de l’offre généré par le client qui est la source de l’offre.

La longueur maximale de ce champ est de 150 caractères.

description #

type: string

Ce champ représente la description du poste.

Les informations de formatage incluses dans la description sont pour la plupart ignorées. Seules les balises autorisées (en nombre très limité) par le site publiant l’offre seront conservées après traitement de l’offre. De même les données de style (CSS) sont supprimées de l’offre après traitement.

Le nombre de caractères dans la description doit être compris entre 25 et 4000.

profileDescription #

type: string

Ce champ représente la description du profil recherché.

Les informations de formatage incluses dans la description sont pour la plupart ignorées. Seules les balises autorisées (en nombre très limité) par le site publiant l’offre seront conservées après traitement de l’offre. De même les données de style (CSS) sont supprimées de l’offre après traitement.

Le nombre de caractères dans la description doit être compris entre 25 et 4000.

profileStatus #

type: string

Ce champ permet d’indiquer s’il s’agit d’un poste de cadre.

Deux valeurs sont possibles :

  • non-executive
  • executive

experienceRequirements #

type: []classification

Ce champ permet de renseigner le niveau d’expérience requis pour le poste.
Ses valeurs doivent provenir d’un référentiel.

C’est une liste de Classification

En voici des exemples issus de la nomenclature de Figaro Emploi :

identifiant label
1 Premier emploi
2 1 à 2 ans d’expérience
3 3 à 5 ans d’expérience
4 6 à 10 ans d’expérience
5 Plus de 10 ans d’expérience

educationRequirements #

type: []classification

Ce champ permet de renseigner le niveau d’études requis pour le poste. Ses valeurs doivent provenir d’un référentiel.

C’est une liste de Classification

En voici des exemples issus de la nomenclature de Figaro Emploi :

identifiant label
1 Non qualifié
2 Brevet des collèges ou équivalent
3 CAP / BEP ou équivalent
4 Baccalauréat
5 Bac +2 ou équivalent
6 Bac +3 / Bac +4 ou équivalent
7 Bac +5 ou équivalent
8 Bac +8 ou équivalent

jobLocations #

type: []postalAddress

La localisation de l’offre d’emploi.

C’est une liste de postal addresses.

occupationalCategories #

type: []classification

Ce champ permet de renseigner les fonctions associées à l’offre. Ses valeurs doivent provenir d’un référentiel. L’information de la fonction est requise par Figaro Emploi.

C’est une liste de Classification

baseSalary #

type: object

Ce champ permet de renseigner les informations sur le salaire de l’offre. Il a la structure suivante :

Field Description type
period La période à considérer pour le salaire basé sur la norme ISO 8601 string
currency La devise utilisée comme définie dans la norme ISO 4217 string
maxValue Le montant maximum du salaire float64
minValue Le montant minimum du salaire float64
comment Infos complémentaires sur le salaire string
hidden Indique si le salaire doit être caché sur le site boolean

Pour un salaire fixe, veuillez remplir le même montant pour MaxValue et MinValue.

employmentDuration #

type: string

employmentDuration permet de renseigner la durée du contrat du poste si cela s’applique à l’offre en question. Elle est exprimée dans le format défini dans l’ISO 8601 comme pour la période du salaire.

employmentType #

type: classification

employmentType permet de renseigner le type de contrat du poste. Ses valeurs doivent provenir d’un référentiel.

C’est une liste de classification

employmentTime #

type: string

Ce champ permet d’indiquer la durée de temps de travail.

Deux valeurs sont possibles :

  • parttime
  • fulltime

hiringOrganization #

type: object

Ce champ permet de renseigner les informations sur l’entreprise qui recrute. Il est constitué comme suit :

Field Description type
siret Le siret de la société si elle est en France string
identifier L’identifiant FCMS de la société qui recrute (aka bizio id) string
legalName Le nom de la société qui recrute string
description La description de la société string

Les informations de formatage incluses dans la description de la société sont pour la plupart ignorées. Seules les balises autorisées (en nombre très limité) par le site publiant l’offre seront conservées après traitement de l’offre. De même les données de style (CSS) sont supprimées de la description après traitement.

Si vous ne connaissez pas le identifier ou siret de la société, vous pouvez remplir à la place son legalName.

industries #

type: []classification

Ce champ permet de renseigner les secteurs d’activité associés à l’offre. Ses valeurs doivent provenir d’un référentiel.

C’est une liste de classification

application #

type: object

Ce champ application permet de renseigner les informations pour postuler à l’offre.

Field Description type
person Personne référente pour les candidatures person
email L’adresse email pour postuler si elle existe string
telephone Le numéro de téléphone de la personne référente string
url URL pour postuler si elle existe string
reference La référence de l’offre string
info Info complémentaire sur la manière de postuler string

person #

type: object

Ce champ person permet de renseigner les informations de la personne référente pour les candidatures.

Field Description type
name Le nom complet de la personne référente string
telephone Le numéro de téléphone de la personne référente string
faxNumber Le numéro de fax de la personne référente string
email Le courriel de la personne référente string

createdAt #

type: time

Le champ createdAt correspond à la première date de publication de l’offre.

Accepte uniquement une valeur de type time.

updatedAt #

type: time

Le champ updatedAt correspond à la dernière date de mise à jour de l’offre.

Accepte uniquement une valeur de type time.

validThrough #

type: time

Le champ validThrough correspond à la date d’expiration de l’offre.

Accepte uniquement une valeur de type time.

remote #

type: object

Ce champ permet de renseigner si le télétravail est possible avec le poste et d’en donner les modalités.

Il est structuré comme suit :

Field Description type
remoteDays Nombre de jours en télétravail float64
temporary Indique si le télétravail est temporaire ou permanent boolean

classification #

type: object

Un objet de classification représente un terme d’un critère de nomenclature. Il aide à la classification d’une offre d’emploi.

Les cinq critères principaux utilisés dans une offre d’emploi sont les suivants :

  • Fonctions == OccupationnalCategories
  • Secteurs d’activité == Industries
  • Niveau d’étude == EducationRequirements
  • Contrat == EmploymentType
  • Niveau d’expérience == ExperienceRequirements

La nomenclature choisie peut-être celle de FCMS ou la nomenclature que vous nous avez fournie

Un objet comprends les champs suivants :

Field Description type
identifier L’identifiant du terme de nomenclature string
label Le label du terme de nomenclature string

postal address #

type: object

L’objet postalAddress contient les champs suivants :

Field Description type
country.identifier Le nom du pays string
country.code Le code ISO du pays basé sur la norme ISO 3166-1 alpha-2 string
locality La localité du poste string
region.name Le nom de la région string
region.code Le code région string
region.isoCode Le code ISO de la région basé sur la norme ISO 3166-2 string
subRegion.name Le nom du département string
subRegion.code Le code du département string
subRegion.isoCode Le code ISO du département basé sur la norme ISO 3166-2 string
postalCode Le code postal string
streetAddress L’adresse complète string
coordinates.latitude La latitude des coordonnées GPS float64
coordinates.longitude La longitude des coordonnées GPS float64
hidden Indique si la localisation doit être affichée boolean

time #

type: string

Une valeur time accepte les formats suivants :

Format Exemple value
ANSIC Mon Jan _2 15:04:05 2006
UnixDate Mon Jan _2 15:04:05 MST 2006
RubyDate Mon Jan 02 15:04:05 -0700 2006
RFC822 02 Jan 06 15:04 MST
RFC822Z 02 Jan 06 15:04 -0700
RFC850 Monday, 02-Jan-06 15:04:05 MST
RFC1123 Mon, 02 Jan 2006 15:04:05 MST
RFC1123Z Mon, 02 Jan 2006 15:04:05 -0700
RFC3339 2006-01-02T15:04:05+07:00
RFC3339Nano 2006-01-02T15:04:05.999999999+07:00