7 ms·
Show HN: Hackjob.io – HN job listings done a bit better
- readme 11y agoYou should add some blank space between the posts, it will make it easier to read. Same with titles and paragraphs.
- dvt 11y agoDone!
- bdamos 11y agoI have two minor comments: 1) Linking to the original HN hiring post is helpful, and 2) I'm on a poor internet connection now, and this page took about a minute to load. http://hnhiring.com/ http://hnhiring.com/ and the original July 2015 thread (https://news.ycombinator.com/item?id=9812245 https://news.ycombinator.com/item?id=9812245) load in ~5 seconds.
- dvt 11y ago(1) is probably going to make it in at some point! Unfortunately, I need to make an HTTP request for every post (that's how the HN Firebase API works) and that gets pretty expensive on slow connections. :/
- necubi 11y agoYeah, I build http://hnhiring.me http://hnhiring.me well before the API via scraping. I looked into moving over after it was released but found it completely impractical for this sort of thing. Hopefully it'll be improved at some point, especially given how bad the HN markup is (fun fact: all comments are at the same level in the dom; the indentation is achieved via a blank gif with a width property).
- dvt 11y agoOuch, that sounds painful. Glad I didn't go the scraping route :P
- gabemart 11y ago> Unfortunately, I need to make an HTTP request for every post (that's how the HN Firebase API works) What's the total size of the jobs data? Would it be possible to grab all the JSON from the API, concatenate it and then self-host it as a single file? I imagine a $5 DO droplet with nginx would suffice for that. It looks like firebase isn't even gzipping the JSON.
- dvt 11y agoYep certainly possible. It wasn't my aim thought as I wanted some Angular practice with promises :)
- reubano 11y agoLooking at the firebase api docs, I realized how unRESTful, their REST api is. No way to get a list of all stories. You can only get a list of ids and must then query the API with each id to get the content. If you plan on going this route, I def agree you store your results in your own backend db. If you want to stay stateless, look for a better HN job source, e.g., http://hnapp.com/?q=type%3Ajob+|+author%3Awhoishiring http://hnapp.com/?q=type%3Ajob+|+author%3Awhoishiring. Just one request and you can parse either the json or rss feed.
- tlarkworthy 11y agoFirebase dev here, the websocket API would be much faster (less HTTP overhead and connection negotiation) and has the potential for more concurrent requests. replace lots of these: return $http.get('https://hacker-news.firebaseio.com/v0/user/'+name+' + '/.json'); with return $q(function(resolve, reject){ new Firebase('https://hackernews.firebaseio.com/v0/user/').child(name).on('value', function(snap) { resolve(snap.val()); }, /*error handler here too*/) }) https://www.firebase.com/blog/2014-10-07-hacker-news-api-is-firebase.html https://docs.angularjs.org/api/ng/service/$q (yes the HN API design is a little funky though, but you can definitely improve the loading times with websockets)
- dvt 11y agoHey that IS awesome. I had no idea Firebase had a websocket API. Sweet!
- tlarkworthy 11y agosend us a message at https://groups.google.com/forum/#!forum/firebase-talk https://groups.google.com/forum/#!forum/firebase-talk if you have any problems. The websocket API is the main selling point of Firebase, but I guess you were not actively looking to use Firebase in a product, rather, it was a necessity from HN API. Good luck! Don't hesitate to contact us.
- victorantos 11y ago[AngJobs](https://github.com/victorantos/AngJobs https://github.com/victorantos/AngJobs) took 1-2 seconds to load the [HN filter](http://angjobs.com/#!/jobs/inbox/hn?july http://angjobs.com/#!/jobs/inbox/hn?july)
- dvt 11y agoI use HN's Firebase API. This means I need a separate HTTP (XHR) call for every job record. AngJobs has their own database/API. It was my intention to avoid that pattern because I wanted to practice promises in Angular.
- victorantos 11y agoI think you could cache the ajax calls and gain some loading performance. AngJobs is using [angular-cache](https://github.com/jmdobry/angular-cache https://github.com/jmdobry/angular-cache) for example.
- beeskneecaps 11y agoSwiping back on safari mobile reset my search results and search criteria.
- jnpatel 11y agoThis is pretty neat stateless app, however the current implementation leads to performance issues on slower connections. Have you thought about some optimizations you could make to filtering/searching to minimize the initial load time, while still keeping all the logic client-side?
- dvt 11y agoThanks! And yeah, I'm probably going to cache the results in localStorage at some point.
- avinassh 11y agoIt is open source btw: https://github.com/dvx/hackjob https://github.com/dvx/hackjob What is the meaning of 'stateless: > and wanted to build a stateless product using Firebase.
- dvt 11y agoThere is no database (everything happens on the browser).
- jnbiche 11y agoBut Firebase is a database, and by definition keeps state.
- personjerry 11y agoI believe Hacker News API (which is in Firebase) is what is meant by "Firebase". This tool does not have its own database beyond that.
- dvt 11y agoYep, I should've been more clear.
- chadscira 11y agoseems like a massive waste of resources... you're making 800 http requests to firebase. If you don't want to use a database at least setup some sort of cron that just updates a giant JSON file so the users don't have to DDOS firebase. Other than that it looks great.
- deleted 11y ago[deleted]
- deleted 11y ago[deleted]
- coned88 11y agoI know there's an icon to tell posts apart but there needs to be more done to differentiate posts. I shouldn't have to be so careful
- lelf 11y ago> Try searching for technologies (Java, C, Yeah, working search for C. Sure. I believe.
- zerr 11y agoI don't mind [non-working search] for C, but inability to search C++ constantly annoys me. But this is not the case for this site, great.
- tiernetworks 11y agoThe date of the original posting would be a useful addition.
- dvt 11y agoCouple of updates: made job listings easier to read + added a permalink link for the people that want to see original posts. TODO: dates, viewing comments, storing data in localStorage after initial download.
- slavik81 11y agoIt would be nice if there were an indication when there's 0 matches found. I was briefly confused as nothing on the page changed at all when I hit 'Search' after entering my criteria.
- phantom_oracle 11y agoCan you add another filter rule where we can remove jobs from the results that aren't interesting to us? For example, searching for "Remote" and I may stumble onto a post that has "sorry no remote" and I'd like to clear that from the results (so that in the end, I end up only with the jobs that I'd be most interested in applying to).
- contingencies 11y agoPer-job 'ignore' flag would be good, too. Could just save to a cookie. Also, per-job 'notes' field, eg. status = applied, sounds like it's run by a control freak, bad weather, etc.
- dvt 11y agoAll great ideas! May implement some of these today.
- mapleoin 11y agoA progress bar that takes 20 seconds to load? What year is this?
- codingdave 11y ago...followed by a UI that totally could have been shown while data loaded in the background.
- mkaziz 11y agoI would love and/or keywords. Eg. I'd like to find a job in Chicago for either C# or django work.
- victorantos 11y agoI believe you can achieve that by adding custom filters like here http://angjobs.com/#!/jobs/inbox/hn http://angjobs.com/#!/jobs/inbox/hn
- MaxScheiber 11y agoTo me, the tag box has incorrect UX. I would personally expect that hitting the spacebar would end one tag and let me enter a second tag, especially since it is clear that you do not permit spaces in tags. I would also expect the "enter" key to conduct the search. Instead, spacebar adds a space that will get converted to a hyphen anyway, and enter ends one tag and lets me create a second one. Good job overall; I like the idea. It will be an interesting challenge to capture meaning from these raw text posts. For example, I tried to search for jobs in Florida, but typing in "FL" gives a lot of false positives. That will be the
- totalrobe 11y agoWell first of all I looked through the recent thread and saw 0 postings in FL. Little bit of a sidetrack, but it's seriously depressing that 90% of the jobs posted are SF and NY. These companies are seriously limiting their applicant pools.
- throwaway32439 11y agoOutside of helping build a startup, you have literally every other job site at your disposal. Go on any of them. Within the context of building a startup, Sam Altman suggests it is more than 10x easier in SF and SV - however I think it is more like 50x easier. You can talk to 50 people on "startup" terms in FL before you'll find one person who is as qualified and willing to work on a startup, who will actually do it, as you can find in SF. For better or for worse, HN is a YC property, and it's mostly about startups. In that sense even NY ranks far behind SF. In fact, you can go farther and say that inside SF, twenty people can build the better part of a billion dollars in value together from nothing. Outside SF, you will get accused of being a thief and trying to take advantage of the same developers. It's a complete non-starter. I realize most people posting advertisements are somewhat farther along, but the point stands. SF is where they are funded and able to post startup jobs.
- totalrobe 11y agoI think you are underestimating the SE. They have the talent but not the employers. I, like most educated young folks I knew from FL, had to move out of the state for non military tech jobs.
- mrwnmonm 11y agothanks for creating this
- noso 11y agoGreat Job!
- bonghodrum 11y agoThis is awesome! Great job!