Skip to content

JobShell is a command-line tool that takes the hassle out of job searching for software engineers by scraping job postings from companies you care about. Whether you prefer the interactive CLI experience or automated Discord updates, JobShell keeps you ahead of the curve.

Notifications You must be signed in to change notification settings

angelplusultra/job-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JobShell: Because Job Hunting is Hell Enough

GitHub Release GitHub Repo stars Downloads Issues Pull Requests Crates.io Total Downloads Homebrew crates.io

Are you a software engineer desperately seeking employment but done with LinkedIn’s circus of virtue-signaling posts and irrelevant job alerts? Tired of getting emails that scream “Exciting opportunities in your network!” only to find out John liked Dave’s post about on-site synergy?

Wish you could manage your job search from the comfort of your terminal cave, where corporate nonsense can’t reach you? Well, my friend, welcome to JobShell—the no-bullshit solution to staying updated on opportunities at companies you actually care about.

Say goodbye to distractions and hello to streamlined job hunting.

Table of Contents


Key Features

  1. CLI Mode

    • Interactive Navigation: Run jobshell for a terminal-based menu. Scrape jobs from individual companies, view new postings, and manage your professional network from a single interface.
    • Network-Based Discovery: Scan for new roles exclusively at companies where you have existing connections or have "followed".
    • Bookmarks & Draft Messages: Bookmark interesting jobs for later review and draft personalized opening messages to your connections.
  2. Discord Integration Mode

    • Automated Updates via Webhook: Use jobshell --discord to run a continuous background scrape for all supported companies. It will periodically post new job updates to a specified Discord channel.
    • Scheduled Execution: Configure the scraper to run at regular intervals (every 1–12 hours) to stay informed with the latest openings.

Supported Companies

  • 1Password
  • Anduril
  • Blizzard
  • Chase
  • Cisco
  • Coinbase
  • CoStar Group
  • Discord
  • Experian
  • Disney
  • Gen
  • GitHub
  • GitLab
  • IBM
  • Meta
  • Netflix
  • Palantir
  • Reddit
  • Salesforce
  • Square
  • The Browser Company
  • Weedmaps

Prerequisites

Before running JobShell, ensure you have the following:

  1. Detectable Chrome Binary:
    JobShell uses browser automation to scrape job postings. You must have a working Chrome installation that can be detected by the underlying scraper.

    • If you're on macOS, ensure you have Google Chrome installed in the standard location.
    • On Linux, install Google Chrome via your package manager (e.g., apt, yum) or download from the official site.
    • On Windows, ensure Chrome is installed in a standard location or is available in your PATH.
  2. Desktop Environment (or Virtual Environment):
    Headless scraping may still require a display server. If running on a server, use Xvfb or similar tools to simulate a desktop environment.

  3. Optional Gemini API Key (For Experimental AI Features):
    If you plan on using the AI-driven message crafting feature, you’ll need a Gemini API key and a selected model type.


Installation

🏠 Install via Homebrew

brew tap angelplusultra/jobshell
brew install jobshell

📦 Install via Cargo

cargo install jobshell

📥 Install from Release (macOS and Windows only for now)

  1. Download a Binary from Releases:
    Head to the Releases page and download the latest binary that matches your operating system.

  2. Place the Binary in Your $PATH:
    Move the binary to a directory that's included in your system’s $PATH. On most UNIX-like systems, this could be:

    mv jobshell /usr/local/bin/
  3. Set Executable Permissions:
    Ensure the binary is executable:

    chmod +x /usr/local/bin/jobshell
  4. Bypass Apple Gatekeeper on macOS (If Necessary):
    On macOS, you might need to bypass Gatekeeper’s security checks if the binary isn’t signed:

    sudo xattr -r -d com.apple.quarantine /usr/local/bin/jobshell

    If prompted by Gatekeeper, you can also open System Preferences > Security & Privacy and choose to "Open Anyway" for the jobshell binary.

🛠️ Build from Source

  1. Install Rust:
    If not already installed on your system, Install Rust.

  2. Clone the Repo:
    Clone the repo to your system and cd into it

    git clone https://github.com/angelplusultra/job-shell && cd job-shell
    
  3. Create a Release Build:
    Compile the JobShell binary for your platform

    cargo build --release
    
  4. Add the Binary to Your $PATH:
    Move or copy the compiled binary to a directory on your $PATH.

    An example:

    mv ./target/release/jobshell /usr/bin/jobshell 
    

Verify Installation

jobshell --version

Setting Up AI Integration (Optional)

If you would like to leverage the experimental Gemini-based AI features, add the following lines to your shell configuration file (.zshrc or .bashrc):

export GEMINI_KEY={your-gemini-key}
export GEMINI_MODEL={model-type} # either "flash" or "pro"

Note:

  • GEMINI_KEY is your API key for Gemini’s service.
  • GEMINI_MODEL specifies the model type. Choose from "flash" or "pro" depending on your subscription or requirement.

After making these changes, run source ~/.bashrc or source ~/.zshrc to load the new environment variables.


Usage

⌨ CLI Mode

Basic Command:
Run JobShell in interactive CLI mode:

jobshell

What You Can Do in CLI Mode:

  • Scrape Individual Companies:
    Choose a company from the menu and scrape the latest postings.

  • Manage Connections: Create and manage your personal connections at the supported companies

  • Scan for New Network Jobs:
    If you’ve configured your connections, scan for new roles at companies where you have at least one connection.

  • View New Jobs Reports:
    Open generated new jobs HTML reports for clearer insights

  • Bookmark Jobs:
    Mark interesting opportunities for future reference.

  • Reach out to connections:
    Once you discover a job that interests you and have a connection at the company, JobShell lets you craft a personalized message and open your contact’s LinkedIn profile in one go. Your message, along with the job link, is automatically copied to your clipboard, ready to paste and send.

🤖 Discord Mode

jobshell --discord

When jobshell --discord is executed, a wizard will guide you through the setup process. This wizard collects the necessary information to configure the job-scraping process and ensures Discord notifications are set up correctly.

Wizard Steps

  1. Enter Discord Channel Webhook URL
    • You’ll be prompted to provide the webhook URL for the Discord channel where job notifications will be posted.
    • Example: https://discord.com/api/webhooks/someid/someid
      • How to Get a Discord Webhook URL
        1. Open your Discord server
        2. Navigate to the desired channel and click the gear icon to open the channel settings.
        3. Go to the Integrations tab.
        4. Select Webhooks and click Create Webhook.
        5. Customize the webhook settings, copy the Webhook URL, and paste it into the prompt.
  2. Set Hourly Interval
    • Enter the scraping interval in hours. This value must be an integer between 1 and 12.
    • Example Input: 6
  3. Choose Scraping Scope
    • Specify whether you want to scrape all supported companies or restrict scraping to:

      • Companies you have at least one connection with.
      • Companies you’ve chosen to “follow” via CLI mode.
    • Prompt Example:

      Would you like to scrape all supported companies? (yes/no)
      

Once all prompts all completed, JobShell begins scraping job postings at the specified hourly interval and new job postings will be sent to the provided Discord channel webhook.


Suggested Workflow

To get the most out of JobShell, follow this workflow:

  1. Set Up Your Preferences in CLI Mode
    • Start by running JobShell in CLI mode. Configure your connections and specify the companies you want to track for job opportunities.
  2. Deploy JobShell in Discord Mode
    • Once set up, switch to Discord mode to receive real-time job notifications directly in your designated Discord channel.
  3. Run JobShell on a VPS (Optional)
    • If you don’t have a machine to keep JobShell running continuously, consider using a Virtual Private Server (VPS) from providers like DigitalOcean, Linode, or Vultr.

That’s it! You’re all set to simplify your job search with JobShell.

About

JobShell is a command-line tool that takes the hassle out of job searching for software engineers by scraping job postings from companies you care about. Whether you prefer the interactive CLI experience or automated Discord updates, JobShell keeps you ahead of the curve.

Topics

Resources

Stars

Watchers

Forks