Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Hackjob.io – HN job listings done a bit better (hackjobio.herokuapp.com)
102 points by dvt on July 4, 2015 | hide | past | favorite | 46 comments



It 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.


A progress bar that takes 20 seconds to load? What year is this?


...followed by a UI that totally could have been shown while data loaded in the background.


To 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


Well 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.


Outside 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.


I 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.


It is open source btw: https://github.com/dvx/hackjob

What is the meaning of 'stateless:

> and wanted to build a stateless product using Firebase.


seems 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.


There is no database (everything happens on the browser).


But Firebase is a database, and by definition keeps state.


I believe Hacker News API (which is in Firebase) is what is meant by "Firebase". This tool does not have its own database beyond that.


Yep, I should've been more clear.


Can 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).


Per-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.


All great ideas! May implement some of these today.


I 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/ and the original July 2015 thread (https://news.ycombinator.com/item?id=9812245) load in ~5 seconds.


[AngJobs](https://github.com/victorantos/AngJobs) took 1-2 seconds to load the [HN filter](http://angjobs.com/#!/jobs/inbox/hn?july)


I 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.


I think you could cache the ajax calls and gain some loading performance. AngJobs is using [angular-cache](https://github.com/jmdobry/angular-cache) for example.


(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. :/


Yeah, I build 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).


Ouch, that sounds painful. Glad I didn't go the scraping route :P


Firebase 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)


Hey that IS awesome. I had no idea Firebase had a websocket API. Sweet!


send us a message at 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.


Looking 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. Just one request and you can parse either the json or rss feed.


> 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.


Yep certainly possible. It wasn't my aim thought as I wanted some Angular practice with promises :)


This 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?


Thanks! And yeah, I'm probably going to cache the results in localStorage at some point.


Couple 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.


I 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


Just pushed an update that should make things easier to differentiate!


Can't be better than that. Awesome


I would love and/or keywords. Eg. I'd like to find a job in Chicago for either C# or django work.


I believe you can achieve that by adding custom filters like here http://angjobs.com/#!/jobs/inbox/hn


You should add some blank space between the posts, it will make it easier to read.

Same with titles and paragraphs.


Done!


Swiping back on safari mobile reset my search results and search criteria.


> Try searching for technologies (Java, C,

Yeah, working search for C. Sure. I believe.


I 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.


The date of the original posting would be a useful addition.


This is awesome! Great job!


Great Job!


thanks for creating this




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: