             else
               results = JSON.parse(body)
               callback null, results.post
-        async.map posts, downloadFullPost, callback
-      (posts, callback) ->
-        now = Date.now()
-        console.log "#{now - start} (#{now - last}) to get full posts"
-        last = now
-        sortPosts req.app.db, req.app.fuzzyIO, req.agent, posts, req.user, req.token, callback
-    ], (err, posts) ->
+        async.map posts, downloadAndScore, callback
+    ], (err, scored) ->
       if err
         next err
       else
+        scored = _.sortByOrder scored, ["score"], [false]
         now = Date.now()
-        console.log "#{now - start} (#{now - last}) to sort posts"
+        console.log "#{now - start} (#{now - last}) to download and sort posts"
         last = now
-        res.json posts
+        res.json scored
 
 router.get '/about', (req, res, next) ->
   res.render 'about', title: 'About'

    start = last = Date.now()
    async.waterfall [
      (callback) ->
        token = req.token
        headers =
          "Accept": JSON_TYPE
          "Authorization": "Bearer #{token}"
        url = "https://api.producthunt.com/v1/posts"
        cacheGet url, token, headers, (err, body) ->
          if err
            callback err
          else
            results = JSON.parse(body)
            now = Date.now()
            console.log "#{now - start} (#{now - last}) to get posts"
            last = now
            callback null, results.posts
      (posts, callback) ->
        downloadFullPost = (post, callback) ->
          token = req.token
          headers =

        body: body
      cache.set(key, JSON.stringify(entry))
      callback null, body

defaultAgent =
  inputs:
