Ajoutez une section carrières complète à votre site Larapen. Publiez des offres d’emploi, recevez des candidatures avec CV et gérez l’ensemble du pipeline de recrutement depuis le panneau d’administration.

Offres d’emploi

Créez des annonces d’emploi détaillées avec descriptions, exigences, avantages, fourchettes salariales et types de contrat.

Pipeline de candidature

Recevez des candidatures avec CV, lettres de motivation et liens de profil. Suivez les candidats à travers un workflow de statut en 7 étapes.

Organisation par catégorie

Organisez les postes par département ou catégorie en utilisant le système unifié de catégories Larapen.

Système de notifications

Notifications automatiques par e-mail aux administrateurs lorsque de nouvelles candidatures sont soumises.

Cas d’utilisation

Page carrières d’entreprise

Vous gérez un site d’entreprise sur Larapen et avez besoin d’une section carrières professionnelle pour le recrutement.

  • Créez des catégories d’emploi par département (Ingénierie, Marketing, Design, etc.).
  • Publiez des postes ouverts avec descriptions, exigences, avantages et fourchettes salariales.
  • Définissez des dates limites de candidature ou laissez les postes ouverts jusqu’à ce qu’ils soient pourvus.
  • Recevez et examinez les candidatures directement depuis le panneau d’administration.

Agence avec plusieurs clients

Vous gérez plusieurs sites clients et avez besoin de fournir une fonctionnalité d’offres d’emploi sur chacun.

  • Installez l’add-on sur chaque instance Larapen.
  • Personnalisez les catégories et types de postes par client.
  • Activez le CAPTCHA pour éviter les candidatures spam.
  • Les administrateurs reçoivent des notifications par e-mail pour les nouvelles candidatures.

Startup avec équipe à distance

Vous construisez une équipe en télétravail et souhaitez mettre en avant vos postes ouverts.

  • Marquez les postes comme “Télétravail” pour une visibilité claire en front-end.
  • Utilisez les filtres de niveau d’expérience (Débutant, Intermédiaire, Senior, Lead, Direction).
  • Affichez les fourchettes salariales (optionnel, activable par poste).
  • Les candidats soumettent leur CV (PDF/DOC/DOCX) et leur profil LinkedIn avec leurs candidatures.

Prérequis

  • Larapen CMS v1.0.0 ou ultérieur
  • PHP 8.3+
  • MySQL 8.0+
Note : l’add-on Carrières est entièrement autonome : il n’a aucune dépendance avec d’autres add-ons. L’intégration CAPTCHA est optionnelle et nécessite qu’un fournisseur CAPTCHA soit configuré dans les paramètres du noyau.

Installation

Étape 1 : Téléverser l’add-on

Dans le panneau d’administration, allez dans Admin → Extensions → Add-ons et cliquez sur le bouton Télécharger un add-on. Sélectionnez le fichier ZIP de l’add-on : le système le décompresse automatiquement et l’add-on apparaît dans la liste des add-ons installés.

Étape 2 : Activer l’add-on

Repérez Portail Carrières dans la liste et cliquez sur Activer. Ses migrations, ses seeders (le cas échéant) et ses permissions sont mis en place automatiquement.

Étape 3 : Configurer

Naviguez vers Admin → Carrières → Paramètres pour configurer les catégories de postes, les champs du formulaire de candidature et les notifications recruteurs. Voir Configuration.

Code d’achat (clé de licence)

Portail Carrières est vendu comme un produit séparé, il possède donc son propre code d’achat (clé de licence), distinct du code d’achat de l’application principale et de celui de chaque autre add-on. Il vous est demandé lorsque vous activez Portail Carrières dans Panneau d’administration → Add-ons.

Nos produits sont vendus sur trois plateformes. La façon dont vous recevez un code d’achat dépend de l’endroit où vous avez acheté le produit.

Plateforme / Marketplace Comment obtenir le code d’achat Où le retrouver
Boutique bedigit.com
Achat sur le site (Shop)
Généré automatiquement lorsque la commande est payée, puis envoyé par e-mail, soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. Mon compte → Mes licences sur bedigit.com
Gumroad Créé dès que Gumroad nous notifie la vente, puis envoyé dans un e-mail séparé, en plus du reçu Gumroad. L’e-mail de licence, votre Bibliothèque Gumroad et Mon compte → Mes licences sur bedigit.com
Envato Market
CodeCanyon
Délivré par Envato, pas par nous, et jamais envoyé par e-mail : vous le téléchargez vous-même depuis votre compte Envato. Compte Envato → Downloads → License certificate & purchase code
Vérifiez votre dossier de spam. Pour les achats effectués sur la Boutique bedigit.com et sur Gumroad, le code d’achat est envoyé par e-mail. Les e-mails de licence automatiques sont très souvent filtrés : si le message ne se trouve pas dans votre boîte de réception, regardez dans votre dossier spam / courrier indésirable avant de contacter le support, et ajoutez notre adresse d’expédition à vos contacts ou à votre liste d’autorisation.

1. Boutique bedigit.com (achat sur le site)

  • Dès que le statut de paiement de la commande devient Payée, une clé de licence est générée automatiquement pour chaque article sous licence de la commande (une clé par unité achetée : acheter 3 unités donne 3 clés distinctes).
  • Elle est envoyée par e-mail à l’adresse utilisée pour la commande, soit dans un e-mail de licence dédié, soit dans l’e-mail de confirmation de commande. Vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
  • La clé reste disponible dans votre compte sous Mon compte → Mes licences. Les clés sont masquées dans la liste ; ouvrez la page de détail de la licence pour afficher et copier la clé complète, voir les domaines sur lesquels elle est activée, et désactiver un domaine pour libérer un emplacement d’activation.
  • La facture correspondante se trouve sous Mon compte → Mes commandes.

2. Gumroad

  • Un achat sur Gumroad produit deux e-mails distincts : le reçu Gumroad (envoyé par Gumroad, donnant accès aux fichiers) et un e-mail de clé de licence (envoyé par bedigit.com) qui contient votre code d’achat.
  • L’e-mail de clé de licence est généré dès que Gumroad nous notifie la vente, il arrive donc normalement quelques secondes après le paiement. Ici aussi, vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
  • Lorsque le produit Gumroad utilise la fonctionnalité de clés de licence propre à Gumroad, la même clé apparaît aussi dans votre reçu Gumroad et sous Bibliothèque → votre achat sur gumroad.com.
  • Utilisez la même adresse e-mail sur bedigit.com que sur Gumroad : vos clés sont alors liées automatiquement à votre compte et listées sous Mon compte → Mes licences, même si vous vous inscrivez après l’achat. Vous pouvez aussi ajouter une clé Gumroad manuellement depuis Mon compte → Mes licences Gumroad.

3. Envato Market (CodeCanyon)

  • Les codes d’achat Envato sont délivrés et fournis par Envato Market, jamais envoyés par e-mail par nous, il n’y a donc rien à chercher dans votre dossier de spam : vous récupérez le code depuis votre compte Envato.
  • Connectez-vous à votre compte Envato / CodeCanyon, ouvrez la page Downloads, trouvez l’article et choisissez License certificate & purchase code dans le menu déroulant Download. Le code est inscrit dans ce certificat.
  • Un code d’achat Envato ressemble à 12345678-90ab-cdef-1234-567890abcdef (8-4-4-4-12 caractères). Il ne change jamais, et le renouvellement du support de l’article n’en délivre pas de nouveau.
  • Article officiel Envato : Where Is My Purchase Code?
Vous avez perdu votre code d’achat ? Recherchez dans votre messagerie (dossier de spam inclus) “licence” ou “code d’achat”, puis consultez Mon compte → Mes licences sur bedigit.com pour les achats Boutique et Gumroad, ou Downloads → License certificate sur Envato. S’il est toujours introuvable, ouvrez un ticket sur notre Centre d’aide avec votre numéro de commande (Boutique), l’ID de vente Gumroad ou l’e-mail de l’acheteur (Gumroad), ou votre nom d’utilisateur Envato et le nom de l’article (Envato).

Configuration

L’add-on est livré avec un fichier config/careers.php fournissant des valeurs par défaut raisonnables. Celles-ci peuvent être modifiées depuis le panneau de paramètres admin à Admin → Carrières → Paramètres, qui stocke les valeurs dans la table settings (groupe careers).

Paramètre Description Par défaut
careers_per_page Nombre d’offres d’emploi affichées par page sur la liste front-end. 12
careers_allowed_resume_types Liste d’extensions de fichiers autorisées pour les CV, séparées par des virgules. pdf,doc,docx
careers_max_resume_size Taille maximale de fichier pour les CV en kilo-octets. 5120 (5 Mo)
careers_notify_admin_on_application Envoyer une notification par e-mail à tous les administrateurs lorsqu’une nouvelle candidature est reçue. true
careers_captcha_enabled Exiger une vérification CAPTCHA sur le formulaire de soumission de candidature. false

Valeurs par défaut du fichier de configuration

Admin : Postes

La page Postes (Carrières → Postes) gère vos annonces d’emploi.

Liste des postes

Un tableau paginé (15 par page) affichant tous les postes avec :

  • Titre : titre du poste traduisible
  • Catégorie : catégorie de carrière liée
  • Type de contrat (Temps plein, Temps partiel, Contrat, Freelance, Stage)
  • Statut (Brouillon / Publié)
  • Nombre de candidatures : nombre de candidatures reçues
  • Date de publication et date limite

Filtrable par catégorie et statut.

Création & Édition

Le formulaire de poste contient des champs traduisibles (par langue active) et des champs non traduisibles :

Champs traduisibles

Champ Type Requis
title Champ texte Oui (langue par défaut)
slug Champ texte (généré automatiquement à partir du titre) Non
description Éditeur WYSIWYG Oui (langue par défaut)
requirements Éditeur WYSIWYG Non
benefits Éditeur WYSIWYG Non
meta_title Champ texte Non
meta_description Zone de texte Non

Champs non traduisibles

Champ Type Notes
category_id Liste déroulante Optionnel : catégorie de carrière depuis la table unifiée des catégories
location Champ texte ex. : “Paris, France”
employment_type Liste déroulante Requis : full_time, part_time, contract, freelance, internship
experience_level Liste déroulante Requis : entry, mid, senior, lead, executive
department Champ texte Nom du département en texte libre
salary_min / salary_max Champs numériques Optionnel : fourchette salariale (max doit être ≥ min)
salary_currency Liste déroulante Depuis la table des devises actives
show_salary Case à cocher Activer/désactiver la visibilité du salaire en front-end
is_remote Case à cocher Marquer comme poste en télétravail
status Liste déroulante Requis : draft ou published
published_at Sélecteur de date Par défaut à la date actuelle
closes_at Sélecteur de date Optionnel : date limite de candidature (doit être dans le futur)
position Champ numérique Ordre de tri (auto-incrémenté)
Note : la suppression d’un poste supprime également toutes les candidatures associées et leurs fichiers CV téléversés.

Admin : Candidatures

La page Candidatures (Carrières → Candidatures) liste toutes les candidatures reçues.

Liste des candidatures

Un tableau paginé affichant :

  • Nom du candidat (prénom + nom)
  • E-mail
  • Poste visé
  • Badge de statut (codé par couleur)
  • Date de candidature

Filtrable par poste et statut.

Détail de la candidature

Cliquez sur une candidature pour voir ses détails complets :

  • Coordonnées : nom, e-mail, téléphone
  • Lettre de motivation : texte intégral
  • CV : lien de téléchargement (stocké de manière sécurisée sur le disque local dans careers/resumes/)
  • Profil LinkedIn : URL cliquable
  • URL du portfolio : URL cliquable
  • Notes internes : champ de notes réservé aux administrateurs
  • Adresse IP de la soumission
Revue automatique : lorsqu’un administrateur ouvre une candidature avec le statut “Nouveau”, celui-ci est automatiquement mis à jour en “En examen”.

Workflow des statuts

Les candidatures progressent à travers un pipeline en 7 étapes. L’administrateur peut mettre à jour le statut et ajouter des notes internes à chaque étape.

Statut Couleur Description
new Info (bleu) Récemment soumise, pas encore examinée
reviewing Avertissement (jaune) En cours d’examen initial
shortlisted Primaire (bleu) Le candidat a été présélectionné
interview Secondaire (gris) Entretien planifié ou en cours
offered Succès (vert) Offre proposée au candidat
hired Succès (vert) Le candidat a été embauché
rejected Danger (rouge) Candidature refusée

Gestion des CV

Les CV téléversés sont stockés sur le disque local (non accessible publiquement) dans careers/resumes/. Les administrateurs téléchargent les CV via une action de contrôleur authentifiée qui diffuse le fichier avec le nom d’origine.

  • Les types de fichiers autorisés sont configurables (par défaut : PDF, DOC, DOCX).
  • La taille maximale de fichier est configurable (par défaut : 5 Mo / 5120 Ko).
  • Les fichiers CV sont automatiquement supprimés lorsqu’une candidature ou son poste parent est supprimé.

Admin : Catégories

Les catégories de carrière (Carrières → Catégories) utilisent la table unifiée categories du noyau Larapen avec categorizable_type = 'career'.

Champs de catégorie

Champ Type Notes
name Texte traduisible Requis (langue par défaut)
slug Texte traduisible Généré automatiquement à partir du nom
description Zone de texte traduisible Optionnel
is_active Case à cocher Activer/désactiver la visibilité de la catégorie
position Nombre Ordre de tri
Important : la suppression d’une catégorie ne supprime pas les postes qu’elle contient. Les postes d’une catégorie supprimée deviennent non catégorisés.

Admin : Paramètres

La page des paramètres (Carrières → Paramètres) est organisée en trois sections :

Options d’affichage

  • Postes par page : nombre de postes sur la liste front-end (min : 4, max : 100).

Paramètres de candidature

  • Types de CV autorisés : liste d’extensions de fichiers acceptées, séparées par des virgules.
  • Taille max. du CV : taille maximale de téléversement en kilo-octets (min : 512 Ko, max : 50 Mo).
  • Notifications admin : activer/désactiver les alertes e-mail pour les nouvelles candidatures.

Protection CAPTCHA

  • Activer le CAPTCHA pour les candidatures : activer/désactiver le CAPTCHA sur le formulaire de candidature front-end.
  • Nécessite qu’un fournisseur CAPTCHA soit configuré dans les paramètres du noyau. Un avertissement est affiché si aucun fournisseur n’est configuré.

Front-end : liste des carrières

La page de liste des carrières affiche tous les postes ouverts (statut publié, avec une date limite future ou nulle).

Fonctionnalités de la page

  • Filtre par catégorie : barre latérale ou barre d’onglets listant toutes les catégories de carrière actives avec une option “Tous les départements”.
  • Cartes de poste : chaque carte affiche le titre du poste, le type de contrat, le niveau d’expérience, le lieu, le badge télétravail, la fourchette salariale (si affichée) et la date de publication.
  • Pagination : contrôlée par le paramètre careers_per_page.
  • SEO : le méta titre et la méta description de la page sont définis via le SeoService.

Filtrage par catégorie

Cliquer sur une catégorie navigue vers /{locale}/careers/category/{slug}, qui filtre les postes par cette catégorie. Le slug est résolu par rapport à la langue actuelle avec un repli sur la traduction anglaise.

Front-end : détail du poste

La page de détail du poste (/{locale}/careers/{slug}) affiche :

  • Titre du poste comme titre de la page
  • Métadonnées du poste : type de contrat, niveau d’expérience, lieu, badge télétravail, département
  • Fourchette salariale (si show_salary est activé pour ce poste)
  • Date de publication et date limite (ou “Ouvert jusqu’à pourvu”)
  • À propos du poste : description complète (contenu WYSIWYG)
  • Section Exigences (si fournie)
  • Section Ce que nous offrons / avantages (si fournie)
  • Formulaire de candidature (voir ci-dessous)
  • Postes similaires : jusqu’à 3 autres postes ouverts de la même catégorie
Gestion des 404 : si un poste n’est pas trouvé, n’est pas publié ou si sa date limite est passée, une réponse 404 est retournée.

Front-end : formulaire de candidature

Le formulaire de candidature est affiché sur la page de détail du poste et soumet via POST vers /{locale}/careers/{slug}/apply.

Champs du formulaire

Champ Type Validation
first_name Champ texte Requis, max 255 caractères
last_name Champ texte Requis, max 255 caractères
email Champ e-mail Requis, e-mail valide, max 255 caractères
phone Champ texte Optionnel, max 50 caractères
cover_letter Zone de texte Optionnel, max 10 000 caractères
resume Téléversement de fichier Requis, types autorisés selon les paramètres, taille max selon les paramètres
linkedin_url Champ URL Optionnel, URL valide, max 500 caractères
portfolio_url Champ URL Optionnel, URL valide, max 500 caractères

Après une soumission réussie, l’utilisateur est redirigé avec un message de succès : “Merci pour votre candidature ! Nous l’examinerons et reviendrons vers vous bientôt.”

Notifications par e-mail

Lorsque careers_notify_admin_on_application est activé, l’add-on envoie une notification par e-mail à tous les administrateurs (is_admin = true) chaque fois qu’une nouvelle candidature est soumise.

Contenu de la notification

  • Objet : “Nouvelle candidature pour {Titre du poste}”
  • Salutation : “Nouvelle candidature reçue”
  • Corps : “{Nom du candidat} a postulé pour le poste {Titre du poste}.”
  • Bouton d’action : lien vers la liste des candidatures admin
  • Pied de page : “Connectez-vous à votre panneau d’administration pour examiner la candidature.”

La notification est envoyée via le canal mail en utilisant la classe MailMessage intégrée de Laravel.

Intégration CAPTCHA

Le formulaire de candidature prend en charge la vérification CAPTCHA pour empêcher les soumissions spam.

Fonctionnement

  1. Activez le CAPTCHA dans Carrières → Paramètres.
  2. Assurez-vous qu’un fournisseur CAPTCHA (ex. reCAPTCHA, hCaptcha) est configuré dans Admin → Paramètres → Général.
  3. Le SubmitApplicationRequest ajoute automatiquement la règle de validation CAPTCHA lorsqu’elle est activée.
  4. Le nom du champ CAPTCHA est résolu dynamiquement depuis le CaptchaService du noyau.
Important : si le CAPTCHA est activé mais qu’aucun fournisseur n’est configuré, la page des paramètres affiche un avertissement avec un lien vers la page de configuration du fournisseur CAPTCHA.

Support multilingue

L’add-on est livré avec des traductions complètes en anglais et français.

Contenu traduisible

  • Postes : title, slug, description, requirements, benefits, meta_title, meta_description
  • Catégories : name, slug, description (via le système de catégories du noyau)

Chaînes d’interface statiques

Tout le texte statique utilise des clés de traduction préfixées par careers::careers., organisées en sections :

  • employment_types.* : Temps plein, Temps partiel, Contrat, Freelance, Stage
  • experience_levels.* : Débutant, Intermédiaire, Senior, Lead, Direction
  • application_statuses.* : Nouveau, En examen, Présélectionné, Entretien, Offre faite, Embauché, Refusé
  • admin.* : tous les libellés et messages du panneau d’administration
  • front.* : tous les libellés et messages du front-end
  • notifications.* : chaînes des notifications par e-mail

Mise à jour

Il y a deux façons de mettre cet add-on à jour : depuis le panneau d’administration (recommandé) ou en remplaçant les fichiers manuellement.

Méthode 1 : Téléversement depuis le panneau d’administration (recommandé)

  1. Téléchargez le dernier fichier .zip de cet add-on.
  2. Allez dans Panneau d’administration → Add-ons et cliquez sur le bouton Téléverser.
  3. Sélectionnez le fichier .zip ou glissez-le dans la zone de téléversement.
  4. Une demande de confirmation affiche le numéro de version actuel et le nouveau. Cliquez sur Remplacer pour continuer.
  5. Allez dans Panneau d’administration → Mise à jour du système (/admin/update) pour appliquer les migrations de base de données en attente.

Méthode 2 : Remplacement manuel des fichiers

Étape 1 : Remplacer les fichiers

Remplacez le répertoire de l’add-on par la nouvelle version.

Étape 2 : Exécuter les migrations

php artisan migrate

Les migrations en attente ne s’exécutent qu’une seule fois : la commande peut être relancée sans risque.

Étape 3 : Vider les caches

php artisan config:clear
php artisan route:clear
php artisan view:clear

Étape 4 : Vérifier

Visitez Admin → Carrières → Postes pour confirmer que l’add-on fonctionne correctement.

Sauvegarde d’abord : sauvegardez toujours votre base de données avant d’exécuter des migrations sur un système de production.

Désinstallation

Éteindre un add-on sans rien perdre, c’est le désactiver : allez dans Panneau d’administration → Add-ons, trouvez Careers Portal et cliquez sur Désactiver.

  • Ses routes, ses vues, ses entrées de menu d’administration et ses permissions cessent d’être enregistrées, et ses pages publiques ne répondent plus.
  • Ses tables de base de données et toutes les données qu’elles contiennent sont conservées, et ses fichiers restent dans extensions/addons/careers/. Rien n’est supprimé.
  • Le code d’achat enregistré lors de l’activation est conservé lui aussi : réactiver l’add-on ne le redemande pas.
  • La désactivation est refusée tant qu’un autre add-on actif dépend de celui-ci : désactivez d’abord cet add-on.

Cliquez sur Activer sur la même carte pour le rallumer. Les migrations en attente sont rejouées, les assets republiés, et l’add-on reprend exactement là où il s’était arrêté.

Suppression

La suppression est définitive et détruit les données de l’add-on. Le bouton Supprimer n’apparaît que sur un add-on désactivé : la suppression se fait donc toujours en deux temps :

  1. Désactivez Careers Portal (voir Désinstallation).
  2. Cliquez sur Supprimer sur sa carte et confirmez la demande.

Le panneau d’administration, en une seule passe :

  • exécute le hook de désinstallation de l’add-on, s’il en fournit un, tant que son code est encore sur le disque ;
  • révoque les permissions déclarées dans son addon.json ;
  • annule ses migrations, ce qui supprime ses tables de base de données et toutes les lignes qu’elles contiennent, et purge ses entrées de la table migrations, afin qu’une réinstallation ultérieure reparte de zéro ;
  • supprime ses assets publiés : public/addons/careers/, public/vendor/careers/ et storage/app/public/addons/careers/ ;
  • supprime le dossier de l’add-on extensions/addons/careers/ ;
  • supprime sa ligne dans la table addons (le code d’achat enregistré disparaît avec elle) et vide le cache de l’application.
Cette action est irréversible. Sauvegardez votre base de données avant de supprimer un add-on dont les données peuvent encore vous servir : le réinstaller plus tard crée des tables vides, pas votre ancien contenu.

La suppression est refusée, avec un message explicatif et avant toute destruction, lorsque l’add-on est encore actif, lorsqu’un autre add-on actif en dépend, ou lorsque l’utilisateur du serveur web (PHP) ne peut pas supprimer extensions/addons/careers/. Dans ce dernier cas, donnez à cet utilisateur le droit d’écriture sur le dossier et sur son parent, puis réessayez.

Supprimer le dossier en FTP ou en SSH n’est pas équivalent : les tables de l’add-on, ses entrées dans la table migrations et sa ligne addons restent en place, et sa carte reste dans la liste. Utilisez plutôt Supprimer dans le panneau d’administration.

Dépannage

Les postes ne s’affichent pas en front-end

  • Assurez-vous que le statut du poste est Publié (et non Brouillon).
  • Vérifiez que la Date limite de candidature (closes_at) n’est pas passée. Les postes expirés sont exclus de la liste front-end.
  • Vérifiez que le thème possède les fichiers de vue pages/careers/index.blade.php et pages/careers/show.blade.php.

Échec du téléversement du CV

  • Vérifiez les types de fichiers autorisés dans Carrières → Paramètres (par défaut : pdf, doc, docx).
  • Vérifiez que la taille du fichier ne dépasse pas la limite configurée careers_max_resume_size.
  • Assurez-vous que vos directives PHP upload_max_filesize et post_max_size dans php.ini sont suffisamment grandes.
  • Vérifiez que le répertoire storage/app/careers/resumes/ est accessible en écriture.

L’admin ne reçoit pas les notifications par e-mail

  • Assurez-vous que careers_notify_admin_on_application est activé dans les paramètres.
  • Vérifiez votre configuration de messagerie (MAIL_MAILER, MAIL_HOST, etc.) dans .env.
  • Vérifiez que l’utilisateur admin a is_admin = true dans la base de données.
  • Consultez storage/logs/laravel.log pour les erreurs de livraison de courrier.

Le CAPTCHA n’apparaît pas sur le formulaire de candidature

  • Assurez-vous que le CAPTCHA est activé dans Carrières → Paramètres.
  • Un fournisseur CAPTCHA doit être configuré dans les paramètres du noyau (Admin → Paramètres → Général).
  • Le modèle de formulaire de candidature du thème doit inclure le composant CAPTCHA (vérifiez les blocs @if dans le template Blade).

Le filtrage par catégorie retourne une erreur 404

  • Vérifiez que le slug de la catégorie existe et correspond au paramètre de l’URL.
  • Le slug est résolu par rapport à la langue actuelle d’abord, puis se replie sur l’anglais. Si aucune correspondance n’est trouvée, une erreur 404 est retournée.
  • Assurez-vous que la catégorie est marquée comme active.

Le formulaire de candidature ne se soumet pas

  • Vérifiez que le poste est toujours ouvert (publié et date limite non passée). Soumettre une candidature à un poste fermé retourne une erreur 404.
  • Assurez-vous que le jeton CSRF est inclus dans le formulaire (directive @csrf).
  • Examinez les erreurs de validation : le champ CV est requis et doit correspondre aux types et à la taille autorisés.

Les champs traduisibles ne s’enregistrent pas

  • Assurez-vous que le formulaire soumet les champs traduisibles sous forme de tableaux imbriqués (ex. title[en], title[fr]).
  • Les champs de la langue par défaut sont requis ; les autres langues sont optionnelles.
  • Vérifiez que le package spatie/laravel-translatable est installé et configuré.

Portail Carrières v1.0.0 : fait partie de la plateforme CMS Larapen.

© BeDigit. Tous droits réservés.

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Besoin d'aide ? Créez un ticket de support

Créer un Ticket

Guides des Modules

avr. 07, 2026