Automate Your Job Hunt with AI
JobX is an AI-powered CLI tool that automates and personalizes job application emails while tracking all applications in Google Sheets.
Apply Smarter with JobX
JobX helps you apply for jobs faster by using AI to write emails and automatically track everything — directly from the terminal.
AI-Powered Emails
Generate personalized job application emails in seconds
CLI First Workflow
Apply, track, and manage jobs without leaving your terminal
Auto Tracking
Every application is logged automatically to Google Sheets
One-Command Submission
Submit job applications directly from the CLI
Spend less time applying — more time getting interviews.
Powerful Features
Everything you need to automate your job search and land your dream role
AI-Powered Email Generation
Generate personalized job application emails using OpenAI API with context-aware content
Google Sheets Integration
Track all your applications in real-time with automatic logging and analytics
Automated Workflow
Complete job application automation from discovery to submission with simple commands
Email Submission
Submit applications directly from CLI with SMTP configuration support
Templates & Profiles
Create reusable templates and profiles for different job application scenarios
Privacy First
All credentials stored locally, API keys only transmitted to respective services
Installation & Quick Start
Prerequisites
Installation Steps
npm install -g jobx
Install JobX globally
jobx init
Initialize project configuration
jobx test
Validate your configuration
jobx mail --generate
Start generating applications
Generated Configuration Files
jobx.config.json
Profile and contact information
jobx.credentials.json
API keys and authentication
jobx.apply.json
Active job application metadata
jobx.mail.md
Generated email output
jobx.context.txt
Additional context for AI generation
jobx.cv.pdf
Your CV (you provide this)
jobx.resume.pdf
Your resume (you provide this)
Project Structure
After running jobx init, your project will have the following structure
📁 Folder Structure
💡 Tip: Add jobx.credentials.json to your .gitignore file to keep your API keys secure.
jobx.config.json
RequiredYour profile, contact info, and skills
jobx.credentials.json
RequiredAPI keys for OpenAI, Google Sheets, and SMTP
⚠️ Keep secure - never commit to git
jobx.apply.json
RequiredCurrent job application details
jobx.mail.md
Generated email content (auto-created)
jobx.context.txt
RequiredAdditional context for AI email generation
jobx.cv.pdf
RequiredYour CV/curriculum vitae in PDF format (you must provide this)
jobx.resume.pdf
RequiredYour resume in PDF format (you must provide this)
Configuration Files
JSON files containing your profile, credentials, and application details. These are the core files that JobX uses to generate and send emails.
Document Files
You must provide your CV and resume in PDF format. JobX will attach the appropriate file based on the attachment_type field in your application.
Context File
Additional context in plain text format that helps the AI generate more personalized and relevant email content for your applications.
CLI Commands
All available commands and their options for full job automation control
| Init and Test | |||
| # | Command | Action | Description |
| 1 | jobx init | Initialize the project with default configuration | |
| 2 | jobx test | Run tests on all configuration files | |
| Generate and Submit | |||
| # | Command | Action | Description |
| 1 | jobx mail generate | Generate job application emails using AI | |
| 2 | jobx mail submit | Submit generated job application emails | |
| Reset | |||
| # | Command | Action | Description |
| 1 | jobx reset soft | Perform a soft reset (keep credentials) | |
| 2 | jobx reset hard | Perform a hard reset (reset everything) | |
| Sheet Commands | |||
| # | Command | Action | Description |
| 1 | jobx sheet find | Find all job applications with pagination | |
| 2 | jobx sheet find -i <id> | Find job application by specific ID | |
| 3 | jobx sheet find -p <page> -l <limit> | Find jobs with custom page and limit | |
| 4 | jobx sheet delete <id> | Delete job by submitted ID | |
| 5 | jobx sheet update <id> <field> <value> | Update submitted job field/value | |
| Miscellaneous | |||
| # | Command | Action | Description |
| 1 | jobx --version | Output the version number | |
| 2 | jobx --help | Display help for command | |
Sheet Find Command Options
The jobx sheet find command supports flexible pagination and search options:
-p, --pagePage number (default: 1)
-l, --limitRecords per page (default: 20)
-i, --idFind by specific ID
Examples:
Configuration
Set up JobX with your credentials and preferences for automated job applications
jobx.apply.json
{
"company": "Company Name",
"company_email": "hiring@company.com",
"company_website": "https://company.com",
"location": "Remote",
"subject": "Application for Position Title",
"position": "Position Title",
"experience": "2 years",
"education": "Bachelor's Degree",
"job_source": "https://jobboard.com/posting/12345",
"attachment_type": "resume"
}OpenAI API Setup
- 1. Visit OpenAI API Keys
- 2. Create an API key in your account
- 3. Add the key to
jobx.credentials.jsonasopen_ai_secret - 4. Ensure your account has credits
Google Sheets Setup
- 1. Go to Google Cloud Console and create a project
- 2. Enable Google Sheets API
- 3. Create a service account and download JSON key
- 4. Add
client_emailandprivate_keyto credentials - 5. Create a Google Sheet and share it with the service account email
Gmail SMTP Setup
- 1. Enable 2-factor authentication on your Gmail account
- 2. Generate an app-specific password
- 3. Add your email to
lsa_user - 4. Add the app password to
lsa_pass
Quick Start
- 1. Run
jobx initto create config files - 2. Fill in your credentials in
jobx.credentials.json - 3. Add your
jobx.context.txt,jobx.cv.pdf, andjobx.resume.pdffiles - 4. Update job details in
jobx.apply.json - 5. Run
jobx mail generateto create emails - 6. Review
jobx.apply.jsonandjobx.mail.md(AI may update fields) - 7. Run
jobx mail submitto send your application
⚠️ Important Note
When you run jobx mail generate, the AI may automatically update certain fields in jobx.apply.json based on the context from jobx.context.txt. Always review both jobx.apply.json and the generated email in jobx.mail.md before running jobx mail submit.