Git Product home page Git Product logo

jobtracker's Introduction

JobTracker

AI powered tool to trace job application status based on emails.

Feature

  • Easy to customize and use, you can adjust the confidence interval threshold yourself
  • Up to 96% accuracy with 0 false positives

Getting Started

Video Tutorial (Click to play at YouTube)

How to use JobTracker

Prerequisites

  • Python 3.10
  • An OpenAI API key for ChatGPT access

Installation

  1. Clone the repository and install the required dependencies:

    git clone https://github.com/resumejob/JobTracker.git
    cd JobTracker
    # It is recommended to create a virtual environment for this project before install
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
  2. Configure your OpenAI API key: Set up your API Key

Usage

Export your emails in MBOX format and run the script with the following command:

python3 main.py -p <path_to_your_email_file.mbox> -o <output_filename.csv>

Replace <path_to_your_email_file.mbox> with the path to your MBOX file and <output_filename.csv> with your desired output file name.

Example Output

You would get

example_output

How It Works

  1. Access Data

    • Users export their emails in MBOX format from their email service provider.
  2. Clean Up and Collect Data

    • The system extracts basic information such as the sender, recipient, and body of the message.
    • It uses predefined keywords from config.KEYWORD to determine if an email is related to a job application.
    • If an email is related, the system collects the relevant information and forwards it to the ChatBot for analysis.
  3. Understand and Format Data

    • The ChatBot assesses whether the email pertains to a job application.
    • For job-related emails, it identifies the current status of the application and suggests subsequent steps.
    • A function call is utilized to neatly format the data.
  4. Export Data

    • The processed data is exported in CSV or Excel format for easy access and use by the job seeker.

Run Tests

Execute the following command to run tests:

python3 -m unittest discover -s tests

Roadmap

  • Distributing to PyPi
  • Support Local LLMs like Llama

Contributing

We welcome contributions from the community. If you would like to contribute, please fork the repository and submit a pull request.

Garen

  • Leveraged the ChatGPT/llama to process the email and a cost pipeline to estimate the price.
  • Merge email with same company and provide a clear view of the application timeline.
  • Increase model accuracy by adding a pre-process threashold.
  • Increase model speed by adding Hash to avoid the duplicate email.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Contact

For any queries, you can reach out to Project Maintainer.

jobtracker's People

Contributors

garenbbbb avatar mive667 avatar windsooon avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

jobtracker's Issues

add estimated cost

If the user using ChatGPT, display the estimated cost and let the user confirm before processing

Add checklist to next step

Just like interview-checklist, tell user a checklist when doing the next step. For example, the next step is "Send an email to abc@example to schedule a next-round HR call interview", the checklist may look like

  • Confirm interview details: Review the interview time, date, and platform to ensure you have the correct information and avoid any scheduling misunderstandings.
  • Review the job description: Understand the key requirements and responsibilities of the position to tailor your responses to the employer's needs.
  • Familiarize yourself with your resume and cover letter: Be prepared to discuss specific points or experiences in detail if asked by the interviewer.

You may use a fixed response text for different next step

Compute the hash for each email to minimize redundant tasks

After using this tool, users may use it again after a period of time. At this point, emails that have been previously computed should not be recalculated. Users can specify a previously exported CSV file, and any emails that exist within it will not be recomputed.

Add tutorial and example

  1. text/video example to tell the user how to export mail to mbox format/import CSV to the notion or excel.
  2. step by step video / text tutorial to walk through a basic whole example (with fake email content)

Improve classify accuracy

The prompt

"If this is a mail from a company I applied to or interviewed with before, use get_mail_info to get information"

It may incorrectly classify numerous emails that are unrelated to job applications. Try to improve accuracy by using another prompt or several prompts.(There are also other ways to improve it like to check if the sender ua se company domain in his/her email address

Support Llama

We would like to support Local LLMs like Llama, Have a look at

  1. ollama which also supports API call
  2. llama-cpp-python

Let the user use commend line args to choose LLM they want to use,

python3 main.py -l chatgpt

Merge state from the same company

In the current version, emails from the same company would be split into different rows, However, this is not what the user expects. It would be better to merge emails to the same row and only show the time in different states. For example

Company Name State
ABC - Applied: 7.12
- Next Round: 7.20
- Offer: 8.10

Generate emails in MBOX format

We will add a script to generate different kinds of emails and store them in MBOX format. We can use this mbox file to test the accuracy of the tool.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.