/Jobalizer

Primary LanguagePythonMIT LicenseMIT

Jobalizer

Job Application Automation

Docker Pulls Build Status License

Table of Contents

Introduction

Jobalizer is a tool designed to automate the job application process. It helps you apply to multiple job postings efficiently by automating repetitive tasks, such as filling out application forms and tracking application statuses.

Features

  • Automated form filling
  • Job application tracking
  • Customizable templates for cover letters and resumes
  • Integration with popular job boards
  • Notifications for application status updates

Prerequisites

Before installing Jobalizer, ensure you have the following:

  • Operating System: Linux, macOS, or Windows 10/11
  • Docker: Version 20.10 or higher
  • Docker Compose: Version 1.29 or higher
  • Git: For cloning the repository

Installation

To install Jobalizer, follow these steps:

  1. Clone the repository:

    git clone https://github.com/yourusername/jobalizer.git
  2. Navigate to the project directory:

    cd jobalizer

Docker Setup

You can build and run Jobalizer using Docker to simplify the setup process and ensure consistency across environments.

Build and Install the Docker Image

  1. Set Up Environment Variables:

    Create a .env file in the project root directory and add your configuration settings:

    FLASK_ENV=development
    OPENAI_API_KEY=your_openai_api_key
    FLASK_SECRET_KEY=your_secret_key
    GENERATE_REQUIREMENTS=false

    Environment Variable Descriptions:

    • FLASK_ENV: Sets the Flask environment. Use development for development mode or production for production.
    • OPENAI_API_KEY: Your OpenAI API key for AI-powered features.
    • FLASK_SECRET_KEY: A secret key used by Flask for session management. Generate a strong, random key.
    • GENERATE_REQUIREMENTS: Set to true if you want the Docker build process to generate requirements.txt.
  2. Build the Docker Image:

    Use the provided build script to build the Docker image with all dependencies:

    chmod +x build_and_install.sh
    ./build_and_install.sh
    • The script will build the Docker image named jobalizer:latest.

    • It includes a retry mechanism and handles cleanup of unused Docker resources.

    • Use the -v flag for verbose output:

      ./build_and_install.sh -v

Running the Application

You can run the application using Docker Compose or directly with Docker.

Option 1: Using Docker Compose

  1. Start the Application:

    docker-compose up -d
    • The -d flag runs the containers in detached mode.
  2. Access the Application:

    Open your web browser and navigate to http://localhost:5000.

Option 2: Using Docker Run

  1. Run the Docker Container:

    docker run -p 5000:5000 \
      -e FLASK_APP=main \
      -e FLASK_ENV=${FLASK_ENV:-development} \
      -e OPENAI_API_KEY=${OPENAI_API_KEY} \
      -e FLASK_SECRET_KEY=${FLASK_SECRET_KEY} \
      --env-file .env \
      --restart unless-stopped \
      yourusername/jobalizer:latest
    • Ensure that your .env file contains all necessary variables.
  2. Access the Application:

    Visit http://localhost:5000 in your web browser.

Configuration

Add your credentials and configuration settings to the .env file located in the project directory. The .env file should contain the necessary environment variables for the application to run properly.

Example .env file:

FLASK_ENV=development
OPENAI_API_KEY=your_openai_api_key
FLASK_SECRET_KEY=your_secret_key
GENERATE_REQUIREMENTS=false

Usage

Once the application is running, you can:

  • Access the Web Interface:

    Navigate to http://localhost:5000 to use the Jobalizer web application.

  • Set Up Templates:

    Customize your cover letters and resumes using the application's template management.

  • Automate Applications:

    Configure job search criteria and let Jobalizer automate the application process.

  • Track Application Status:

    Monitor the status of your job applications directly from the dashboard.

Troubleshooting

If you encounter issues during installation or while running the application, consider the following:

  • Docker Build Errors:

    • Ensure Docker and Docker Compose are installed and running properly.
    • Check your network connection if you encounter DNS resolution errors during the build process.
    • Use the -v flag with the build script for detailed logs.
  • Application Not Accessible:

    • Confirm that the container is running using docker ps.
    • Ensure that port 5000 is not being used by another application.
    • Check the application logs with docker logs <container_id>.
  • Missing Dependencies:

    • Verify that all environment variables are correctly set in your .env file.
    • If requirements.txt is not up-to-date, set GENERATE_REQUIREMENTS=true and rebuild the image.

For more detailed troubleshooting steps, visit the Wiki.

Testing

To run the application's test suite:

  1. Enter the Docker Container:

    docker exec -it $(docker ps -q -f "ancestor=yourusername/jobalizer:latest") /bin/bash
  2. Run Tests:

    pytest tests/
    • Ensure that pytest is included in your requirements.txt or installed within the container.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the Repository:

    Click the "Fork" button on the repository's GitHub page.

  2. Clone Your Fork:

    git clone https://github.com/yourusername/jobalizer.git
  3. Create a Feature Branch:

    git checkout -b feature/YourFeature
  4. Commit Your Changes:

    git commit -m "Add your commit message here"
  5. Push to Your Fork:

    git push origin feature/YourFeature
  6. Create a Pull Request:

    Submit a pull request to the main repository with a description of your changes.

Contribution Guidelines

  • Follow the coding standards used in the project.
  • Write clear commit messages.
  • Include tests for new features or bug fixes.
  • Ensure your code passes existing tests.

For more details, see CONTRIBUTING.md.

License

This project is licensed under the MIT License. See the LICENSE file for details.


Note: If you encounter any issues during the installation or setup process, please refer to the troubleshooting section in the Wiki or open an issue on GitHub.


Security

Your security is important to us. Please consider the following:

  • API Keys and Secrets:

    • Do not commit your .env file or any credentials to version control.
    • Ensure that your .env file is listed in .gitignore.
  • Reporting Vulnerabilities:

Contact

For questions or support, please contact:


Additional Improvements

  • Replace Placeholder Information:

    • Ensure all placeholders like yourusername, yourdomain.com, and your_openai_api_key are replaced with actual information.
  • Add Screenshots:

    • Include screenshots of the application in the Usage section to provide a visual guide.
  • Include a Roadmap:

    • Add a section outlining future features and enhancements to keep users informed.
  • Add a FAQ Section:

    • Include answers to frequently asked questions to assist users.
  • Provide a Changelog:

    • Maintain a CHANGELOG.md file to document changes between versions.