/RATS

(Reverse) . Applicant . Tracking . Systems . Full Stack Python + React application that was deployed to GCP.

Primary LanguageJavaScript

RATS

(Reverse) . Applicant . Tracking . Systems

Introduction

Recruiters use Applicant tracking systems(ATS), to filter their applicants before even looking.

  • What if I had the capacity to see what they see?
  • What if I could predict what the ATS would predict?

Then it would be a bit more of an even playing field. No longer of a game of cat and mouse. RATS solves that.

Armed with data, only then can you make decisions that pierce through the fog of the future. This would empower people to make projects with technologies that are rising in demand. No longer of a game of cat and mouse. RATS solves that.

Objectives

“A goal without a plan is just a wish.”Antoine de Saint-Exupéry_. So here are the project milestones.

Tech Stack : Backend

  • 📦 Docker: Used as the container tool for the services.
  • 💾 Postgres: Acts as the database, store the relational data.
  • ⚗️ Alembic: Used as a database migration tool to link versions.
  • 🗺️ SQLAlchemy: Map the database tables in objects. (ORM)
  • 🍶 Flask Used to serve the GraphQL.
  • 📁 GraphQL: GraphQL is a declarative data fetching endpoint and query language for APIs -->

Tech Stack : Frontend

Phase 0 Start

  • Pull data from Job boards.
  • Create Hello World react page.
  • Create Alembic config and perform init migrations.
  • INSERT dummy job data into a Postgres DB.
  • Create the API endpoint for the frontend.
  • Hook GraphQL + Apollo + React together in basic Hello world.

Phase 1 : K'Nex(t) (Second phase. Primarily focused on base usability of the frontend)

  • Create Menu section to React app.
  • Render graph in REACT.
  • Update REACT frontend to host colours for graphs in state.
  • Update database tables to reflect latest state.
  • Update backend to fix Indeed Changes.

Phase 2 : Lego (Putting the building blocks of infrasture together)

  • Dockerise the frontend and backend.
  • Create plan for cloud provider of choice (not you Azure).
  • Configure DNS, add support for HTTPS, create instance, create docker container repo.
  • Fix small backend bug.
  • Deploy!

Phase 3 : Enhance!

  • Implement DB support for Cloud instances.
  • Implement GraphQL Frontend Support.
  • Update backend to handle inserts.
  • Add search dropdown type.
  • Add support for different locations, defaulted to DUBLIN, IRELAND right now.
  • Add support for returning origin of data.
  • Create ListView of companies and jobs posted.
  • Improve backend performance to be less than 10 seconds per request.
  • Implement loading icon when waiting for request to finish.
  • Return failure error message on exceptions

Architecture

GCP Concept :

  • Container Registry to hold docker containers.

  • Cloud DNS that holds the DNS for the site.

  • DNS / SSL bought on namecheap then transfered to GCP.

  • Cloud compute instance running postgres (Save cost don't have an RDS for a real prod of course you would)

    • FLASK + GraphQL running as a container.
    • React Running as a container
  • Why monorepo, honestly, for the sake of showing off this project, I thought it best to keep everything together. If this was a production system, I'd have split them up.