A powerful Python CLI tool that automates job discovery by searching multiple job boards, parsing job postings, and intelligently filtering them based on:
βοΈ Remote work preferences βοΈ Geographic regions (LATAM, Europe, USA) βοΈ Duplicates (smart deduplication) βοΈ Freshness and relevant ATS sources βοΈ Dynamic query strategies with role synonyms and progressive widening
Now with a beautiful web dashboard, smart duplicate detection, and senior-level query generation!
Mac/Linux:
git clone <repository-url>
cd work-automation
./start.shWindows:
git clone <repository-url>
cd work-automation
start.batThe startup script will:
- β Auto-install all dependencies
- π― Launch interactive job search wizard
- π Open web dashboard to view results
- π Show job statistics and analytics
uv run python main.py startThe wizard guides you through:
- Role Selection - What position you're looking for
- Region Targeting - LATAM, EUROPE, USA, or Global
- Country Specific - Target specific countries like Germany, Colombia, Brazil
- Platform Selection - Exclude platforms you don't want
- Remote Preference - Strict remote, hybrid, or any
Launch the beautiful web interface to browse jobs:
uv run python main.py dashboardFeatures:
- π Live Search & Filtering - Filter by company, location, remote type
- β Job Bookmarking - Save favorites with one click
- π Auto-Refresh - Real-time updates when new jobs are found
- π± Mobile Friendly - Works great on all devices
- π¨ Clean Interface - Easy to browse and interact with jobs
Dork Hunter uses a 5-phase pipeline to find relevant job opportunities:
- DISCOVER - Searches job boards using Google dorks with regional intelligence
- PARSE - Extracts structured data from job postings
- CLASSIFY - Determines remote work type (strict/hybrid/onsite)
- TAG - Identifies eligible regions (USA/EUROPE/LATAM/GLOBAL)
- FILTER - Applies user preferences and removes duplicates
- LATAM: Computrabajo, InfoJobs, Indeed LATAM sites
- EUROPE: Xing, StepStone, Indeed EU sites
- USA: Indeed US, Monster, ZipRecruiter, major ATS platforms
- Global: LinkedIn, Glassdoor, Greenhouse, Lever, Workable, Ashby
- LATAM: Colombia, Brazil, Mexico, Argentina, Chile
- EUROPE: Germany, Spain, UK, France, Netherlands
- USA: United States, Canada
uv run python main.py dedupe --input-file filtered_jobs.json- Multi-field matching: Company, title, location, remote type, regions
- 90% similarity threshold: Conservative to avoid false positives
- Detailed reporting: Shows which jobs were duplicates and why
uv run python main.py stats- Top companies hiring
- Remote work distribution
- Regional job availability
- Platform performance metrics
uv run python main.py export --format csv --output my_jobs- Export to CSV, JSON formats
- Integration-ready data structure
- Preserve all metadata and classifications
# Add new role synonyms without code changes
uv run python main.py add-role rust "rust developer" "systems engineer" "rust engineer"
# Test query generation for any role
uv run python main.py test-queries golang- Add roles dynamically without rewriting search logic
- Preview generated query variants
- Role synonym expansion and progressive widening
uv run python main.py platforms --region LATAM- Check platform availability
- Regional platform listings
- Performance monitoring
Use the startup scripts - they handle everything automatically!
# Clone the repository
git clone <repository-url>
cd work-automation
# Install with uv (recommended)
uv sync
# Or install with pip
pip install -r requirements.txtuv run python main.py start
# Select: Python Developer β LATAM β colombia, brazil β Exclude: linkedin β strictuv run python main.py search --role "Frontend Developer" --region EUROPE --country germany --country spain# 1. Search for jobs
uv run python main.py search --role "Software Engineer" --region USA
# 2. Process and filter
uv run python main.py process raw_jobs.json --remote strict
# 3. Remove duplicates
uv run python main.py dedupe --input-file filtered_jobs.json
# 4. Launch dashboard
uv run python main.py dashboardstart- π― Interactive wizard (recommended for beginners)search- π Discover job URLs with regional filteringprocess- βοΈ Parse, classify, and tag jobsdashboard- π Launch web interfacededupe- π Remove duplicate jobs intelligently
stats- π Show job search statisticsplatforms- π List available platforms by regionexport- π€ Export jobs to CSV/JSONhealth- π₯ Check platform availability
add-role- β Add role synonyms without code changestest-queries- π Preview generated query variants for any role
--region- Target specific regions (LATAM, EUROPE, USA)--country- Focus on specific countries--remote- Filter by remote work type (strict, hybrid, any)--exclude- Skip specific platforms
- Greenhouse (boards.greenhouse.io) - US-focused
- Lever (jobs.lever.co) - US-focused
- Workable (apply.workable.com) - Europe-focused
- Ashby (jobs.ashbyhq.com) - US-focused
- LinkedIn (linkedin.com/jobs) - Global
- Indeed (indeed.com + regional sites) - Global
- Glassdoor (glassdoor.com + regional sites) - Global
- LATAM: Computrabajo, InfoJobs, Catho, Vagas, OCC
- EUROPE: Xing, StepStone, Reed, Totaljobs, APEC
- USA: Monster, ZipRecruiter, Dice
- π― Regional Intelligence - Only searches relevant platforms per region
- π Smart Duplicate Detection - Multi-field similarity matching
- π Web Dashboard - Beautiful interface with live filtering
- β Job Bookmarking - Save and organize favorite opportunities
- π Auto-Refresh - Real-time job updates
- π Analytics - Comprehensive job market insights
- π Easy Setup - One-click startup scripts
- π§ Highly Configurable - Extensive filtering and customization options
- β‘ Fast Processing - Async parallel job parsing
- π§ͺ Well Tested - 40+ automated tests ensure reliability
- π± Mobile Friendly - Dashboard works on all devices
# Install test dependencies
uv add --group test pytest pytest-asyncio pytest-mock responses
# Run all tests
uv run pytest tests/ -v
# Run specific test categories
uv run pytest tests/test_platforms.py -vwork-automation/
βββ src/ # Core application modules
β βββ enhanced_search.py # Multi-platform search engine
β βββ dynamic_query_builder.py # Dynamic query strategy system
β βββ regional_platforms.py # Regional platform mapping
β βββ parser.py # Job parsing and classification
β βββ deduplicator.py # Smart duplicate detection
β βββ tagger.py # Region tagging logic
β βββ scorer.py # Job scoring and ranking
β βββ health_checker.py # Platform monitoring
β βββ rate_limiter.py # Request rate limiting
β βββ config.py # Configuration management
β βββ logger.py # Logging and statistics
βββ tests/ # Comprehensive test suite (40+ tests)
βββ templates/ # Web dashboard templates
βββ dashboard.py # Flask web application
βββ main.py # CLI interface
βββ start.sh / start.bat # Easy startup scripts
βββ demo_query_strategy.py # Dynamic query demonstration
βββ test_dynamic_queries.py # Query strategy testing
βββ DYNAMIC_QUERY_STRATEGY.md # Implementation documentation
βββ QUICKSTART.md # Beginner-friendly guide
βββ CHANGELOG.md # Version history
βββ pyproject.toml # Project configuration
typer- CLI framework with rich formattinghttpx- Async HTTP client for fast requestsbeautifulsoup4- HTML parsing and data extractionduckduckgo-search- Search engine integrationrich- Beautiful terminal formattingrapidfuzz- Fast fuzzy string matching for deduplicationflask- Web dashboard framework
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Run the test suite:
uv run pytest tests/ - Submit a pull request
MIT License - see LICENSE file for details.
Happy Job Hunting! π―β¨
Built with β€οΈ for developers seeking remote opportunities worldwide