espin086 / GPT-Jobhunter

AI-powered job analysis and resume coaching tool using GPT. Analyzes job postings and provides personalized recommendations to job seekers for improving their resumes.
MIT License
63 stars 16 forks source link

Enhancement Request - Display GPT-based Job Descriptions as Pipeline RecommendationsEnhancement Request - Display GPT-based Job Descriptions as Pipeline Recommendations #79

Closed espin086 closed 11 months ago

espin086 commented 11 months ago

As a user of the job search feature on GitHub, I would like to suggest an enhancement to the user interface (UI) that would display GPT-based job descriptions as recommendations for running the pipeline of job searches.

Currently, the job search feature on GitHub provides users with a list of job postings based on their search criteria. While this is helpful, it would be even more beneficial if the UI could leverage GPT (Generative Pre-trained Transformer) technology to generate job descriptions that align with the user's search preferences.

By incorporating GPT-based job descriptions into the UI, users would have access to more comprehensive and tailored recommendations for their job search pipeline. This would enable them to make more informed decisions about which jobs to pursue and increase their chances of finding the right opportunities.

The proposed enhancement would involve integrating GPT models into the existing job search algorithm. These models would analyze the user's resume to generate job descriptions that closely match their requirements. The UI would then display these GPT-based job descriptions alongside the regular job postings, providing users with a broader range of options to consider.

Ideally, it would be two categories of job descriptions:

  1. Lateral moves
  2. Moving up in title

MUST RETURN JSON OBJECT

AtharvaJadhav7 commented 11 months ago

@espin086 I am interested in doing this, if you could guide me what I have understood is we need to add a feature that enables users to opt for GPT powered job description matching with their profiles So we might need to implement few UI Changes, ask users for their openai api key maybe, but not by default, and integrate this optional function in pipeline. Correct?

espin086 commented 11 months ago

@AtharvaJadhav7 - my recommendation is to do this in two fold.

  1. We would need to use the Open AI GPT embeddings module to take the resume.txt and convert it to a string of numbers. Here is a link for how to create GPT embeddings from text.

  2. We would need to create embeddings for all of the job descriptions in the database of jobs, making sure not to create embeddings if they have been created before (to save money on GPT API calls).

  3. Once we have the embeddings from resume.txt (from step 1) and embeddings for all job descriptions in the sqlite database, we would need to refactor the text_similarity.py which right now uses word2vec, we would remove the word2vec and do the cosine similarity between the resume embeddings and each job description embeddings.

NOTE: because we are doing several things with text we also need to create a class called TextAnalysis.py that takes in the text and does what we do in the extract_salary.py and creates an embedding from the text as well. We can expand on this new TextAnalysis.py class latter

You can take it one step at a time, and for example create a function that takes in text and outputs GPT embeddings and have that be the first method in the TextAnalysis.py class, then do steps 1-3 above, then finally add the code from extract_salary.py into the TextAnalysis.py class as well.

I hope this is clear

espin086 commented 11 months ago

Also for the OPEN_API_KEY, we can just add it to the .env-template as a placeholder, and update the installation docs to include a second key that needs to be added, right now we have the RAPID_API_KEY in the docs, we would just need to add to the docs the new OPEN_API_KEY in there so people know

espin086 commented 11 months ago

Also I feel like #69 is closely related to this and includes the updating of the UI to accept resumes

AtharvaJadhav7 commented 11 months ago

we can also use huggingface transformer library to use gpt model, rather that using api?