Jobamatic - Automate your job search
Tags: dohackathon
Published: 2021-01-10 05:50:15

## What I built
I built a web application to help users automate their job search.

### Category Submission: 
Built for Business

### App Link
[Jobamatic](https://jobamatic-oftsr.ondigitalocean.app)

### Screenshots
![landing page which reads Jobamatic](https://dev-to-uploads.s3.amazonaws.com/i/l42nab9111trn7vwo9a9.png)
![Login page with Auth0](https://dev-to-uploads.s3.amazonaws.com/i/hagbkydi7feb0i4ihga3.png)
![table with a list of job postings](https://dev-to-uploads.s3.amazonaws.com/i/1201v4oazvlu72dj1mhi.png)

### Description
This is a full-stack application, and I used Node (Express) as a backend, MongoDB as my database, Auth0 for authentication, and React as my frontend.

### Link to Source Code
[Jobamatic](https://github.com/abidishajia/jobamatic)

### Permissive License
[Commons Clause](https://commonsclause.com/)

## Background

Two years ago, when I was looking for work, I found more luck on Twitter than LinkedIn. Twitter made it easy for my resume to reach the hiring manager, whereas I was never sure on LinkedIn. On Twitter, I was able to talk to real human beings about the job and forward them my resume. There were no awkward cold emails. 

Soon, I was searching for jobs on Twitter daily. I quickly automated the process and wrote a script that will explore the jobs for me. 

And yes, it did land me a few interviews. 

So for this hackathon, I converted those few lines into a whole application. It has authentication, a database to save jobs, a frontend built with React, which lets the user create, search, delete, update, and store the relevant positions.

### How I built it 
Building this application was challenging for a lot of reasons; nonetheless, it was enjoyable.

#### Tools
I had to decide what tools to use. I knew I would be using React to create my frontend (because I have been working with it for a few years). 

I wasn't sure what to use as my backend. I had always wanted to try Node(Express) and thought this would be an ideal place to start.

#### Twitter API
The other issue I faced was the Twitter API. Even though they have documentation, it isn't easy to work with. I had to find another way around, but I will work with their direct API in the future.

#### Authentication
I never worked with authentication before, so learning authentication was fun. I decided to use Auth0 for authentication, and it was super straightforward. 

I would like to give a shoutout to [The Collab Lab](https://the-collab-lab.codes/) here and especially to [Sam Julien] (https://twitter.com/samjulien) for helping me find my way around the Auth0 authentication.

#### Deployment

I had never deployed a full-stack application before, and I wasn't sure how to do it. I tried, but Digital Ocean didn't let me. For whatever reasons, my Digital Ocean account wasn't allowing me to deploy my application. I reached out to [Chris Sev](https://dev.to/chris__sev), and he was able to deploy it on his end with some errors. I then created another Digital Ocean account, and I was able to deploy it (again with some errors). (I still can't deploy the application using my original account). 

I followed Traversy Media's [video] (https://www.youtube.com/watch?v=71wSzpLyW9k&t=833s) to fix some of the issues. I deployed it again, but this time, I saw a new error. 

[The Collab Lab](https://the-collab-lab.codes/) came to my rescue again. I posted my problem on their slack channel, and [David Lluna](https://twitter.com/llunatweets) hop on a call with me within a couple of hours and helped me figure out what I was doing wrong. 

I was adding all of my environmental variables except `NODE_ENV === 'production'`, due to which my client was not building. 

### Future Features
I would like to add 
* Notifications
* Categories - I am a developer but I also am a freelance writer. I look for both opportunities and I would benefit from having the jobs listing separately for both of them.
* Get premium Twitter API to have more reliable results

### Additional Resources/Info

I would like to add some resources I used for building this application:

[The Collab Lab](https://the-collab-lab.codes/)
[Auth0 - React](https://auth0.com/docs/quickstart/spa/react)