Guide to setup archive-JAF in campus.placements.iitb.ac.in

Akash Reddy G
3 min readOct 1, 2022

--

So, I know! How painful it is to sort through the million JAFs in our placement website JAFs page. The placement portal development team has brought amazing features this season, compared to the last season. Alas one small (but so essential) feature they forgot about, was the ARCHIVING feature in JAFs list. Maybe they’ll do it for the coming season. I surely hope so.

Anyways! I could foresee the impending doom with more and more companies coming our way. I sat down and tried to build a work-around… something similar to a archiving feature. And I’m proud to show it off -

Demo of the archiving feature

Since I am not the part of the team developing this portal, I had very little to work with; and so a lot of work to put in. I used the Page Manipulator Chrome Extension and my self-written code to achieve this.

Setup details :

  1. Install Page Manipulator Extension. It should look like —

2. Now Create a new JavaScript file, say ‘archiveJaf.js’ and enable Active checkbox. Type in “https://campus.placements.iitb.ac.in/” in the active websites box and choose the Matching Pages to be ‘Recursive’. It should look like -

Now, get the js code from here and paste it in the file. It should look like -

3. Now repeat the same for CSS — create a archiveJAFs.css in the extension dialouge box and paste the code from here. If done correctly, it will look like this -

4. Now you are ready to enjoy and relive the demo shown above. Open https://campus.placements.iitb.ac.in/applicant/jobs. You should be able to get to-

Blurred JAFs — green ones are unarchived, red ones are archived. There’s a visibility toggle option to make the red ones disappear (and reappear)

Code Details :

  1. The code only modifies the front-end part. So, if anything goes haywire; you know what to do (disable the extension and reload your page)
  2. The items archived are stored in the localStorage of your chrome browser and thus are persistant across multiple sessions. Wouldn’t be of much use otherwise, if you ask me.
  3. This took me a lot of effort, since I had to use some new concepts — querySelector(), Node Interface, stopPropagation(), MutationObserver Interface.
  4. If you notice any bug, or have a recommendation, feel free to share it here or anywhere else.

--

--

Akash Reddy G
Akash Reddy G

Written by Akash Reddy G

I'm undergrad from India. Really hating the online semesters.

No responses yet