4 stable releases
new 1.0.5 | Dec 14, 2024 |
---|---|
1.0.3 | Dec 13, 2024 |
#410 in Command line utilities
119 downloads per month
650KB
3.5K
SLoC
JobShell: Because Job Hunting is Hell Enough
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
- Supported Companies
- Prerequisites
- Installation
- Setting Up AI Integration (Optional)
- Usage
- Suggested Workflow
Key Features
-
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.
- AI Integration (Experimental): Optional integration with Gemini AI for generating tailored outreach messages.
- Interactive Navigation: Run
-
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.
- Automated Updates via Webhook: Use
Supported Companies
- 1Password
- Anduril
- Blizzard
- Chase
- Cisco
- Coinbase
- CoStar Group
- Discord
- Experian
- Disney
- Gen
- GitHub
- GitLab
- IBM
- Meta
- Netflix
- Palantir
- Salesforce
- Square
- The Browser Company
- Weedmaps
Prerequisites
Before running JobShell, ensure you have the following:
-
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.
-
Desktop Environment (or Virtual Environment):
Headless scraping may still require a display server. If running on a server, useXvfb
or similar tools to simulate a desktop environment. -
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)
-
Download a Binary from Releases:
Head to the Releases page and download the latest binary that matches your operating system. -
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/
-
Set Executable Permissions:
Ensure the binary is executable:chmod +x /usr/local/bin/jobshell
-
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
-
Install Rust:
If not already installed on your system, Install Rust. -
Clone the Repo:
Clone the repo to your system andcd
into itgit clone https://github.com/angelplusultra/job-shell && cd job-shell
-
Create a Release Build:
Compile the JobShell binary for your platformcargo build --release
-
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
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
- 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
- Open your Discord server
- Navigate to the desired channel and click the gear icon to open the channel settings.
- Go to the Integrations tab.
- Select Webhooks and click Create Webhook.
- Customize the webhook settings, copy the Webhook URL, and paste it into the prompt.
- How to Get a Discord Webhook URL
- Set Hourly Interval
- Enter the scraping interval in hours. This value must be an integer between 1 and 12.
- Example Input:
6
- 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:
- 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.
- Deploy JobShell in Discord Mode
- Once set up, switch to Discord mode to receive real-time job notifications directly in your designated Discord channel.
- 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.
Dependencies
~21–41MB
~625K SLoC