Skip to content

A backend API built with Java Spring Reactive and GraphQL to track job applicatoins, manager interviews and monitor job offers efficiently.

Notifications You must be signed in to change notification settings

januschung/job-winner

Repository files navigation

Job Winner

Background

I lost my job right before the holiday season in 2022. I need to look for a new job and apply for as many as I can while all the big techs are laying off talents.

To keep track of job applications:

  1. Use Google Spreadsheet (I am using it before this project). It is ugly, hard to maintain and easy to mess up the layout.
  2. Use online tool like huntr.co. But it can only track 40 jobs and I don't want to spend a dime for the premium service.
  3. Use pen and paper. It works but I can't copy and paste information such as the job url link and utilize it later.

None of the about is fun or totally fit my use case.

That's the reason for me to build something for myself, and potentially you, to get the job done (and to get a new job successfully!)

Benefit of Job Winner

With Job Winner, you can keep track of how many job applications you want, for free, without paying for a fee and have your personal data being sold.

Another feature of Job Winner is the Profile Page. With that one can store useful information a job application usually asks for (eg. LinkedIn url) in a single section. Besides that, the Profile Page provides a handy feature to automatically copy the field that you click on to your clipboard.

Features

Current function:

  1. An Index page to list all the job applications index
  2. Create new job application new
  3. Delete a job application
  4. Edit an existing job application edit
  5. A profile page to store personal information profile

Each job application has the following fields:

  1. Company Name
  2. Job Title
  3. Salary Range
  4. Applied Date
  5. Description
  6. Job Link
  7. Status

The personal page has the following fields:

  1. First Name
  2. Last Name
  3. Address Street 1
  4. Address Street 2
  5. Address City
  6. Address State
  7. Address Zip
  8. Linkedin url
  9. Github url
  10. Personal Website url

Components

Job Winner has two components

  1. Backend (this repo)
  2. UI

About this repo

This is the backend for Job Winner and here is the stack:

  1. Java 17
  2. Spring Boot 3.0.1
  3. Spring Reactive
  4. GraphQL
  5. Postgres DB

To build

Prereq: Java17

  1. Bring up the Postgres DB with docker-compose
docker-compose up -d
  1. Create the db schema with src/main/resources/schema.sql
    1. Visit http://localhost:8081/. Information can be found or modified here.
      1. User: postgres.
      2. Password: example.
      3. Click on Import and follow instructions to import file.
  2. Build the java app with Maven
mvn clean install
java -jar target/job-winner-0.0.1-SNAPSHOT.jar

Please follow the build instruction from the UI repo to bring up the UI.

Contributing

I would like your help and input.

I appreciate all suggestions or PRs which will help this project better. Feel free to fork the project and create a pull request with your idea.