A journey from Spreadsheet to Mobile App

Tracking Job Applications

Tracking Job Applications | My Blog

Tracking Job Applications

I set about transitioning from a Project Manager/IT Manager type role into that of a developer in early 2022. I started on this path because I have been building things for as long as I can remember, from following code examples in the BASIC guide that came with my Amstrad CPC 464, through building forums and websites in the early 2000s, iPhone apps with Objective-C and Interface Builder in the early 2010s and machine learning models with Tensorflow in the late 2010s. In short, it has been a hobby of mine for a very long time and I thought that I’d might as well try turning my hand at this professionally.

Data Analysis

Initially I planned a tepid excursion into this strange new world in the form of Data Analysis, with visualising data being another one of those things that I’ve enjoyed over the years. Truth be told I didn’t make too much of an effort into that route, I quickly realised that the thing I enjoyed most about data visualisations was creating the data visualisation, essentially the python part of the process, at least for me (there are lots more ways to visualise data).

So I switched focus into developing, I went with a two pronged approach, in the short term I’ll try to find work from small businesses and through platforms like Fiverr, but ultimately I’d like to be hired as a software developer.

Google Looker - Data Vidualisation

Freelancer

Now my success as a freelancer was enough to keep me ticking by, but it wasn’t ever a really serious amount of work, it kind of ticked by, I got to work with a lot of amazing people and small businesses but I was never going to change the world with this type of business and my war chest from my time as an IT Contractor was dwindling. I pursued permanent opportunities largely without success and I think the reasons for that are plentiful, but ultimately, and if I am completely honest, my freelance approach meant that I’d take any dev work and never really mastered any one language and certainly wouldn’t feel confident in a developer type interview scenario.

Giving up?

I recently decided to make a change and return to permanent work, any permanent work… I changed my LinkedIn status and some fabulous recruiters and talent acquisition specialists reached out, on the flip side, I threw my CV at anything with a pulse and the result was I had an extremely busy few weeks with interviews for various roles. I think I have a path forward but I won’t talk about that in this post.

Job Application Tracking

The reason for the preamble was that as a result of my career change aspirations, I have applied to a lot of roles on lots of platforms over the last couple of years, with a largely unsuccessful outcome, however as someone that’s interested in data, I quickly realised that part of this journey for me was going to involve data. So I started to track my applications and any feedback etc.

Version 1 - Spreadsheet

I created a spreadsheet that I used to record the job title, company, salary, applied data, any follow up actions (interviews or feedback etc). This worked fine, it did the job for me.

Job Application Tracking - v1

Version 2 - GitHub

As a developer, there are loads of communities that you can easily be a part of, even just tech-twitter (it is a real thing), so talking to other job seekers, I’d often mention my job tracking spreadsheet and why I thought it was an interesting exercise, occasionally throwing stats into the conversations and some of those other job seekers were interested.

I thought the spreadsheet was maybe too rigid for sharing so I set about recreating my tracking ‘platform’ into a kanban board using GitHub and shared it as a template. My repo saw quite a lot of initial traffic but to be fair I think it was a overly complex, it was a tool built for me and mostly used by me, it took too much effort to keep explaining how a new user could use labels and status to track items etc.

Job Application Tracking - v2

Version 3 - Laravel

As a longtime user of PHP, I decided to build a completely new version of my application tracker with PHP Laravel and MySQL. I love working with PHP so this wasn’t hugely difficult and in fact, I would say it was quite enjoyable. In fact this spurned a huge push from me into trying to land a Laravel or PHP developer role (TLDR; - I was not successful). Whilst I love working with PHP, I mostly use Netlify (free tier) for building portfolio pieces, I didn’t want to spend money hosting a PHP/SQL site so I found the cheapest hosting provider I could. This was a mistake, the resulting site was so slow even I didn’t want to use it.

Job Application Tracking - v3

Version 4 - React

So, seeing that I had a small amount of traffic to the site, guessing there was some interest, I built a very quick version of the site with React, my weaker development skills shone through as I was unable to replicate many features of the PHP site, but I wanted to drop the PHP site ASAP so I built a new version that was mostly true to my original vision for this platform.

The only real positive I take from this time was that this was the first version where I’d made a concerted effort to migrate the existing data to a new platform, I migrated from MySQL to Firebase, it wasn’t perfect but I didn’t lose any data and by this time I did have some fledgling users, so I definitely didn’t want to lose their data.

I was never really happy with that React version of the website as it was kind of rushed just to get away from a terrible hosting experience.

Version 5 - NextJS

Basically React but a complete visual rebuild. Again, the existing Firebase data was maintained, in fact building the new version was dictated by the fields that my site users were using in the existing Firebase database. I didn’t rebuild every component, I only built the bits that people were using. I planned to revisit this and add functionality (TLDR; I didn’t).

This platform had a Kanban style interface for authenticated users, allowing them to drag an application through different stages, I also built the ability for a user to add or modify the columns as they required and for the first time I built a feedback component directly into the users dashboard so that they could report bugs or raise feature requests.

Job Application Tracking - v5

This feedback functionality led to some new colours and highlighted real usability issues when on a mobile phone, so I would definitely recommend such functionality to others that are keen to see what real users think.

Job Application Tracking - v5b

Version 6 - Flutter

Now, this is a bit of a fork in the road. I’m not developing the platform in the same way at the time of writing. However, before shifting focus from Web to Mobile First, I initially replicated all functionality and as many of the visuals as I could manage with Flutter. As I’ve said in other blog posts, I love the idea of Flutter, but I don’t like building using that framework, the nests are insane.

I do still have some active users on this platform, and they can still sign-in and track their applications exactly the same way as before the fork, however, the fork will lead to something completely new.

But before the new direction, and mostly for the existing users, I have been working on a mobile application.

Job Application Tracking - v6

These screenshots don’t do it justice, in fact I grabbed them from a screen recording I did showing someone else how to work with the app. I might come back and update this image later, however, I am also working on something new and exciting for this web resource that I hope will be far more interesting, so we will see.

The mobile app will probably be the end for this particular journey, partly because I hope I don’t need it anymore (hopeful one of those jobs I’ve been applying to will turn out very positive for me), and partly because I think the new idea might catch a wider number of interested users, but we’ll see.

Final thoughts

So this section isn’t about the app, more about the journey. One of the things I’ve seen through my time tracking jobs and job applications is how frequently the same job (with the same employer of course) comes up and how it sometimes might change between instances. For example, sometimes the description changes, but it is close enough to a previous instance to see the connection, mostly the salary and benefits change.

Occasionally I’ll see that a person specification, if included at all, changes to describe a different type of personality. We can read into this, many things, and of course some jobs simply need multiple people at the same level, and that’s fine, but some suggest that maybe there was a breakdown in the relationship between the employer and whoever they hired.

Person specifications are especially interesting as they describe characteristics that employer wants in potential candidates and seeing changes in the person specification suggests that the employer has learned, possibly through interacting with the last role holder, that they want something else in whoever joins next, so that can be quite interesting.

I’ve also seen, and indeed applied for, some roles that come up so frequently that they are either burning through candidates, where the role offered is not what the candidate expected, or they’re just collecting CVs for whatever reasons. Some are just plain fake, I think I usually spot these, they are just companies that are collecting job seekers contact details.

However, I have also seen LinkedIn posts talking about a practice that apparently some companies have been using to benchmark salaries, whereby they describe a role and look at the CV’s offered and salaries requested, to help them understand if they are paying at the market rate for existing roles, these LinkedIn posts suggest that in these cases, the role was never really available, it was just a data collection exercise. I don’t know if this is likely, but if so, it does seem like a good way to destroy your brand, especially if people like me are tracking those repeated jobs and observing the differences and fixed frequencies between when those job adverts appear.