Documentation
Diffuser vos offres sur PMEBTP par flux XML
Vos offres sont gérées dans votre propre outil ? Exposez-les dans un flux XML au format ci-dessous : PMEBTP le lit toutes les heures et publie, met à jour et retire vos annonces automatiquement.
En bref
Comment ça fonctionne
- Votre équipe technique publie le flux XML de vos offres à une adresse fixe.
- Vous transmettez cette adresse à votre interlocuteur PMEBTP.
- Nous vérifions le flux avec vous, puis le branchons : vos offres sont en ligne à la lecture suivante, et le restent synchronisées sans autre intervention.
Structure
Exemple de flux
Un élément racine <jobs>, puis un élément <job> par offre.
<?xml version="1.0" encoding="UTF-8"?>
<jobs>
<job>
<id>OFF-123</id>
<reference>RH-2026-14</reference>
<title>Chef de chantier gros œuvre</title>
<contract>CDI</contract>
<city>Nantes</city>
<postal_code>44000</postal_code>
<company_name>Bâtir Ouest</company_name>
<company_description><![CDATA[PME de 80 salariés spécialisée en gros œuvre.]]></company_description>
<job_description><![CDATA[Encadrer deux équipes de compagnons.
Suivre le planning et la sécurité du chantier.]]></job_description>
<profile><![CDATA[5 ans d'expérience en conduite de chantier.]]></profile>
<salary>38 000 à 42 000 € brut / an</salary>
<end_date>2026-12-31</end_date>
<application_email>recrutement@exemple.fr</application_email>
</job>
<job>
…
</job>
</jobs>Référence
Les balises d'une offre
| Balise | Obligatoire | Contenu | Exemple |
|---|---|---|---|
| id | oui | Identifiant de l'offre dans votre outil. Unique dans le flux, et il ne change jamais tant que l'offre existe : c'est lui qui nous dit qu'une offre est nouvelle, modifiée ou retirée. | OFF-123 |
| title | oui | Intitulé du poste, 5 caractères au moins. « H/F » est ajouté s'il manque. | Chef de chantier gros œuvre |
| contract | oui | Type de contrat, une des valeurs de la liste ci-dessous (majuscules et accents indifférents). | CDI |
| city | au moins un | Ville du poste. city ou postal_code est obligatoire, les deux sont recommandés. | Nantes |
| postal_code | au moins un | Code postal du poste. | 44000 |
| job_description | au moins un | Missions du poste. job_description ou profile est obligatoire. | Encadrer deux équipes… |
| profile | au moins un | Profil recherché. | 5 ans d'expérience… |
| company_description | non | Présentation de l'entreprise. | PME de 80 salariés… |
| company_name | non | Nom de l'employeur affiché, s'il diffère du nom de votre compte PMEBTP. | Bâtir Ouest |
| salary | non | Rémunération, en texte libre. | 38 000 à 42 000 € brut / an |
| end_date | non | Dernier jour de publication, au format AAAA-MM-JJ. L'offre est retirée le lendemain. Sans date, elle reste en ligne tant qu'elle est dans le flux. | 2026-12-31 |
| reference | non | Votre référence interne, reprise dans les candidatures qui vous sont transmises. | RH-2026-14 |
| application_email | non | Adresse qui reçoit les candidatures de cette offre (voir « Recevoir les candidatures »). | recrutement@exemple.fr |
| application_url | non | Page de candidature dans votre outil, en https. Ignorée si application_email est renseignée. | https://carrieres.exemple.fr/offres/123 |
| latitude / longitude | non | Coordonnées du poste en degrés décimaux, toujours les deux ensemble. | 47.2184 / -1.5536 |
| rome_code | non | Code ROME France Travail du métier (une lettre et quatre chiffres). | F1202 |
Valeurs acceptées pour contract
- CDI
- CDD
- Intérim
- Alternance
- Stage
- Saisonnier
- Auto-entrepreneur
- CDD évolutif en CDI
Règles
Ce que nous faisons de votre flux
Le flux contient toutes vos offres en ligne
À chaque lecture, nous comparons le flux au précédent : une offre nouvelle est publiée, une offre modifiée est mise à jour, une offre qui n'y figure plus est retirée de PMEBTP. Ne publiez donc pas seulement les nouveautés.
L'identifiant d'une offre ne change pas
La balise id doit rester la même d'une lecture à l'autre. Une offre dont l'identifiant change est vue comme retirée puis remplacée par une nouvelle.
Une adresse fixe, en https
Le flux est servi à une URL stable que nous lisons toutes les heures. Une URL qui contient un jeton secret est acceptée.
UTF-8 et texte brut
Le document est encodé en UTF-8. Les textes sont en texte brut : les retours à la ligne sont conservés, le HTML n'est pas interprété. Entourez les textes longs de <![CDATA[ … ]]> pour ne pas avoir à échapper les caractères & et <.
Une offre incomplète est écartée seule
Une offre à laquelle manque une balise obligatoire, ou dont une valeur ne respecte pas son format (contrat hors liste, date mal écrite…), n'est pas publiée ; les autres offres du flux le sont. Nous vous signalons les offres écartées et leur raison.
Candidatures
Recevoir les candidatures
- Par email — renseignez
application_email: chaque candidature à l'offre est envoyée à cette adresse. Elle peut être celle que votre outil lit pour enregistrer les candidatures. - Sur votre page de candidature — renseignez
application_url: après avoir postulé sur PMEBTP, le candidat est invité à finaliser sa candidature sur cette page. - Sans l'une ni l'autre — les candidatures arrivent dans votre espace recruteur PMEBTP, et vous en êtes averti aux adresses de candidature de votre compte.
Vous souhaitez recevoir les candidatures directement dans votre outil par API ? Parlez-en à votre interlocuteur PMEBTP.