               else
                 callback null, following
           (callback) ->
-            getPostIDs req.token, (err, posts) ->
+            getPostIDs req.token, (err, ids) ->
               if err
                 callback err
               else
                 now = Date.now()
-                console.log "#{now - start} (#{now - last}) to get posts"
+                console.log "#{now - start} (#{now - last}) to get post ids"
                 last = now
-                callback null, posts
+                callback null, ids
         ], callback
       (results, callback) ->
-        [followings, posts] = results
-        downloadAndScore = (post, callback) ->
+        [followings, ids] = results
+        downloadAndScore = (id, callback) ->
           async.waterfall [
             (callback) ->
-              downloadFullPost post, callback
+              downloadFullPost id, callback
             (fullPost, callback) ->
               scorePost fullPost, callback
           ], callback

        callback err
      else
        results = JSON.parse(body)
        posts = _.map results.posts, (post) ->
          _.pick post, ["id"]
        lastPosts =
          date: Date.now()
          ids: posts
        callback null, posts

cacheGet = (url, token, headers, callback) ->
  key = "#{token}|#{url}"

            totalComments: post.comments_count
          req.app.fuzzyIO.evaluate req.agent, inputs, (err, outputs) ->
            if err
              console.error err
              callback err
            else
              post.score = outputs.score
              callback null, post
        downloadFullPost = (id, callback) ->
          token = req.token
          headers =
            "Accept": JSON_TYPE
            "Authorization": "Bearer #{token}"
          url = "https://api.producthunt.com/v1/posts/#{id}"
          cacheGet url, token, headers, (err, body) ->
            if err
              callback err
            else
              results = JSON.parse(body)
              callback null, results.post
        async.map ids, downloadAndScore, callback
    ], (err, scored) ->
      if err
        next err
