[Case Study] Airbnb’s first-to-marketing-channel crack

Published

If you are first-to-market, or just as well, first-to-marketing-channel, you can get strong clickthrough and conversion rates because of novelty and lack of competition. This presents a compelling opportunity for a growth team that knows what they are doing – they can do a reasonably difficult integration into a big platform and expect to achieve an advantage early on.

Airbnb does just this, with a remarkable Craigslist integration.

They’ve picked a platform with 10s of millions of users where relatively few automated tools exist and have created a great experience to share your Airbnb listing. It’s integrated simply and deeply into the product and is one of the most impressive ad-hoc integrations.

The impressive part is that this is done with no public Craigslist API! It turns out, you have to look closely and carefully at Craigslist in order to accomplish an integration like this.

Reverse-engineering “Post to Craigslist”

The first thing you have to do is to look at how Craigslist allows users to post to the site. Without an API, you have to write a script that can scrape Craigslist and interact with its forms, to pre-fill all the information you want.

The first thing you can notice from playing around with Craigslist is that when you go to post something, you get a unique URL where all your information is saved. So if you go to https://post.craigslist.org you’ll get redirected to a different URL that looks like https://post.craigslist.org/k/HLjRsQyQ4RGu6gFwMi3iXg/StmM3?s=type.

It turns out that this URL is unique, and all information that goes into this listing is associated with this URL and not with your Craigslist cookie. This is different than the way that most sites do it, where a bunch of information is saved in a cookie and/or server-side and then pulled out. This unique way of associating your Craigslist data and the URL means that you can build a bot that visits Craigslist, gets a unique URL, fills in the listing info, and then passes the URL to the user to take the final step of publishing. That becomes the foundation for the integration.

At the same time, the bot needs to know information to deal with all the forms – beyond filling out the Craigslist category, which is simple, you also need to know which geographical region to select. For that, you’d have to visit every Craigslist in every market they serve, and scrape the names and codes for every region. Luckily, you can start with the links in the Craiglist sidepanel – there’s 100s of different versions of Craigslist, it turns out.

If you dig around a little bit you find that certain geographical markets are more detailed than others. In some, like the SF Bay Area, there’s subareas (south bay, peninsula, etc.) and neighborhoods (bernal, pacific heights) whereas in other markets there’s only subareas, or there’s just the market. So you’d have to incorporate all of that into your interface.

Then there’s the problem of the listing itself – by default, Craigslist works by giving you an anonymous email address which you use to communicate to potential customers. If you want to drive them to your site, you’d have to notice that you can turn off showing an email, and just provide the “Contact me here” link instead. Or, you could potentially fill a special email address like [email protected] that automatically directs inquiries to the right person, which can be done using services like Mailgun or Sendgrid.

Finally, you’ll want the listing to look good – it turns out Craigslist only supports a limited amount of HTML, so you’ll need to work to make your listings work well within those constraints.

Completing the integration is only the beginning – once it’s up, you’d have to optimize it. What’s the completion % once sometime starts sharing their listing out to Craigslist? How can you change the flow, the call to action, the steps in the form, to increase this %? And similarly, when people land from Craigslist, how do you make sure they are likely to complete a transaction? Do they need special messaging?

Tracking all of this requires additional work with click-tracking with unique URLs, 1×1 GIFs on the Craigslist listing, and many more details.

Long story short, this kind of integration is not trivial. There’s many little details to notice, and I wouldn’t be surprised if the initial integration took some very smart people a lot of time to perfect.

No traditional marketer would have figured this out

Let’s be honest, a traditional marketer would not even be close to imagining the integration above – there are too many technical details needed for it to happen. As a result, it could only have come out of the mind of an engineer tasked with the problem of acquiring more users from Craigslist.