Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JobScrapper

Agrégateur d'offres d'emploi — application desktop multi-sources

Release Platform Electron Python License

JobScrapper centralise toutes vos recherches d'emploi en un seul endroit. Il scrape simultanément 14 plateformes françaises, déduplique les résultats et vous permet de gérer votre pipeline de candidatures directement depuis l'interface.


Fonctionnalités

  • Multi-sources — scrape 14 job boards en parallèle depuis une seule recherche
  • Résultats en temps réel — progression par site affichée via Server-Sent Events
  • Gestion des candidatures — statuts Nouveau / Vu / Intéressé / Rejeté
  • Corbeille — archivez les offres non pertinentes, restaurez-les si besoin
  • Filtres dynamiques — par site, par statut, recherche textuelle instantanée
  • Export CSV — exportez vos offres filtrées (compatible Excel UTF-8)
  • Déduplication intelligente — hash + matching flou (85% seuil) pour éviter les doublons
  • Mode sombre / clair — thème persistant entre les sessions
  • 100% local — aucune donnée envoyée vers un serveur tiers, base SQLite locale
  • Anti-détection — curl-cffi TLS fingerprinting + Playwright Stealth pour les sites protégés

Captures d'écran

Recherche

Recherche

Saisissez vos mots-clés, localisation, rayon et sélectionnez les sites à scraper.

Résultats en direct

Progression

La progression s'affiche en direct pendant le scraping, site par site.

Gestion des offres

Résultats

Cards expansibles avec description, actions directes et sidebar de navigation par source.

Mode clair

Thème clair


Sites supportés

Site Méthode Notes
APEC HTTP Résolution géographique via autocomplete
LinkedIn Playwright Scraping headless
Indeed curl-cffi TLS fingerprinting
Glassdoor Playwright Interception payload RSC
Welcome to the Jungle Playwright Interception Algolia
France Travail HTTP API officielle
Cadremploi HTTP
Cadres Online HTTP
HelloWork HTTP
Malt HTTP Freelance / missions
Monster HTTP
Adzuna HTTP
Jobijoba HTTP
Wizbii HTTP

Téléchargement

Rendez-vous sur la page Releases pour télécharger la dernière version.

Plateforme Fichier
macOS (Apple Silicon / Intel) JobScrapper-x.x.x-arm64.dmg
Windows 11 JobScrapper Setup x.x.x.exe

macOS — première ouverture

macOS peut afficher « l'application est endommagée » car elle n'est pas signée avec un certificat Apple. Pour l'ouvrir :

xattr -cr /Applications/JobScrapper.app

Puis double-cliquez normalement.


Développement

Prérequis

Installation

git clone https://github.com/Bono2007/JobScrapper.git
cd JobScrapper

# Dépendances Node
npm install

# Dépendances Python
cd python
uv sync
uv run playwright install chromium
cd ..

Lancer en mode dev

npm run dev

Cela lance esbuild en mode watch et Electron simultanément.

Lancer le backend seul (pour tester les scrapers)

cd python
uv run uvicorn src.api:app --reload --port 8000

Puis ouvrez http://localhost:8000/docs pour l'interface Swagger.


Architecture

JobScrapper/
├── src/
│   ├── main/           # Electron main process
│   │   ├── index.js    # BrowserWindow, cycle de vie app
│   │   └── python.js   # Spawn du backend Python
│   ├── renderer/       # Interface utilisateur
│   │   ├── index.html
│   │   ├── style.css   # Thèmes dark/light (CSS variables)
│   │   └── tabs/       # search.js, results.js
│   └── preload.js      # Bridge IPC sécurisé
├── python/
│   └── src/
│       ├── api.py           # FastAPI endpoints
│       ├── scrapers/        # 14 scrapers
│       ├── models/          # JobOffer, SearchQuery, JobStatus
│       └── db/              # Repository SQLite
├── dist/                    # Bundle JS généré (gitignore)
├── resources/
│   └── python-dist/         # Binaires PyInstaller (gitignore)
└── .github/workflows/
    └── release.yml          # CI/CD Mac + Windows

Flux de données :

UI (Electron Renderer)
    ↕ HTTP (localhost)
FastAPI Backend (Python subprocess)
    ↕ Playwright / curl-cffi / httpx
14 Job Boards
    ↕
SQLite (~/Library/Application Support/JobScrapper)

Stack technique

Composant Technologie
Desktop Electron 28
Bundler JS esbuild
Packaging electron-builder
Backend API FastAPI + Uvicorn
HTTP scraping curl-cffi, httpx
Browser scraping Playwright + Stealth
HTML parsing BeautifulSoup4, selectolax
Base de données SQLite (stdlib)
Déduplication thefuzz
Binaire Python PyInstaller
CI/CD GitHub Actions

Licence

MIT — voir LICENSE

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages