## Pourquoi c'est important

Décrire un poste à voix haute prend une minute. Rédiger l'offre prend une heure. Un assistant IA peut se charger de la rédaction : intitulé, contenu, fourchette salariale, étapes, certifications recommandées — le tout créé sur votre compte à l'état de **brouillon**, avec l'URL d'édition renvoyée en retour. Rien n'atteint votre page carrière tant qu'un humain n'a pas cliqué sur **Publier**.

## Deux surfaces

| | Assistant intégré | Client MCP externe |
|---|---|---|
| Mise en place | Aucune — le chat est présent sur chaque page [Recrutement](/hiring/job_postings) | Une connexion, une fois pour toutes : [Connecter des assistants IA](/docs/connecting-ai-assistants) |
| Clients | L'agent maison de Kit | Claude Code, Claude Desktop, Codex CLI, OpenCode, le vôtre |
| Permission | Administrateur Recrutement, abonnement actif | Idem, plus `hiring_write` sur la connexion |
| Étapes | Modèle uniquement | Modèle **ou** étapes écrites pour cette seule offre |
| Modifier un brouillon | Oui | Oui |

Les deux agissent **en votre nom**. Ni l'un ni l'autre ne peut atteindre une offre que vous ne pouvez pas ouvrir, ni faire quoi que ce soit que le formulaire web vous refuserait.

## Un prompt, un brouillon

```
Crée une offre d'emploi en brouillon : Senior Rails Engineer, en télétravail
depuis la Pologne, temps plein. Utilise notre modèle Software Engineer pour les
étapes. Va chercher une fourchette salariale de marché avant d'écrire le moindre
chiffre. Contexte : Rails 8, Hotwire, Postgres ; équipe de six personnes ; la
personne recrutée prend en charge le domaine facturation et la migration Stripe.
```

Ce que l'assistant en fait :

| Étape | Outil | Résultat |
|-------|-------|----------|
| 1 | `hiring_get_setup_guide` | L'état du compte et ce que votre rôle autorise. Sur un compte sans aucune offre, il renvoie aussi le schéma des types d'étapes |
| 2 | `hiring_list_templates` | Vos modèles de compte, plus ceux fournis par Kit, avec leur nombre d'étapes |
| 3 | `compensation_get_salary_benchmark` | Une fourchette issue d'annonces réelles indexées par Kit — nécessite le module Compensation Research |
| 4 | `hiring_list_credentials` | Les clés de certification qu'une offre peut recommander |
| 5 | `hiring_create_job_posting` | Brouillon créé. Renvoie l'identifiant de l'offre et son URL d'édition |

Sautez l'étape 3 et le modèle inventera un salaire de mémoire. Demandez la référence salariale nommément.

## Donnez-lui de la matière

L'assistant ne connaît votre environnement technique et votre équipe que si vous les lui décrivez. Ce qui fait passer un brouillon du texte générique à une offre qui recrute vraiment :

- La dernière offre dont vous étiez satisfait — collez-la et dites « même ton, nouveau poste »
- Vos notes de la réunion de lancement, telles quelles
- Les contraintes réelles de l'équipe : fuseau horaire, astreinte, plafond salarial, ce dont la personne recrutée aura la charge dès le premier mois

Le contenu doit respecter deux règles, et les outils les rappellent toutes deux au modèle :

- Du **Markdown**, pas du HTML.
- **Pas d'intitulé de poste dans le contenu.** Kit affiche le titre lui-même ; commencez à « À propos du poste » ou à votre première vraie section, sinon les candidats liront le titre deux fois.

## Les étapes : modèle ou définition directe

`process_template_id` et `stages` s'excluent mutuellement — transmettre les deux produit une erreur.

**Modèle.** Les identifiants viennent de `hiring_list_templates`. Un assistant dépourvu de compte Kit peut d'abord parcourir le catalogue public de Kit sur `https://startupkit.app/mcp` (sans authentification, `list_catalog_templates`).

**Étapes définies directement** — clients MCP uniquement, pour un processus propre à cette seule offre :

```json
"stages": [
  {"name": "Candidature", "type": "application_form"},
  {"name": "Exercice à domicile", "type": "portfolio_upload",
   "config": {"payout": {"enabled": true, "amount": 500, "currency": "USD"}}},
  {"name": "Revue d'équipe", "type": "team_review",
   "reviewers": [{"email": "ana@example.com", "role": "lead"}]},
  {"name": "Offre", "type": "offer"}
]
```

Dix types : `application_form`, `code_assignment`, `portfolio_upload`, `questionnaire`, `video`, `video_recording`, `team_review`, `live_interview`, `reference_check`, `offer`. Chacun accepte un bloc `payout`. Les adresses e-mail des évaluateurs doivent déjà correspondre à des membres de l'équipe.

> [!NOTE]
> Un modèle construit les étapes **uniquement au moment de la création**. Modifier le modèle ensuite n'atteint jamais une offre déjà créée — modifiez plutôt les étapes.

## Ce que l'IA ne peut pas faire

- **Publier.** Aucun outil de Kit ne fait sortir une offre du brouillon. C'est délibéré, pas une lacune.
- Affecter l'équipe de recrutement, ou des évaluateurs sur une étape existante — interface web.
- Téléverser l'image de partage pour les réseaux sociaux (`og_image`) — interface web.
- Réappliquer un modèle de processus après la création.
- Effacer un montant de salaire ou un booléen. Sur les outils de mise à jour, `null` signifie « ne touche à rien » : vider un champ passe donc par l'interface web. (`recommended_credential_keys` fait exception : `[]` l'efface.)

## Corriger le brouillon

Les deux surfaces peuvent modifier ce qui a été créé : `hiring_update_job_posting` pour l'offre, `hiring_update_stage` pour une étape.

Créer une offre exige d'être **administrateur Recrutement** — le chat intégré ne propose même pas l'outil aux autres. La modifier exige d'être administrateur Recrutement **ou** responsable du recrutement sur cette offre : la personne qui pilote un poste peut donc l'affiner sans détenir les droits d'administration.

Les deux outils sont partiels : les clés que vous omettez restent en l'état, celles que vous transmettez écrasent l'existant. Deux pièges à connaître avant de lâcher un agent en boucle sur un brouillon :

- **`description` remplace tout le contenu.** Il n'existe aucun ajout en fin de texte. Faites lire l'offre à l'assistant, faites-la-lui réécrire intégralement, puis renvoyez le tout.
- **Les sections de configuration d'étape sont remplacées en bloc, jamais fusionnées en profondeur.** Transmettre `config.code_assignment` écrase toutes les clés de cette section : envoyez donc aussi celles que vous voulez conserver. (`reference_check` est la seule section qui fusionne.)

La réponse de mise à jour tronque la description à 500 caractères. Pour vérifier le contenu complet, relisez-le avec `hiring_get_job_posting`.

## Les détails qui coincent

**Un poste en télétravail exige un pays.** Avec `remote: true`, Kit signale l'annonce comme `TELECOMMUTE` dans ses données structurées uniquement s'il parvient à déterminer un pays — depuis `applicant_location_country` (« Poland », « United States »), ou à défaut depuis la chaîne de localisation. Si aucun des deux ne donne de résultat, Google Jobs n'apprendra jamais que le poste est en télétravail.

**Les certifications recommandées sont une invitation, rien de plus.** Les clés viennent de `hiring_list_credentials`. Chaque candidat qui postule *après* que vous les avez définies reçoit un e-mail unique l'invitant à transmettre un justificatif ; les candidats antérieurs n'en reçoivent jamais. Kit ne vérifie, ne note, ne classe et ne filtre personne sur la base de ce qui revient.

**La période de rémunération et la devise valent par défaut l'année et l'USD.** Nommez la devise dans votre prompt si le poste n'est pas basé aux États-Unis.

## Avant de publier

Relisez le brouillon. Un assistant qui écrit sur votre entreprise écrit à partir de ce que vous lui avez donné, et de ce qu'il a supposé.

> [!WARNING]
> La **description de l'étape** est publique — elle s'affiche sur votre page carrière pour quiconque la parcourt. L'**énoncé** est privé, lisible seulement par un candidat qui a atteint cette étape. Si un assistant a rédigé un exercice à réaliser chez soi assorti d'un lien vers un jeu de données, vérifiez que ce lien se trouve bien dans l'énoncé. Voir [Description de l'étape et énoncé de la tâche](/docs/creating-a-job-posting#description-de-létape-et-énoncé-de-la-tâche).

## En bref

- [ ] Administrateur Recrutement, abonnement actif — et `hiring_write` si vous passez par un client externe
- [ ] Collez de la vraie matière : ancienne offre, notes de lancement, contraintes
- [ ] Demandez explicitement une référence salariale, avant que les chiffres ne soient écrits
- [ ] Choisissez un modèle, ou fournissez des étapes définies directement avec les évaluateurs par e-mail
- [ ] Vérifiez que le contenu ne répète pas l'intitulé et qu'il ressemble bien à votre équipe
- [ ] Confirmez que les liens de la tâche se trouvent dans l'**énoncé**, et non dans la description de l'étape
- [ ] Renseignez l'équipe de recrutement dans l'interface web si le poste est restreint
- [ ] Publiez vous-même

## Pour aller plus loin

- [Créer une offre d'emploi](/docs/creating-a-job-posting) — tous les champs, statuts et réglages d'étape de l'interface web
- [Agent IA et outils MCP](/docs/hiring-ai-agent-mcp) — le reste de la panoplie de recrutement : triage, évaluations, réponses aux candidats
- [Connecter des assistants IA](/docs/connecting-ai-assistants) — configuration MCP, OAuth, portées
- [Référence des outils MCP](/docs/mcp-tools-reference) — les paramètres de chaque outil