hr.applicant : champs, relations et API
Le modèle hr.applicant (« Candidat ») est un modèle persistant déclaré par le module Recrutement, puis enrichi par 4 autres modules. Il expose 109 champs, dont 69 déclarés directement sur le modèle ; 11 champs d'autres modèles pointent vers lui. Retrouvez ci-dessous chaque champ avec son nom technique, son type, son libellé français et ses relations, puis un exemple d'appel à l'API JSON-2 d'Odoo 19.
Fiche d'identité
- Nom technique
hr.applicant- Libellé
- Candidat
- Type
- Persistant (models.Model)
- Table SQL
hr_applicant- Module d'origine
- Recrutement (
hr_recruitment) - Étendu par
- hr_recruitment_skills, hr_recruitment_sms, hr_recruitment_survey, website_hr_recruitment
- Tri par défaut (_order)
priority desc, sequence, id desc- Champ d'affichage (_rec_name)
partner_name
Champs du modèle
69 champs propres, 35 hérités des mixins et 5 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
109 champs affichés sur 109
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| active | Actif Si le champ actif n'est pas coché, cela vous permettra de masquer le cas sans le supprimer. | boolean | |
| applicant_notes | Notes candidat | html | |
| applicant_properties | Propriétés | properties | |
| applicant_skill_ids | Compétences | one2many | inverse : ajouté par Recrutement - Gestion des compétences ( |
| application_count | Nombre de candidatures Candidatures avec le même e-mail, téléphone ou portable | integer | calculé |
| application_status | Statut de la candidature | selection | calculé Valeurs : |
| attachment_ids | Pièces jointes | one2many | inverse : |
| attachment_number | Nombre de pièces jointes | integer | calculé |
| availability | Disponibilité La date à laquelle le candidat sera disponible pour commencer à travailler | date | |
| campaign_id | Campagne | many2one | |
| categ_ids | Étiquettes | many2many | |
| color | Couleur | integer | |
| company_id | Société | many2one | calculé, stocké |
| create_date | Postulé le | datetime | lecture seule |
| current_applicant_skill_ids | Compétence actuelle du candidat | one2many | calculé inverse : ajouté par Recrutement - Gestion des compétences ( |
| date_closed | Date d'embauche | datetime | calculé, stocké |
| date_last_stage_update | Dernière mise à jour de l'étape | datetime | |
| date_open | Assigné | datetime | lecture seule |
| day_close | Jours pour clôturer | float | calculé |
| day_open | Jours pour ouvrir | float | calculé |
| delay_close | Délai pour fermer Nombre de jours pour clôturer | float | lecture seulecalculé, stocké |
| department_id | Département | many2one | calculé, stocké |
| email_from | char | calculé, stocké | |
| email_normalized | Email Normalized | char | |
| emp_is_active | Employé actif | boolean | related : |
| employee_id | Employé L'employé associé au candidat. | many2one | |
| employee_name | Nom de l'employé | char | related : |
| interviewer_ids | Interviewers | many2many | |
| is_applicant_in_pool | Le candidat est dans le vivier | boolean | calculé |
| is_pool_applicant | Est un candidat du vivier | boolean | calculé |
| job_id | Poste | many2one→ hr.job | |
| kanban_state | Statut kanban | selection | requis Valeurs : |
| last_stage_id | Dernière étape Etape précédente du stage actuel du candidat. Utilisé pour l'analyse des cas perdus. | many2one | |
| legend_blocked | Kanban bloqué | char | related : |
| legend_done | Kanban prêt pour la prochaine étape | char | related : |
| legend_normal | Kanban en cours | char | related : |
| legend_waiting | En attente Kanban | char | related : |
| linkedin_profile | Profil Linkedin | char | |
| matching_score | Score de correspondance | integer | calculé ajouté par Recrutement - Gestion des compétences ( |
| matching_skill_ids | Compétences correspondantes | many2many→ hr.skill | calculé ajouté par Recrutement - Gestion des compétences ( |
| medium_id | Médium Ceci indique comment le candidat a été contacté, par exemple via e-mail, LinkedIn, site web, etc. | many2one | |
| meeting_display_date | Date d'affichage de la réunion | date | calculé |
| meeting_display_text | Texte de présentation de la réunion | char | calculé |
| meeting_ids | Réunions | one2many | inverse : |
| missing_skill_ids | Compétences manquantes | many2many→ hr.skill | calculé ajouté par Recrutement - Gestion des compétences ( |
| partner_id | Contact | many2one | |
| partner_name | Nom du candidat | char | |
| partner_phone | Téléphone | char | calculé, stocké |
| partner_phone_sanitized | Numéro de téléphone nettoyé | char | calculé, stocké |
| pool_applicant_id | Candidat du vivier | many2one | |
| priority | Évaluation | selection | Valeurs : |
| probability | Probabilité | float | |
| refuse_date | Date de refus | datetime | |
| refuse_reason_id | Raison de refus | many2one | |
| response_ids | Réponses | one2many | inverse : ajouté par RH Formulaires d'entretiens de recrutement ( |
| salary_expected | Prévu Salaire espéré par le candidat | float | |
| salary_expected_extra | Bonus prévu Salaire espéré par le candidat, avantages supplémentaires | char | |
| salary_proposed | Proposé Salaire proposé par l'organisation | float | |
| salary_proposed_extra | Bonus proposé Salaire proposé par l'organisation, avantages supplémentaires | char | |
| sequence | Séquence | integer | |
| skill_ids | Compétence | many2many→ hr.skill | calculé, stocké ajouté par Recrutement - Gestion des compétences ( |
| source_id | Source | many2one | |
| stage_id | Étape | many2one | calculé, stocké |
| survey_id | Sondage | many2one | lecture seule related : ajouté par RH Formulaires d'entretiens de recrutement ( |
| talent_pool_count | Nombre de talents dans le vivier | integer | calculé |
| talent_pool_ids | Viviers de talents | many2many | |
| type_id | Diplôme | many2one | |
| user_email | E-mail de l'utilisateur | char | lecture seule related : |
| user_id | Recruteur | many2one | calculé, stocké |
| activity_calendar_event_id | Activité suivante de l'événement du calendrier | many2one | calculé hérité de mail.activity.mixin |
| activity_date_deadline | Date limite de l'activité à venir | date | lecture seulecalculé hérité de mail.activity.mixin |
| activity_exception_decoration | Indicateur d’exception d’activité Type d'activité d'exception enregistrée. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_exception_icon | Icône Icône pour indiquer une activité d'exception. | char | calculé hérité de mail.activity.mixin |
| activity_ids | Activités | one2many | inverse : hérité de mail.activity.mixin |
| activity_state | Statut de l'activité Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities. | selection | calculé Valeurs : hérité de mail.activity.mixin |
| activity_summary | Résumé de l'activité suivante | char | related : hérité de mail.activity.mixin |
| activity_type_icon | Icône de type d'activité | char | related : hérité de mail.activity.mixin |
| activity_type_id | Type d'activités à venir | many2one | related : hérité de mail.activity.mixin |
| activity_user_id | Utilisateur responsable | many2one | lecture seulecalculé hérité de mail.activity.mixin |
| duration_tracking | Durée du statut JSON qui associe les identifiants d'un champ many2one aux secondes passées | json | calculé hérité de mail.tracking.duration.mixin |
| email_cc | E-mail cc | char | hérité de mail.thread.cc |
| has_message | A un message | boolean | calculé hérité de mail.thread |
| is_blacklisted | Liste noire Si l'adresse e-mail est sur liste noire, le contact ne recevra plus d'e-mail marketing d'aucune liste. | boolean | calculé hérité de mail.thread.blacklist |
| is_rotting | Inactivité | boolean | calculé hérité de mail.tracking.duration.mixin |
| message_attachment_count | Nombre de pièces jointes | integer | calculé hérité de mail.thread |
| message_bounce | Rebond Le compteur du nombre de mails rebondis pour ce contact | integer | hérité de mail.thread.blacklist |
| message_follower_ids | Abonnés | one2many | inverse : hérité de mail.thread |
| message_has_error | Erreur d'envoi du message Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_has_error_counter | Nombre d'erreurs Nombre de messages avec des erreurs d'envoi | integer | calculé hérité de mail.thread |
| message_has_sms_error | Erreur d'envoi SMS Si coché, certains messages ont une erreur de livraison. | boolean | calculé hérité de mail.thread |
| message_ids | Messages | one2many | inverse : hérité de mail.thread |
| message_is_follower | Est un abonné | boolean | calculé hérité de mail.thread |
| message_main_attachment_id | Pièce jointe principale | many2one | hérité de mail.thread.main.attachment |
| message_needaction | Nécessite une action Si coché, de nouveaux messages demandent votre attention. | boolean | calculé hérité de mail.thread |
| message_needaction_counter | Nombre d'actions Nombre de messages nécessitant une action | integer | calculé hérité de mail.thread |
| message_partner_ids | Abonnés (Partenaires) | many2many | calculé hérité de mail.thread |
| my_activity_date_deadline | Échéance de mon activité | date | lecture seulecalculé hérité de mail.activity.mixin |
| phone_blacklisted | Le téléphone sur liste noire est fixe Indicates if a blacklisted sanitized phone number is a phone number. Helps distinguish which number is blacklisted when there is both a mobile and phone field in a model. | boolean | calculé hérité de mail.thread.phone |
| phone_mobile_search | Numéro de téléphone | char | hérité de mail.thread.phone |
| phone_sanitized | Numéro nettoyé Champ utilisé pour stocker le numéro de téléphone nettoyé. Aide à accélérer les recherches et comparaisons. | char | calculé, stocké hérité de mail.thread.phone |
| phone_sanitized_blacklisted | Téléphone sur liste noire Si le numéro de téléphone nettoyé est sur liste noire, le contact ne recevra plus de campagnes de mail, d'aucunes listes. | boolean | calculé hérité de mail.thread.phone |
| rating_ids | Évaluations | one2many | inverse : hérité de mail.thread |
| rotting_days | Jours d’inactivité Nombre de jours depuis la dernière mise à jour de cette ressource | integer | calculé hérité de mail.tracking.duration.mixin |
| website_message_ids | Messages du site web Historique de communication du site web | one2many | inverse : hérité de mail.thread |
| create_uid | Créé par | many2one | lecture seuleautomatique |
| display_name | Nom affiché | char | lecture seulecalculéautomatique |
| id | ID | integer | lecture seuleautomatique |
| write_date | Dernière mise à jour le | datetime | lecture seuleautomatique |
| write_uid | Dernière mise à jour par | many2one | lecture seuleautomatique |
Relations
Modèles liés depuis ce modèle
- calendar.event : meeting_ids
- hr.applicant : pool_applicant_id
- hr.applicant.category : categ_ids
- hr.applicant.refuse.reason : refuse_reason_id
- hr.applicant.skill : applicant_skill_ids, current_applicant_skill_ids
- hr.department : department_id
- hr.employee : employee_id
- hr.job : job_id
- hr.recruitment.degree : type_id
- hr.recruitment.stage : last_stage_id, stage_id
- hr.skill : matching_skill_ids, missing_skill_ids, skill_ids
- hr.talent.pool : talent_pool_ids
- ir.attachment : attachment_ids
- res.company : company_id
- res.partner : partner_id
- res.users : interviewer_ids, user_id
- survey.survey : survey_id
- survey.user_input : response_ids
- utm.campaign : campaign_id
- utm.medium : medium_id
- utm.source : source_id
Champs d'autres modèles qui pointent ici
- applicant.get.refuse.reason : applicant_ids, duplicate_applicant_ids
- applicant.send.mail : applicant_ids
- calendar.event : applicant_id
- hr.applicant : pool_applicant_id
- hr.applicant.skill : applicant_id
- hr.talent.pool : talent_ids
- job.add.applicants : applicant_ids
- survey.invite : applicant_id
- survey.user_input : applicant_id
- talent.pool.add.applicants : applicant_ids
Lire ce modèle par l'API
Exemple d'appel à l'API JSON-2 d'Odoo 19 : lecture des cinq premiers enregistrements avec des champs réels du modèle. Remplacez l'instance, la base et la clé API par les vôtres.
curl -X POST "https://votre-instance.odoo.com/json/2/hr.applicant/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: votre-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["partner_name","kanban_state","campaign_id","company_id","department_id"],"limit":5}'import requests
BASE_URL = "https://votre-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "votre-base"}
res = requests.post(
f"{BASE_URL}/hr.applicant/search_read",
headers=headers,
json={"domain": [], "fields": ["partner_name","kanban_state","campaign_id","company_id","department_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- L'accès à l'API externe est réservé à la formule Custom d'Odoo.
- XML-RPC et JSON-RPC seront retirés dans Odoo 22 (automne 2028) : préférez JSON-2.
- Les droits d'accès et règles d'enregistrement de l'utilisateur de la clé s'appliquent.
Citer cet outil
Vous rédigez un tutoriel, une documentation interne ou une réponse sur un forum ? Copiez ce lien pour renvoyer vos lecteurs vers la fiche à jour.
<a href="https://aidoo.ai/fr/outils/explorateur-modeles-odoo/hr-applicant">hr.applicant (Odoo 19.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 19 : ORM API
- Documentation Odoo 19 : API externe JSON-2
Données vérifiées le 23 septembre 2026 · Odoo 19.0 Community
Vous avez un projet Odoo ou souhaitez exploiter votre ERP avec l'IA ? Échangeons
Intégration, développement de modules, connexion de Claude ou ChatGPT à vos données : décrivez-nous votre contexte, nous vous répondons sous 24 heures ouvrées.