I admit I haven't used cheerio before, but it looks like a good tool! The code looks decent. I see a couple places that can be simplified.

For example:

>     $('a').each(function(i, e) {
        if ( $(e).attr('href').indexOf('reddit.com') === -1 &&
          $(e).attr('href').indexOf('imgur.com') === -1 ) {
            responseUrl = $(e).attr('href');
        }
    });

This can be simplified by using the [`:not()` selector](https://developer.mozilla.org/en-US/docs/Web/CSS/:not) with an [attribute selector `*=`](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors):

    const links = $('a:not([href*="reddit.com"]):not([href*="imgur.com"])');
	if (links.length) {
		responseUrl = links.attr('href');
	}

When I tested this with the sample data there was only one such anchor tag, but if there happen to be multiple, should `responseUrl` be set to the first, last or other?

---

The only other simplification I see is this:

>     on('end', function() {
       resolve(responseObject);
    });

can be simplified to:

    on('end', resolve.bind(null, responseObject));

using a [partially applied function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Partially_applied_functions).