It all starts 10 days before the Hackathon. It was 28th of June when I got the message the Hackathon is taking place on 10th of July. I was excited for it, last time maybe it was not for me maybe these time. In the excitement I asked my teammate we were three in total. All excited and ready to participate and within 2 day we registered for it. As soon as we registered I realized on 8th of June I will be visiting my sister in India almost 1500 KM away from here. So I was not sure how will I even participate or give time to it. I started having a second thought about leaving it but thought my teammate will feel bad so eventually I decided to participate. I had cleared with my team I will try my best, but I was not sure how much time I will really be able to give.
So, it's 9th of June a day before the Hackathon. I am at my sister house, visiting different malls, eating street food. I was just enjoying my time out their. During noon, I get a message from one of out teammate that he would not be able to join us because he had a family problem. So, yep we went down from three to two. We were still positive, I really appreciated my other teammate. Whatever the situation is they are always up for it and ready to give their 100%. Never knew when those 10 days flied and we were on the day first day of Hackathon. It was a 48 hour Hackathon to be held between 150+ teams all around India. We knew it was a small Hackathon as seen in scale because only the students of masai were allowed to participate. But, we also knew everyone among those 150 team were passionate about it and had wide talent.
It was 8:00 P.M IST, we got our problem statement. Their were two, the first talked about detection fraudulent job and the other was about spot the churn. I don't know I like to take risk and to try out the difficult one. I knew their are various model on Spot the Churn but Job Fraudulent Detection was something new for me. So I convinced me team member to do so. They just listen me, or may I say she because the other left. As soon as I got the dataset, I started working on the model. I had plans for the next and the next day to go out with my sister and mother to the market so was not expecting to get a whole lot a time. So, I started working on it immediately. Me and my partner, we had mutual understanding already because these was the third time we were participating together. She knew, she was going to look after the EDA and the presentation part and I would be looking into building model and web app.
The first important thing for me was the get a proper working model. Few days back before the Hackathon, I saw few videos and codes of stacked models and was keen on using those model somewhere. I found the best opportunity to use it in these Hackathon. I started with some simple model like, Linear Regression, XGBoost and tried fine-tuning it. They were performing good but now what I was expecting from them. Looking into the dataset, I noticed that the distribution of the target value were to uneven. Like among those 100% of dataset, their were only around 17-18% of jobs that were fraudulent. I also notices a lot of data are missing in between. See, I knew I am not the coder who knows everything and will just type at 100 wpm, code out everything, NO.. Yep, just like the new generation I asked chat-gpt to help me out. I provided with my problem statement, I presented my idea, my issue and ohoo it just generated a pretty code model. The main difficulty in these problem was the in-balanced dataset. We fixed it using SWOP Analysis. That helped a lot improving the result. As the dataset contained some paragraph like company description and all, I used TFDS to convert those description into vector and use them for training the model more accurately. Then I went more advance, I stacked up three model, Logistic Regression, LightGBM, and Random Forest. Stacking up these model really helped to get more information out of the data and make better prediction. I was working on it for almost 2-3 hour when I got tired. I had a prototype model ready to be used in my notebook. I had a simple plan for the next day. Get some time, convert the code into a proper API and build front-end for it. Thinking that I slept, I really had a good sleep that night. One of the reason for that was the stats I got at the end. A pretty good precision score. We were told we will be evaluated on the basis of F1 score but due to too unbalanced dataset, I couldn't achieve a high f1-score for fraudulent job (i.e represented by 1 in the image )
The next day, I had around 2-3 hour to work on these as I woke up little early. In the problem statement they had provided us few good to have point. One of that consisted, getting job description from the uploaded PDF. I thought that should be easy, I can get a pretrained model from hugging face that could extract the data for me from the PDF and after that it was as easy as sending those data through the model. So, I started working on it, and hell why did I even start. I was not able to get the data from the PDF in the format I wanted. Sometimes, company description are provided with different title and a lot more challenges. I asked Chat-GPT to help me, sometime AI are good but sometimes it can just make your life hell. That what happened that day, Chat-GPT made my life hell. It just gave me new code every time and all had same problem. I thought it's fine, just for demonstration process I will add a simple model and just say, our model works if content provided in the PDF are in these particular way only. It took me over 2 hour to complete that build an proper API. Just to add something extra, I got a live API for job listing from Adzona. That's the best part that happened that day, it provided me the data in the format I wanted, the way I wanted. I simply, could just make simple modification and push into my model to get if it's fraudulent or not. I did the same, so I had an extra feature in term of live job listing with live fraudulent detection. I completed by back-end with fast api. Now, it was time for me to deploy it. I usually use render to deploy fastapi as it works the best and I find it the simplest method to do so. You know when the day is not yours nothing goes right. For the PDF model, which took me so much time to make it barely working a bit, I get to know render cannot deploy it due to limitation of it ram. Render only allows 512 mb RAM in it's free uses which is typically just fine for a simple classification model. But due to the PDF model, the render system was just crashing. I really didn't had time to either fix it or look for other model, I simply just went back removed that whole section and deployed it. That gave me a sense of relaxation, knowing one of the most difficult part of my job is over. The next is mostly, designing the UI/UX that I like to do it using Claude. That day, I didn't do a lot I went out enjoyed my time, came back and slept.
The last day, I had around 10 hour to go before deadline. But, I knew I wasn't gonna stay in home for more than 3-4 hour. So, as soon as I woke, I started working on the front-end. Faced some bugs but eventually got everything working. I would say it was the easiest part of the Hackathon, it was just getting everything together and giving it a finishing touch. One thing for sure I have understood doing Hackathon is, people care less about what you coded but more about how well do you present. It about showcasing your product as the best, stating why it is the best. I completed with other some finishing touches. Uploaded my whole code to github. Created a proper readme file and was over with it. I went out for some shopping, had my lunch and almost forgot the most important part. That was recording a video. We had to present our complete project as a video. My partner created her with the analysis and explaining the dataset with proper presentation. And I was completed messed up , anyhow I sat opened my OBS, my project and started recording. Had to take few takes but eventually got one perfect take almost perfect. In the end, we completed our google drive and at almost the last moment submitted our work.
It was a kind off a experience. We knew we did good, it was a good project. I doubted myself maybe not the best I could do and had not many hopes about winning it. But, it felt like a success, something we have achieved in 48 hour with continuous travelling and hard work. Now, it was about waiting..... waiting for a long time. After nearly a month, their was a message on the channel that they are having the final presentation for the Hackathon winner tonight. I thought ya we didn't get it. But I still joined hoping to learn something from the other. Top 5 participants are selected for final presentation, as few round passed I started noticing their statement where different from our. Like it was similar but different from one with got. I felt like we were biased in some way with them because their have been such rumors in the past. But, then I look closely and found out that it was for Software Engineer not Data Science. I was so relieved, I saw a ray of hopes in front of my eyes yep their is a chance.
A week passed, again at last moment we planned a trip to India. Again 1000 KM away from home. These time I was not going to have a good place too because we were in a tirth yatra, that's mostly travelling in car and visiting temple. Again just a couple day before we were about to leave, I got a text exactly saying,
Hello All,
Congratulations !💥
You & your team mates are selected for the final round of Anveshan Hackathon 2025
Presentation Round - Scheduled on 12th July 05:00 PM
Kindly help with your team member details
Project/ Team Name :
Student Code :
Name :
Registered Email :
Photo
We need this information by 11:00 AM tomorrow.
Rest Information we will share soon
Regards,
Team Anveshan Hackathon 2025
The only problem these time was, I had no idea where would I be during that time. I could be in between of a puja or travelling in a car with no good network I had no idea. I just believed in god and just hoped for the best. It was the day, it was the time we were going to present. I and my partner we both were having network issue. Just before our turn, out of nowhere the back-end broke. Somehow, render crashed out in the back, my heartbeat reached a level no one could guess. We were like 2 rounds behind our presentation and I am re-deploying my complete back-end from mobile. Just for context, I was travelling in car in between of jungle with just 2 network tower very unreliable. Somehow, I managed to get back the back-end to work. It was a real heck of a mess if that wouldn't have worked. Everything was going ok, just as soon as my turn came to speak, the network was gone. Like for past 30 min the network was working great, just as soon as my turn came it went blank. I thought we are done today but somehow my partner managed it, I got my network connection back and spoke for couple a minute. Yep, our final presentation was a mess, I watched other works... I was confident our project was better than them. But could the mess in final presentation disqualify us very high probability. The judge did appreciated us for showcasing proper analytics of the data that no other team had done, all thanks to my partner for such a wonderful analytics.
Couple of weeks passed away, their was no message. Slowly, the last hope was also dying... one day suddenly we a post comes in the channel.
Yep we won!! That's all from my side.. Hope it inspires you to never lose hopes and just give your best whatever the situation is. These was hell of a experience but one that will be always be remembered. I would really like to thank my partner for supporting me every time and providing that confidence we can do it. I hope to participate in more Hackathon in the future and have more exciting time in it.
Signing off,
Bhawesh Agrawal