Metadata-Version: 2.5
Name: job2apply
Version: 2.3.0
Summary: Veille d'offres d'emploi et preparation de candidatures adaptees
Project-URL: Repository, https://gitlab.com/NyxHemera/job2apply
Project-URL: Issues, https://gitlab.com/NyxHemera/job2apply/-/issues
Author-email: NyxAether <contact.nyxhemera@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: candidature,cli,emploi,france-travail,offres,veille
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: French
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business
Requires-Python: >=3.11
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: claude-agent-sdk
Requires-Dist: cyclopts>=4.25.2
Requires-Dist: jinja2>=3.1
Requires-Dist: markdown-it-py>=3.0
Requires-Dist: python-dotenv>=1.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.32
Requires-Dist: rich>=15.0.0
Requires-Dist: ruamel-yaml>=0.19.1
Requires-Dist: typst>=0.15.0
Provides-Extra: cv
Provides-Extra: google-jobs
Requires-Dist: playwright>=1.44; extra == 'google-jobs'
Description-Content-Type: text/markdown

# job2apply

Veille d'offres d'emploi et préparation de candidatures adaptées à chaque offre.

job2apply récupère chaque jour les offres de France Travail, Adzuna, LinkedIn et Google
Jobs, les trie selon votre profil, et vous aide à préparer pour chacune une lettre de
motivation et un CV adaptés. Rien ne part sans votre relecture : vous gardez la main sur
chaque candidature.

![Liste des offres retenues](https://gitlab.com/NyxHemera/job2apply/-/raw/main/docs/images/offres.png)

## Fonctionnalités

- **Veille multi-sources** : France Travail et Adzuna par leurs API officielles, LinkedIn
  et Google Jobs en option. Les doublons et les offres déjà vues sont écartés.
- **Tri selon votre profil** : chaque offre reçoit un score (mots-clés, termes bonus ou
  éliminatoires) ; seules celles qui passent votre seuil sont retenues.
- **Lettre et CV adaptés par l'IA** : un clic prépare le dossier d'une offre avec Claude
  (lettre, CV ajusté, message d'envoi), selon vos propres règles de rédaction.
- **Édition avec aperçu en direct** : le CV s'édite à gauche, son aperçu identique au PDF
  s'affiche à droite, et un clic sur l'aperçu ouvre le champ correspondant. Chaque
  proposition de l'IA s'accepte ou se refuse.
- **Votre mise en page** : importez votre propre gabarit Typst, ou gardez celui de
  l'application.
- **Suivi des candidatures** : à traiter, dossier préparé, candidatée, écartée ; chaque
  version de la lettre et du CV est conservée.
- **Tout reste chez vous** : les données vivent dans un dossier de votre machine ; seul ce
  qui est nécessaire à l'IA est envoyé, et l'interface le dit.

| Lettre de motivation | CV adapté à l'offre |
|---|---|
| ![Éditeur de lettre](https://gitlab.com/NyxHemera/job2apply/-/raw/main/docs/images/lettre.png) | ![Éditeur de CV avec aperçu](https://gitlab.com/NyxHemera/job2apply/-/raw/main/docs/images/cv-adapte.png) |

| Mon CV | Profil de recherche |
|---|---|
| ![CV de base](https://gitlab.com/NyxHemera/job2apply/-/raw/main/docs/images/mon-cv.png) | ![Réglages du profil](https://gitlab.com/NyxHemera/job2apply/-/raw/main/docs/images/profil.png) |

## Installation

Il faut [uv](https://docs.astral.sh/uv/) (qui fournit Python 3.11 ou plus), puis :

```bash
uv tool install job2apply
```

Pour la génération par l'IA, il faut aussi un compte Claude et être connecté à Claude
Code (`claude auth login`). Le reste (veille, tri, édition, PDF) fonctionne sans.

Pour essayer sans rien installer : `uvx job2apply init ~/recherche`.

## Démarrage

1. **Créez un espace de travail**, le dossier qui contiendra votre recherche :

   ```bash
   job2apply init ~/recherche
   cd ~/recherche
   ```

2. **Renseignez vos identifiants France Travail** dans le fichier `.env` de l'espace :
   compte gratuit sur https://francetravail.io, puis une application abonnée à l'API
   « Offres d'emploi v2 ».

3. **Ouvrez l'interface** pour régler votre profil (mots-clés, villes, sources) et créer
   votre CV dans **Mon CV** :

   ```bash
   job2apply ui
   ```

   Sans terminal, double-cliquez sur le lanceur **Ouvrir job2apply** de l'espace.

4. **Lancez la veille**, puis revenez dans l'interface pour parcourir les offres retenues
   et préparer vos candidatures :

   ```bash
   job2apply fetch
   ```

Avec Claude Code, la commande `/veille-emploi`, lancée depuis l'espace, enchaîne la veille,
un tri plus fin des offres et l'ouverture de l'interface.

L'envoi des candidatures reste manuel : l'onglet **Envoi** de chaque offre indique où
postuler et fournit les pièces à joindre. L'onglet **Relecture** fait relire le dossier
(CV et lettre) par un recruteur simulé avant l'envoi : un avis en Markdown (verdict, score,
notes par critère, points forts et faibles, améliorations), sans rien modifier.

## Documentation

- [Guide](https://gitlab.com/NyxHemera/job2apply/-/blob/main/docs/guide.md) : espaces de
  travail, profil, réglage de chaque source, interface, gabarit Typst personnel, commandes.
- [CONTRIBUTING.md](https://gitlab.com/NyxHemera/job2apply/-/blob/main/CONTRIBUTING.md) :
  organisation du code, ajout d'une source, tests.
- [Exemples](https://gitlab.com/NyxHemera/job2apply/-/blob/main/exemples/README.md) :
  données fictives pour essayer l'outil.

## Développement

```bash
git clone https://gitlab.com/NyxHemera/job2apply.git
cd job2apply
uv sync --extra google-jobs
uv run python scripts/verifier.py   # format, lint, types et tests, comme la CI
```
