Automate everything…

tldr; You’re probably wondering how i ended up in this situation. Well, automate everything, that’s what i initially thought would be a…

Automate everything…
Photo by Kaleidico on Unsplash

tldr; You’re probably wondering how i ended up in this situation. Well, automate everything, that’s what i initially thought would be a good idea. To a certain extend i succeeded with this goal. Now let’s take a step back.

In recent days i started the adventure of automating certain tedious tasks. It started with the good morning and good evening texts for my girlfriend. Till recently I had the glorious idea to optimize my job application workflow once again.

Videogame Machine GIF By ELMØ

A few years ago I found out that source code files aren’t the only viable documents to use a version control system for. I figured out that if i use Git for my CV has various benefits. First, i find it harder to forget. I’m less reliant on my own hardware. Second, Changes are easier to track back down. Third, I can run a CI/CD Pipeline. Guess what i did. I made a simple .gitlab-ci.yml

So whenever i made a change to the .tex Files and committed my changes to the repository a document build would be triggered. No more hassle for me to search through various device folders. I’ve always one successfully build artefact of my cv available. If the build fails, it’s likely that i’ve made a syntax error. I can fix that right away.

A simple process illustration

Back to the present; this was another moment i became addicted to doing stuff the programmatic way. This time i wanted to take it one step further.

Companies use all kind of software for making their recruitment process more seamless and efficient. Those software systems are called Applicant Tracking Systems (ATS). I wanted to level the playing field and generate more insights about my applications. That’s the basic idea, I was working on in the recent time.

Although it’s definitely not a system i would use on a daily basis I decided it might be a fun way to learn something new. In 2020 the median employee tenure period was 4.1 years across all sectors according to the U.S. Bureau of Labor Statistics¹ ²

Well, and here we are. At the beginning i was clueless but this idea was stuck in my mind. If companies can do it why can’t I. First i wrote together some requirements for my system.

As a user, I want to be able to:

  • have all my applications at one place.
  • track their status (e.g. whether they are in the Backlog, Ready, In progress, Complete or Failed)
  • send them with custom information with just the click of a button

In order to implement this i needed some sort of datastore, some backend functionality to template and send applications and a web frontend.
My mind was overloaded with possible technologies i can use. 🤯

  • Should I write the frontend in React, Angular, Vue, Flutter or even Svelte?
  • Should I use python, java or node.js in the backend?
  • Do i need to host my application and frontend myself or rely on services like Google’s Cloudrun, Github Pages or Netlify?

Then I got reminded of this awesome short video series titled “Welcome to design decisions that don’t f***ing matter”

I was thinking way too complex for a first prototype. This reminded me of an evaluation i did back in the past when i hadn’t had yet received my bachelor’s degree. I reviewed some low code tools for my team. The result was mixed. While some standard tasks could be archived in record times, things like writing a custom filter feature could take ages if you don’t happen to stumble across a blogpost of one of their main developers where he explains the inner workings and hidden features. 😅😂

Photo by Glenn Carstens-Peters on Unsplash

By now four years have passed so i decided to give these tools a new chance.
After a few trails and errors I settled with the following tools:

Frontend:

In this case i decided to use Glide. I was curious about the Airtable integration. Turned out it works quite well, although updating the airtable sometimes isn’t as responsive as i would like.

Backend:

Datastorage: Here i decided to try out Airtable. I didn’t need to store large blobs or graph data thus basically any datastorage is fine. Even a simple lightweight relational database would have done the job. But in this first version I wanted to minimize my customization expenses.

Automation: I used Zapier to link Glide, Airtable, Sendgrid and Open AI together. Their custom code building blocks turned out to save this project.
Without these i wouldn’t be able to template the mails and call the language model.

Mail: First i opted in for mailchimp but then realised that their pricing for their transactional mail service was too expensive for this project so i decided to switch to Twilio’s SendGrid Service. Their dynamic templates are doing the job well.

Language Model: For this part i decided to stay with Open AI. The pricing is relatively cheap for the few uses my application has. I only need to call the ai once when i would like to populate some database fields for later templating.

Calender: I decided to hide a “Call-to-Action” inside the mail. For this purpose I was looking for a meeting scheduling tool. I ended up with calendly, which worked fine. The integration using a simple link inside the mail was seemless.

Links between Systems

This project has had a lots of up’s and down’s.

Was it worth the automation hassle? Kind of. I’ve learned a ton of new stuff.
Ranging from the pros and cons of low code tools to refreshing my templating knowledge with handlebars.

I also learned once more that plugging into a rather open ecosystem is an enormous competitive advantage. If any of those services would be less inclusive to third party connections i couldn’t have build this solution.
My remaining arguments for choosing low code tools were the available feature set, the ease of use and last but not least the recurring costs.

But the best is I’m not quite done yet. I can optimize my solution further. As Elon puts it:

The best part is no part. The best process is no process. It weighs nothing. Costs nothing. Can’t go wrong

Would I do it again? Sure.

In the same Way? Probably, no. I still like to code and enjoy the endless possibilities. Using those low code services is a tradeoff. It lowers the bar to get started but once running similar problems arise. I personally as a developer like to have that little extra bit of design freedom which comes with great responsibility.

Photo by "My Life Through A Lens" on Unsplash

From a business perspective low code is here to stay. In times of qualified worker shortages it’s way too compelling to get everybody on board creating. These applications can be developed in a truly user-centric way, as some users can easily help design the application while using it on a daily basis.

As far as my prototype goes. It works. Mission accomplished. I’ll have to keep an eye on the service restrictions their free and paid plans have.
For the second version I might switch back to custom code. Some initial tests i did with the headless cms framework Strapi seemed promising.
It’s a tough call but it might be cheaper if i keep on expanding and adding things like a webscraper, a chat bot or an autoreply to emails function.

But first i might continue to work on the low code prototype in order to do a small alpha test with potential users. To sum it up, those services were a great resource to start with. I could evaluate my idea quicker than i initially thought.

Results and statistics about my applications aren’t really available yet as I just have started using this system today.

Nevertheless, I’ll need to change things up in order to see further progress.

Photo by Brett Jordan on Unsplash

Like Einstein said:

Insanity is doing the same thing over and over and expecting different results

Overall I’m really impressed how the low code landscape has evolved since I did my initial small service comparison four years ago.


Thanks for reading this far. 🎉 I hope you learned something new as well.

Do you have any questions? Feel free to comment or contact me.
I’ll appreciate your feedback in order to approve this article further.


Sources:
[1] https://www.bls.gov/news.release/pdf/tenure.pdf
[2] https://developerpitstop.com/how-long-do-software-engineers-stay-at-a-job