Outils

JobHunter

2026 loupix57 Actif
JobHunter

Systeme de scrapping intelligent d'offres d'emploi et d'interim (Indeed, HelloWork, LinkedIn, France Travail, Actual). API FastAPI, Celery, optimise Raspberry Pi.

Technologies

PythonFastAPICelery

Documentation du projet

JobHunter 🎯

Système de scrapping intelligent d'offres d'emploi et d'intérim, optimisé pour Raspberry Pi 3B+ avec Python 3.9.

🚀 Fonctionnalités

  • Scraping multi-sites : Indeed, HelloWork, LinkedIn, France Travail, Actual
  • Déduplication intelligente : Algorithme de similarité fuzzy
  • API REST complète : FastAPI avec documentation automatique
  • Tâches asynchrones : Celery pour le traitement en arrière-plan
  • Monitoring avancé : Métriques système et métier
  • Optimisé RPi : Configuration adaptée aux ressources limitées

🏗️ Architecture

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Frontend      │    │   API REST      │    │   Scrapers      │
│   (React)       │◄──►│   (FastAPI)     │◄──►│   (Python)      │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                                │
                                ▼
                       ┌─────────────────┐
                       │   PostgreSQL    │
                       │   + Redis       │
                       └─────────────────┘

📋 Prérequis

  • Système : Raspberry Pi OS (64-bit recommandé)
  • Python : 3.9 ou supérieur
  • RAM : 2GB minimum (4GB recommandé)
  • Stockage : 8GB minimum (16GB recommandé)
  • Services : PostgreSQL 12+, Redis 6+

🛠️ Installation rapide

Linux/macOS

Option 1: Avec Conda (recommandé)

# Cloner le projet
git clone <repository_url>
cd jobhunter

# Installation complète avec conda
./scripts/conda_install.sh

# Démarrer l'application
./scripts/conda_start.sh

Option 2: Avec venv

# Cloner le projet
git clone <repository_url>
cd jobhunter

# Installation avec venv
./scripts/install.sh

# Démarrer l'application
./scripts/start.sh

Windows

Option 1: Avec Conda (recommandé)

# Cloner le projet
git clone <repository_url>
cd jobhunter

# Installation complète avec conda
scripts\conda_install_windows.bat

# Démarrer l'application
scripts\conda_start_windows.bat

Option 2: Avec venv

# Cloner le projet
git clone <repository_url>
cd jobhunter

# Installation avec venv
scripts\install_windows.bat

# Démarrer l'application
scripts\start_windows.bat

Configuration

# Copier et éditer la configuration
cp env.example .env
# Éditer .env avec vos paramètres

L'API sera disponible sur http://localhost:8000

🚀 Démarrage rapide

Scraping d'offres

# Via l'API
curl -X POST "http://localhost:8000/api/v1/scraping/start" \
  -H "Content-Type: application/json" \
  -d '{
    "search_terms": ["développeur python", "data scientist"],
    "location": "Paris",
    "max_pages": 5
  }'

Recherche d'offres

# Lister les offres
curl "http://localhost:8000/api/v1/jobs?search=développeur&location=Paris&limit=10"

# Statistiques
curl "http://localhost:8000/api/v1/jobs/stats"

Monitoring

# Santé de l'API
curl "http://localhost:8000/api/v1/health/detailed"

# Métriques système
curl "http://localhost:8000/api/v1/monitoring/metrics"

📚 Documentation

🔧 Configuration

Variables d'environnement principales

# Base de données
DATABASE_URL=postgresql://jobhunter:password@localhost:5432/jobhunter
REDIS_URL=redis://localhost:6379/0

# API
API_HOST=0.0.0.0
API_PORT=8000
API_WORKERS=2

# Scraping
SCRAPING_DELAY_MIN=1
SCRAPING_DELAY_MAX=3
SCRAPING_CONCURRENT_REQUESTS=2

# Optimisations RPi
RPI_MODE=true
LOW_MEMORY_MODE=true
MAX_WORKERS=2

🎯 Sites supportés

Site Type Filtres
Indeed Emploi généraliste Localisation, contrat, expérience, salaire
HelloWork Emploi français Localisation, distance, contrat, expérience
LinkedIn Réseau professionnel Localisation, temporel, contrat, expérience
France Travail Service public Localisation, rayon, contrat, expérience
Actual Intérim Localisation, rayon, contrat, expérience

🔄 Tâches programmées

  • 6h : Scraping quotidien général
  • 8h : Scraping intérim
  • 2h : Nettoyage des données
  • 3h : Déduplication des offres

📊 Monitoring

Métriques système

  • CPU, mémoire, disque
  • Alertes automatiques
  • Logs structurés

Métriques métier

  • Nombre d'offres scrapées
  • Taux de déduplication
  • Qualité des données

🚨 Dépannage

Problèmes courants

  1. Erreur de connexion DB
    bash sudo systemctl status postgresql

  2. Mémoire insuffisante
    bash # Activer le mode basse mémoire echo "LOW_MEMORY_MODE=true" >> .env

  3. Scraping trop lent
    bash # Augmenter les délais echo "SCRAPING_DELAY_MIN=2" >> .env echo "SCRAPING_DELAY_MAX=5" >> .env

Logs

# Logs de l'application
tail -f logs/jobhunter.log

# Logs de scraping
tail -f logs/scraping.log

# Logs d'erreurs
tail -f logs/errors.log

🔧 Développement

Structure du projet

jobhunter/
├── app/
│   ├── api/           # API REST FastAPI
│   ├── core/          # Configuration et utilitaires
│   ├── models/        # Modèles de données
│   ├── scrapers/      # Scrapers pour chaque site
│   ├── services/      # Services métier
│   └── tasks/         # Tâches Celery
├── docs/              # Documentation
├── logs/              # Fichiers de logs
└── tests/             # Tests unitaires

Ajout d'un nouveau scraper

  1. Créer une classe héritant de BaseScraper
  2. Implémenter scrape_jobs() et _parse_job_offer()
  3. Ajouter au ScrapingManager

Tests

# Tests unitaires
pytest tests/

# Tests avec couverture
pytest --cov=app tests/

📈 Performance

Optimisations RPi

  • Pool de connexions limité
  • Workers Celery réduits
  • Délais de scraping adaptatifs
  • Monitoring des ressources

Recommandations

  • Utiliser un SSD pour de meilleures performances
  • Surveiller la température du RPi
  • Configurer des alertes de ressources

🤝 Contribution

  1. Fork le projet
  2. Créer une branche feature
  3. Commiter les changements
  4. Pousser vers la branche
  5. Ouvrir une Pull Request

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

🆘 Support

🎉 Remerciements


JobHunter - Scraping intelligent d'offres d'emploi pour Raspberry Pi 🎯

Code source

Projet open source hébergé sur GitHub.

  • 0 étoiles
  • 0 forks
  • Python
Voir le dépôt GitHub

Projets suggeres

Devis par e-mail

Recevoir votre devis

Indiquez votre e-mail : le PDF part tout de suite, sans engagement.

Récapitulatif

    Total HT
    TTC (TVA 20 %)

    Où envoyer votre devis ?

    Le PDF arrive à cette adresse en quelques secondes.

    Préciser votre besoin facultatif
    • Sans engagement
    • Réponse sous 24 h ouvrées
    • Devis PDF par e-mail

    Tarif HT selon les options choisies. Devis PDF envoyé par e-mail.