Automating My Resume: GitHub Actions + AWS S3

Bring the CI/CD to help you with your job hunt. Keep your resume updated using the power of GitHub Action & AWS S3.

Have you ever tired keeping your resume updated and chickened out due to following reasons :

  • Shit! its in .docx format I should convert into ATS readable format probably
  • Which one was it resume.docx, resume_final.docx or resume_updated.docx or something else
  • I’m stuck in this job for so long that I have forgotten what I have achieved few years back :/
  • Ahhh !!! my resume is saved in my personal laptop and can’t I update it in my office laptop as a part of my retaliation.

Stop !!! We are going to create a system which keeps a single copy, which you can update anytime, anywhere, ATS friendly resume.

We gonna use the power of :

  • LaTeX to create ATS friendly resume which has precise formatting and clean, consistent typography
  • Git to keep a single copy of your resume
  • GitHub for updating your resume from anywhere
  • GitHub Action to covert the funny TEX file into the sweet sweet ATS friendly resume
  • and push it on AWS S3 automatically, so no matter what, your updated resume is available to the whole world.

Prerequisite

Hey, I’m not here to babysit you guys, and I would expect you know few things before we start. So me mark the baseline for this project.

  • You know Git. If you are SWE and don’t know about git, then I’m a disappointed ๐Ÿ˜ž
  • You are aware of GitHub. Yes Git and GitHub are different !! ๐Ÿ˜ฒ
  • You have a AWS account. probably with billing alarm set with your AWS account ๐Ÿงพ
  • You are interested in CI/CD and want to implement in life to make things better ๐Ÿ“š

What is  Applicant Tracking System ( ATS ) Resume,

How ??

  • clone Simple ATS template from GitHub
  • Update your details
  • Create GitHub Action to build your resume
  • Configure your AWS S3 bucket
  • Update your resume and relax

Let’s Begin ๐Ÿ


Cloning Resume Template in LaTeX from GitHub

LaTeX allow you to create resume which is precise in formatting, clean and has consistent typography. There are multiple template available, you can find some good template in reddit.

The one I used is jakegut/resume. Go on, and fork your favorite template. No point in declaring all the typesetting from starch.

Make that Resume Yours

Update the .tex file with your information, yes now is the time to bring your inner LinkedIn guru to boost about skills and tell your recruiter how you have saved your pervious company single handedly.

Light, Camera, GitHub Action ๐ŸŽฌ

In your Repo Actions tab -> New workflow -> Simple workflow (configure)

Rename & update the content of workflow yaml file with the the code given below. commit your changes.

name: Build and Upload Resume
on:
  push:
    branches:
      - master
    paths:
      - "resume.tex"
  workflow_dispatch:

jobs:
  build-and-upload:
    runs-on: ubuntu-latest

    steps:
      # 1. Checkout repository
      - name: Checkout code
        uses: actions/checkout@v4

      # 2. Install LaTeX environment
      - name: Install LaTeX
        run: |
          sudo apt-get update
          sudo apt-get install -y texlive-latex-base texlive-latex-extra texlive-fonts-recommended

      # 3. Compile the resume.tex to PDF
      - name: Compile resume.tex
        run: |
          pdflatex resume.tex

      # 4. Configure AWS credentials
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ap-south-1

      # 5. Upload to S3
      - name: Upload resume.pdf to S3
        run: |
          aws s3 cp resume.pdf s3://prashant-dhirendra-public-e4f24/resume.pdf

Now we need to the following things build_and_upload_resume.yaml or <your-filename>.yaml:

  1. branches : for which branch you want the GitHub action to be triggered.
  2. paths : the location of the TeX file in your repo
  3. AWS S3 Info :
    • bucket name I have used : prashant-dhirendra-public-e4f24
    • object name I have used : resume.pdf

Wait a min, you don’t have AWS S3 bucket configured to host your files. Lets fix that.

configure S3 with IAM inside AWS