Skip to content

Repository files navigation

AuraJobs πŸŒπŸš€

Autonomous Multi-Board Career Intelligence & Job Aggregation Engine

Python 3.10+ License: MIT Platforms: Cross-Platform PRs Welcome Status: Active

AuraJobs is a modern, modular, agentic career intelligence platform that federates job listings across major boards, remote networks, and direct applicant tracking systems (ATS). Built with smart taxonomy expansion, multi-region budget scheduling, intelligent deduplication, and visa-sponsorship detection, AuraJobs delivers a single clean, high-signal CSV of verified career opportunities.


⚑ Key Highlights

  • Federated Multi-Source Discovery: Aggregates from LinkedIn, Indeed, Google Jobs, and Glassdoor via resilient adapters.
  • Direct Company ATS Pipelines: Direct real-time endpoints for Ashby, Greenhouse, and Lever, fetching official open postings from top tech and AI pioneers (OpenAI, Anthropic, Stripe, Figma, Notion, Linear, etc.).
  • Specialized Remote Networks: Built-in parallel scrapers for RemoteOK, Remotive, and Himalayas.
  • Universal Role Taxonomy & Dynamic Expander:
    • 9 Deep Presets: Product Design (UI/UX), Data Science & AI/ML, Frontend Engineering, Software Engineering, Product Management, Growth & Marketing, Operations & Strategy, People & HR, and Sales & BizDev.
    • Dynamic Custom Mode: Handles any custom title with automated seniority parsing (Intern β†’ Principal/VP) and conflict exclusions.
  • Intelligent 3-Tier Geographic Rotation:
    • India: 12 key tech metros (Bengaluru, Delhi-NCR, Mumbai, Pune, Hyderabad, Kochi, etc.).
    • Middle East / GCC: 8 financial and tech hubs (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, etc.).
    • Global / Remote: Worldwide remote pipelines.
  • Smart Deduplication & Match Scoring: Merges identical postings across platforms using URL normalization, fuzzy title matching, and company tokens. Computes a 0–100 relevance score based on skill density and title seniority.
  • Visa Sponsorship & Relocation AI: Scans job descriptions for H1B, global relocation, work authorization requirements, and sponsorship flags.
  • Consolidated Output: Generates exactly one clean, structured CSV per search session (AURAJOBS_{Role}_{Region}_{Timestamp}.csv).

πŸ—οΈ Architecture Overview

                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                               β”‚   AuraJobs CLI / Prompt  β”‚
                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                            β”‚
                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                               β”‚       RoleExpander       β”‚
                               β”‚ (Seniority + Taxonomies) β”‚
                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                            β”‚
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚           BalancedScheduler           β”‚
                        β”‚    (India, Middle East, Global)       β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                            β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β”‚                        β”‚                        β”‚                        β”‚
β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
β”‚ Multi-Board β”‚          β”‚  Direct ATS β”‚          β”‚   RemoteOK  β”‚          β”‚  Himalayas  β”‚
β”‚  (LinkedIn, β”‚          β”‚   (Ashby,   β”‚          β”‚  & Remotive β”‚          β”‚  API Engine β”‚
β”‚   Indeed,   β”‚          β”‚ Greenhouse, β”‚          β”‚   (Remote)  β”‚          β”‚   (Remote)  β”‚
β”‚   Google)   β”‚          β”‚   Lever)    β”‚          β”‚             β”‚          β”‚             β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
       β”‚                        β”‚                        β”‚                        β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚ Normalizer & Cleaner  β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚ Role Filter & Scorer  β”‚
                    β”‚  (Match Score 0-100)  β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚  Deduplication Engine β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚ OutputExporter (.CSV) β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quickstart

Prerequisites

  • Python 3.10 or higher
  • Git

Installation

# Clone the repository
git clone https://github.com/lordpardonme/AuraJobs.git
cd AuraJobs

# Install dependencies
pip install -r requirements.txt

1-Click Launchers (Windows)

  • Interactive Launcher: Double-click run_aurajobs.bat
  • Balanced 3-Region Runner: Double-click run_aurajobs_balanced.bat

πŸ’» CLI Usage

Launch AuraJobs with interactive prompting:

python main.py

Or pass direct flags for automated/headless execution:

# Search for Senior Data Scientists across all regions in Express mode
python main.py --role "Data Scientist" --seniority Senior --geo All --mode Express --freshness 48

# Search for Product Designers in India in Deep Scan mode
python main.py --role "Product Designer" --geo India --mode Deep --freshness 72

# Search for remote Software Engineers globally
python main.py --role "Software Engineer" --geo Global --freshness 24 --non-interactive

CLI Arguments

Flag Options Default Description
--role Text (e.g. Product Manager) Product Designer Target job family
--seniority Any, Intern, Junior, Mid, Senior, Staff, Lead, Principal Any Seniority filter
--geo All, India, Middle East, Global All Regional scope
--freshness Hours (e.g. 24, 48, 72) 72 Max posting age
--mode Express (~1 min) or Deep (~10 mins) Express Execution intensity
--max-searches Integer Config default Hard cap on queries
--max-runtime Minutes Config default Hard cap on execution time
--non-interactive Flag False Run without prompts

πŸ“ Project Structure

AuraJobs/
β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ companies.yaml       # Curated companies with direct ATS pipelines
β”‚   β”œβ”€β”€ locations.yaml       # City & country mappings (India, ME, Global)
β”‚   β”œβ”€β”€ roles.yaml           # Deep role taxonomy & skill dictionaries
β”‚   β”œβ”€β”€ settings.yaml        # Rate limits, search caps, and runtime configs
β”‚   └── sources.yaml         # Adapter toggles & site endpoints
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ checkpoint.py        # Safe search state resumption
β”‚   β”œβ”€β”€ classifier.py        # Title and keyword filtering
β”‚   β”œβ”€β”€ deduper.py           # Cross-platform URL & fuzzy deduplication
β”‚   β”œβ”€β”€ expander.py          # Dynamic seniority & taxonomy expander
β”‚   β”œβ”€β”€ exporters.py         # Consolidated CSV output generator
β”‚   β”œβ”€β”€ normalizer.py        # Canonical 27-column data schema
β”‚   β”œβ”€β”€ prompt.py            # Terminal interactive UI launcher
β”‚   β”œβ”€β”€ scheduler.py         # Balanced multi-region budget scheduler
β”‚   β”œβ”€β”€ scorer.py            # 0-100 relevance and match scoring
β”‚   └── visa.py              # Visa sponsorship & relocation detector
β”œβ”€β”€ sources/
β”‚   β”œβ”€β”€ ats_adapter.py       # Ashby, Greenhouse & Lever direct API adapters
β”‚   β”œβ”€β”€ himalayas_adapter.py # Himalayas remote jobs adapter
β”‚   β”œβ”€β”€ multiboard_adapter.py# Multi-board scraper (LinkedIn, Indeed, Google)
β”‚   β”œβ”€β”€ remoteok_adapter.py  # RemoteOK API adapter
β”‚   └── remotive_adapter.py  # Remotive API adapter
β”œβ”€β”€ main.py                  # Primary entry point & CLI pipeline
β”œβ”€β”€ requirements.txt         # Package dependencies
β”œβ”€β”€ pyproject.toml           # Packaging metadata
└── run_aurajobs.bat         # 1-click Windows runner

βš™οΈ Configuration & Customization

AuraJobs is entirely data-driven via YAML configuration in config/:

  • Add New Roles & Skills: Edit config/roles.yaml to customize presets or add negative exclusions.
  • Add Direct Company ATS: Edit config/companies.yaml to track hiring directly from company boards.
  • Expand Target Locations: Edit config/locations.yaml to add new cities, countries, or regional groupings.

βš–οΈ Legal & Ethical Compliance

AuraJobs is designed to operate responsibly:

  • Direct APIs (Ashby, Greenhouse, Himalayas, RemoteOK, Remotive) are preferred wherever available.
  • Scrapers enforce rate-limiting (request_delay_seconds) to prevent server overload.
  • For more information on ethical usage, see LEGAL_AND_ETHICAL_COMPLIANCE_GUIDE.md.

🀝 Contributing

Contributions, bug reports, and feature requests are welcome!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“œ License

Distributed under the MIT License. See LICENSE for more information.


πŸ‘€ Author

About

Autonomous Multi-Board Career Intelligence and Job Aggregation Engine

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages