Skip straight to the bottom if you only want to know how to save hours of work in your job searching process just by using two simple python scripts + GPT
As a former startup founder, lately I've been facing the complex challenge of transitioning back into the traditional job market. With no experience in the job searching game for the last 10+ years, I had no idea what I was getting myself into
I still have a lot to go, but one of the most annoying and time-consuming parts of the process of applying to jobs so far, has been just even trying to find the right jobs to apply to
Every jobs site has hundreds or thousands of jobs, they are usually hard to filter. Then when you get the results, you still have to spend a lot of time reading and scrolling through the listings, figuring out which ones are good matches and which ones are not
Even here in HN, every "Ask HN: Who is hiring?" post has hundreds of listings (the February one has 300+ job posts). Reading through them all can take hours, which is super draining. By the time you are done reading, you are almost out of energy, and you haven't even started applying yet
I just wished I had a database where I could do something like:
SELECT summary, why_is_a_good_fit, how to apply, link FROM hn_jobs
WHERE remote AND use_ruby AND good_fit
So, I built it. Well, I wrote a couple of python scripts that:
* scrape an "Ask HN: Who is hiring?" post
* processes all the listings with GPT
* saves all the data in a sqlite3 db
It takes a few minutes to run the whole thing and populate the db (for each listing, a prompt is sent to GPT with questions, a resume and the job listing, GPT returns a json object with answers that get stored in the db)
But after it's done, I can get the absolute best matches for my own resume in seconds
With each result, I get the information about the listing, as well as why it is a good fit for me and instructions on how to apply (including link and or email address)
So far I've probably put more time into this than I've saved (surely there's an XKCD comic about this), but hopefully this hasn't been in vain and my loss can be your gain. That's why below I'm sharing links to the scripts. Please feel free to check them out, use them and modify them to fit your own needs
There is a lot of space for improvement, especially building and tweaking the prompt, which is one of the most challenging things to iterate on. If you try the scripts, make sure to modify the included sample resume, the questions asked and checking that the sample json output structure matches your questions
-> Would love to hear your feedback, suggestions, and also stories about your recent job searching experience in tech!
Thank you
Links to scripts:
* get_ask_hn_jobs.py: gets job listings from HN (make sure to adjust the base url of the "Ask HN: Who is hiring?" page to scrape) - run this first to populate your local db - https://gist.github.com/nicobrenner/88cc2aaf4fde7cbb119c6ca67fd50bc2
* ask_gpt_job_listings.py: enriches jobs listings from db using GPT (you need to add your own OpenAI API key, make sure to modify these variables: resume, roles, ideal_job_questions, prompt, and also check that the sample structure of output_format matches your prompt/questions) - run this after running get_ask_hn_jobs.py - https://gist.github.com/nicobrenner/dc1e6968dcd396c6367a63ac4c61f5d3
* filtered_job_listings.sql: query for sqlite3 db that gets best job listing matches - you should tweak the query to filter according to your preferences - https://gist.github.com/nicobrenner/f8da15c99c45c229c03c89dae1ed94d6