💼
Outils personnels
Projet personnel

Job Dev — Suivi de candidatures

Job Dev est mon outil personnel pour organiser une recherche d’emploi dans le développement web en Italie. Il rassemble les offres, les entreprises ciblées, les candidatures, les relances et les versions de CV dans un espace privé. Le projet part d’un besoin concret : garder une trace fiable de chaque démarche et savoir quelle action préparer ensuite.

Tableau de bord et suivi des candidatures

La vue d’ensemble affiche les offres enregistrées, les candidatures envoyées, les entretiens et les relances à effectuer. Chaque offre conserve son intitulé, l’entreprise, la localisation, le lien source et la description. Un parcours de statuts accompagne la candidature, de l’étude de l’annonce jusqu’à une proposition, un refus ou un retrait.

  • Dates de candidature et de prochaine relance, notes et retours des recruteurs.
  • Historique des modifications et conservation du CV réellement joint à une candidature.
  • Recherche textuelle, filtres par statut et priorité, tri par correspondance technique, date ou entreprise.

Correspondance technique et recherche d’offres

Un score pondéré compare les technologies de l’annonce aux compétences du profil. Les correspondances et les technologies à vérifier sont explicites ; les filtres peuvent combiner plusieurs technologies avec une logique « au moins une » ou « toutes ». Ce score aide à organiser la lecture des offres et ne représente pas une probabilité d’embauche.

Le connecteur Adzuna recherche des annonces en Italie à partir des mots-clés et de la localisation du profil. Il gère plusieurs requêtes, le dédoublonnage et le verrouillage des synchronisations concurrentes. Les nouvelles annonces n’écrasent pas le suivi existant. Cette recherche nécessite des clés API configurées côté serveur ; une commande Symfony permet aussi de lancer la synchronisation.

Entreprises ciblées et candidatures spontanées

Un répertoire conserve les entreprises, leur localisation, leur site ou page carrières et des notes. L’import Excel/CSV accepte jusqu’à 5 000 lignes dans un fichier de 5 Mo ; les doublons sont ignorés. Une entreprise enregistrée peut servir de point de départ à une candidature spontanée.

Profil de référence et CV PDF

Le profil regroupe les expériences, projets, compétences, formation et langues. Pour une offre, l’application construit une version figée du CV : les compétences pertinentes sont présentées en premier et les projets sont sélectionnés depuis ce profil. Le document est exporté en PDF sur une page A4 avec Dompdf. Les informations ne sont ni inventées ni réécrites par IA. Le PDF utilisé pour postuler peut être joint au dossier et reste conservé comme version fixe.

Architecture, sécurité et usage mobile

Le backend PHP 8.4+, Symfony 8.1, Doctrine et MySQL fournit des routes privées et une API sur le même domaine que le frontend React 19 et TypeScript, compilé avec Vite et Tailwind CSS 4. Les entrées sont validées et les mutations protégées par CSRF. L’accès repose sur un compte administrateur, des sessions sécurisées et une limitation des tentatives de connexion. Les CV sont stockés hors du dossier public et téléchargés par une route authentifiée.

L’interface responsive dispose d’une navigation tactile et d’un manifeste permettant l’installation sur téléphone. Le service worker affiche une page hors connexion sans mettre les données privées en cache. La consultation et l’enregistrement nécessitent Internet. Le déploiement utilise un VPS Linux, Apache, un pool PHP-FPM dédié et HTTPS.

Mon rôle et état du projet

J’ai conçu le modèle de données, les API, l’interface, l’import, le calcul de correspondance, les versions de CV et le déploiement. Des tests fonctionnels et des tests de services vérifient les parcours et le connecteur sur des réponses simulées. L’application est déployée et son accès reste privé. Elle n’envoie aucune candidature automatiquement et ne lit pas les emails ; la recherche Adzuna et sa planification dépendent de la configuration serveur.

Les captures présentent l’interface réelle avec des données de démonstration ; elles n’exposent aucune candidature personnelle.