hasgeek / hasjob

Hasjob, the Hasgeek job board
https://hasjob.co
GNU Affero General Public License v3.0
238 stars 80 forks source link

Hasjob browser extension #397

Open HemantPawar opened 7 years ago

HemantPawar commented 7 years ago

Hello,

I developed a browser extension for Hasjob that allows a job seeker to quickly check if there's any job listed on Hasjob for any website.

Use case: Let's say job seeker navigated to startup website from yourstory, vccircle etc and wants to know if there is any job listed on Hasjob for the current website.

I developed this extension for a fun but to be honest I don't think I'll be able to maintain or invest more time in it in the near future.

Let me know if you guys are interested in maintaining this project. I can transfer the ownership of the repo & currently hosted chrome webstore extension to you guys. I can also provide KT if needed.

Link: https://github.com/HemantPawar/hasjob-extension (MIT)

Regards Hemant Pawar

jace commented 7 years ago

I missed this while away at Hillhacks. I'd love to take this on as an official feature in Hasjob, and I think a few technical optimisations will help.

Rather than hitting Hasjob's feed URL for every single website visited, Hasjob could instead supply a new API endpoint that lists all (a) current and (b) known employers, that the extension could periodically refresh. This will both reduce the load on the server and protect the user's privacy, as we don't need to know what you're visiting.

Further, since the list of current employers runs into the hundreds (and all time in the thousands), the API could supply a bloom filter instead of the actual list. The extension can use this to look for jobs only when there's a match. Here's how Chrome uses bloom filters for the malicious website check.

Since Hasjob's backend is in Python, we'll need to use a bloom filter implementation that is exactly the same in Python and JavaScript. I'm unable to find such a project, so we may have to start with translating this simple JS version into Python.

HemantPawar commented 7 years ago

I missed this while away at Hillhacks. I'd love to take this on as an official feature in Hasjob, and I think a few technical optimisations will help.

I too was away for some 12 days with no mobile network.

Rather than hitting Hasjob's feed URL for every single website visited, Hasjob could instead supply a new API endpoint that lists all (a) current and (b) known employers, that the extension could periodically refresh. This will both reduce the load on the server and protect the user's privacy, as we don't need to know what you're visiting.

Yeah fetching jobs via XML feed is kind of a hacky solution. API approach you suggested is proper and better. At the moment extension is only making a request if the user decided to click on extension icon, not for every website visit.

Thanks for the bloom filters link. TBH I have never used bloom filters in any of my projects, I'll study it out.

Let me know how you want to use API endpoint in the extension. I'll implement the same.

jace commented 7 years ago

Just pinging to say I haven't forgotten this yet. We're currently working on HGTV and will follow that with Funnel, and after that do a massive revamp of Hasjob. I'll try to get the API endpoints in before that, however.

HemantPawar commented 7 years ago

No issue @jace, just let me know when the API is ready. Good wishes for your current projects.