How we got a dozen launch-day write ups with a little JavaScript, Mechanical Turk, and the Google News API. Code included.
That said, lets hack some press…
Getting press is daunting for just about every founder. Who do you talk to? How do you find them? What do you pitch them? All questions I spend hours thinking about…for…every…project.
But with a little creativity, and a little hacking, getting press is easier than I thought. Easy enough to get a recent product covered by…
Background
Some friends and I were launching ThingsWeStart, a “Crowdfunding Aggregator” – imagine all of the projects on Kickstarter, Indiegogo, etc. displayed on a map, so you could support projects near you.
Something this badass deserved a press push…
Step #1 – Find the Right Reporters
The first step was to find reporters who might cover us. That started with a Google News search for “Kickstarter”.
This is a very different approach than listing all possible news outlets and submitting tips to them. Instead I was personally targeting individual reporters, who already demonstrated interest in our subject matter.
Want to follow along? Search Google News for articles related to your company’s value proposition.
Step #2 – Download their Articles
Now I had some articles, but what I really needed was the reporters’ contact info. Instead of searching through each story on my own, which would take forever, I wanted to created a spreadsheet of them so I could farm out the work.
Luckily, Google News has an API which makes that relatively easy – but there’s no sense in you reinventing the wheel. Please, use my code:
Step #3 – Collect their Contact Info
With the list of articles in hand, I wanted to collect the names and email addresses of each reporter – so I could personally tell them about our launch.
Thing is, I didn’t want to do that work myself – it’s boring. Instead, I asked the good folks on Mechanical Turk (mTurk) to do it for me…for $.03 per email address! If you’re not familiar with mTurk, I can’t recommend it enough.
To get started, I created a HIT template:
Then I uploaded a CSV (the spreadsheet you downloaded in Step #2) to mTurk:
…and mTurk automatically combined the two to create a HIT for each article in the CSV:
Rather than investing two weeks digging for contact info for 700 articles, dozens of people delivered me results within a couple days.
Important: I suggest you turn off requiring Master Turkers. You’ll have to babysit the results, and block Turkers who aren’t giving you valid results, but you’ll likely find more people willing to help.
Following along? Create a new HIT on mTurk and use this HTML as the basis for your template.
Step #4 – Progress Monitoring
When I did this, I saw a large number of HITs completed within the first few days. After that, results started to drop off. I think my HITs eventually got pushed to the bottom of the stack.
To counter that, every couple days I would cancel my incomplete HITs, and relaunch any articles I didn’t have contact information for.
Within a week, I had contact information for 350 reporters who had written articles about Kickstarter.
Step #5 – Build a Press Kit
The most important rule I’ve found when working with reporters is:
These poor folks are under crazy deadlines, have to produce multiple stories per day, and are inundated with requests for coverage. The more we can help them out by writing our story for them, the better off we’ll both be. Win-win.
Here’s the press kit we prepared for our launch. It includes:
- Description of the problem we solve
- Screenshots
- Beautiful Infographics by Stephanie Haller (be sure to include some kind of image)
- Bio of the team
- Why we’re doing this
- Why we’re different than existing solutions
Step #6 – Prime the Pump
With contact information in hand, and a killer press kit, it was time to reach out to the reporters. 5 days before launch, I gave them a heads up we were coming, but no access to our press kit:
A couple days later, I gave them access to our full press kit, but told them not to write about us until launch day:
On launch day, I told them to have at it:
Important: embargoes are essential.
It’s important to tell reporters that your content is “embargoed” until you officially launch, which means they’re not allowed to write about you until your launch date. If you don’t mention this, one of these folks is going to jump the gun and publish your story early. That in turn, will make other reporters less interested in covering you, since it’ll be old news by then.
Some news outlets/reporters hate embargoes. If you really want their press, only tell them about your launch the day before you go live.
Step #7 – Watch the Ink Roll In!
Once we launched we simply setup some Google Alerts and Twitter searches, and watched the press roll in.
Hack Metrics
- Hours spent: 40 (includes time coming up with the hack, writing the code, etc. Should take you less.)
- Money spent: 350 email addresses x $0.03/address = $10.50
- PR pros hired: 0
- Total write-ups: 13
- Traffic generated: ??? Remember when GoDaddy’s DNS service went down? That was the day we launched :)
Following along? I’d love to hear if you’ve tried this, or other press hacks!
Final Tips:
- Play around with pricing. If you’re in a hurry, you’ll probably want to pay more than $.03/article
- Block turkers who submit obviously fraudulent contact info (you won’t have to pay for those)
- I’m stoked, quite a few people are finding this article useful! Unfortunately, that means there probably lots of HITs on MTurk right now trying to get contact info for journalists. That means, you may need to either pay more, or wait a little while before trying it yourself.
TL; DR
The Google News API and Mechanical Turk can be combined to get lots of press for your launch.
What’s Next?
Subscribe via Email or RSS for more hacks and in-depth discussions on getting press, validating marketing channels, and reaching your customers.
First time to Customer Development Labs?
Check out our most popular experiments:
- Interviewing 100 customers in 4 hours with MTurk
- You’ve interviewed customers. Now what?
- Lean Recruiting: Testing a 2-sided market
Hi Justin, thanks for a great article! I was going through the HIT template and the HTML you provided, and noticed the Linksy.me email guesser link isn’t live anymore. Would you know of an alternative to use? Thanks again!
7/10/2016 – I just found this site via a book referral and thought I’d give it a go. Unfortunately neither running the github code on my local machine or the live link (http://press.customerdevlabs.com/ ) work any longer.
Yeah, as the site mentions now, Google News api is deprecated.
Hey Justin,
The News Downloader is not working for me at all. No matter what I search no articles come up. Tried on Safari and Chrome.
Mark
Yeah, as the site mentions now, Google News api is deprecated.
Hi, Justin! I think your method is genius.
Do you think the price point and customer conversion Selfstarter test you did can also work for physical products? If so, what do you think I can give them in exchange for a free product? Because unlike in an app, there is an actual cost to producing every physical product and I don’t think I can just give away one for every customer that will unknowingly participate in my price point and marketability test.
Hope you can answer my question. Thanks!
Absolutely it will work – that’s literally the basis of every Kickstarter campaign.
If you don’t end up creating the thing because there wasn’t enough demand, you can tell your customers that there simply wasn’t demand but offer to help solve their problem in another way (e.g. offer a call giving them 1-on-1 advice or point them to a different tool/resource).
Alternatively, you can charge everyone who buys something and then produce a limited number of the physical goods you’re selling, possibly at a loss.
End of the day, people are going to buy your good to solve a problem. By the time you’re doing interacting with them, whether you take their money or not, ensure you’re helping them solve their problem and you’ll going a long way towards creating great relationships with your customers.
Justin
Has the something changed that mean that the github file doesn’t work any more. I can’t for the life of me get any search results.
Thanks for the question Matthew. Google has deprecated support for their News API so it’s been unreliable lately. Best bet is to try again in a day or so. It seems to have work every once in a while.
If anyone knows of an alternative News API and wants to incorporate it into the tool, I’d be happy to accept pull-requests.
Cheers,
Justin
Hey Justin – Your article is absolutely terrific. Anyway you could share that press kit you linked to. Unfortunately, the link is not working for me.
Here you go Brandon: https://kickmapper.wordpress.com/2012/09/05/launching-mon-sept-10th-2012/
Does anyone know another company similar to mTurk. I’m based in Europe, mTurk is only allowed from the US. Hope to hear.
Great hack Justin!
Which app did you use to do A/B testing of your Selfstarter campaign?
If I recall, I either ran two instances at once and randomly sent one set of traffic to one server and one set of traffic to another.
Either that or I ran it for some amount of time with one price point, and another amount of time with another price point. If I did that latter, I wouldn’t recommend doing that again. There are much better ways to make this happen.
In fact now, I’d recommend using Instapage (https://instapage.com/) and Celery (http://trycelery.com) to accomplish a very similar goal. It wouldn’t have the auto-updated funding progress bar, but you can build something great looking, with A/B testing of credit card based pre-orders in less than an hour.
All the best,
Justin
Did you mean to say turn OFF the Master Turks requirement?
Just wondering, I posted a CSV file with 4000 articles, no hits in a few hours.
Any help is appreciated.
K
You might try raising your price. This hack has been pretty popular so folks may not be willing to do this work for as little as they once were.
Definitely remove the requirement for masters. The masters program is simply a marketing ploy by Amazon designed to squeeze a little extra commission from you. You can get better results, and pay less, by setting your requirements to “Total Approved HITs is not less than 5000” combined with “HIT Approval Rating is not less than 98%”.
Great article and hack!
But only bad thing is that the mturk doesn’t provide service outside US :(
Have now downloaded my files but no idea how to get the email addresses now.
Any recommentations from your side?
Thx
Hermann
I have run quite a few projects on Mechanical Turk asking workers to find email address. Here are some best practices I have discovered:
1. Include a comments box where workers can leave you feedback. This may be anything from “Found email address by clicking on icon under profile pic” (which will help you verify results faster) to “Author is deceased”.
2. Include instructions on what to do if the information can’t be found. For example, the article may be posted by “AP Press”, “CNN News” or not link to an article at all. Workers need to know how to handle these links.
3. In order to get good results, pay a fair rate. I pay $0.14-$0.18 per contact. No one is going to do these for $0.03 cents each. If you look on Mechanical Turk, there are hundreds of these tasks at $0.03 that are sitting there and not being completed. Workers consider a fair rate to be anything above $6/hour (which is $0.10 per minute).
4. Workers use this website https://turkopticon.ucsd.edu/ to rate requesters. If you reject work or pay too little, they will report it here and then no workers will complete your task.
I’m pumped about this post! I think it could have awesome benefits for locally focused businesses as well. My only problem is figureing out how to edit the source code to include the locations I want (DC, MD, VA,). This may be a noob question but I was hoping someone could tell me how to do this.
This is for a professional application so a speedy response would be super helpful.
Thanks!
Hey Sam,
That should do the trick, or get you real close. If you need any additional help, someone from elance or oDesk could get you squared away in less than an hour.
Justin
Worked great man. Thanks a lot! This is a great tool for our PR team.
This is awesome! Thanks so much. One question though, how do you cancel the incomplete HITS and then rerun it with only those?
If I recall, I…
Cheers,
Justin
Fantastic post here – this is pretty much every aspect of online marketing – I’ve learned since entering the trade – packaged into a clearly and effectively executed project. Thanks for the knowledge and learnings here!
All I will say is, brilliant. Thanks for sharing this hack and the resources you used. So hepful.
Pure genius! Really love it, thanks heaps!
One Q though, how do you change the search locations in your “News Downloader”?
I read through this page and couldn’t find anything, as well as a look through the source code for the page and couldn’t see the ability to edit a location. Unless it’s one of the javascripts in the code?
Would love to hammer this in Australia ;-) Many thanks!!
Thanks Ben!
The code you’re looking for is here: https://github.com/JustinWi/NewsDownloader/blob/gh-pages/js/index.js. Just replace the list of cities with your own. Note, the “CITIES_MAX” variable defines how many cities to look through in your list.
Best of luck,
Justin
Thanks heaps for the quick reply. I downloaded the files and got them to work with the normal index.js
However, when I enter in Australian capitals I can’t get the it to search at all. When I click “Search” nothing happens. Then, I switch back to the original .js and it works fine (obviously my poor editing abilities). Below is the only section I edited, would really appreciate your feedback?
const CITIES_MAX = 5;
const cities = [“Melbourne, Victoria”, “Sydney, New South Wales”,
“Brisbane, Queensland, “Perth, Western Australia”
“Hobart, Tasmania”,
];
const states = [ “VIC”, “QLD”, “NSW”, “TAS”, “WA”, ];
Also, I have tried “Melbourne, Australia”, “Sydney, Australia” etc… but no luck.
BIG thanks Justin :-)
Hi Ben, many thanks for putting this together. Any advice on how to change the location in index.js for non-US locations? What is the terminology used, especially in countries without states?
Hey Pawel, if I recall, the location criteria stopped working. I think I ended up adding the location to the actual search term criteria.
So if you’re looking for “fitness app” search for “fitness app london”, “fitness app paris”, etc.
Having issues when it comes to downloading the articles. Is this a recent issue or am I doing something wrong? I am on a Mac by the way.
Working for me on Windows + Chrome. Might want to try a different browser or copy/paste the table into a spreadsheet or better yet.
If your game, would be awesome if you grabbed the code and fixed it!
Good luck,
Justin
I’m really impressed, you found a smart way to pitch your start-up at a fair price.
Thanks Justin. I hacked your hack a bit by using MuckRack ($99/Month, 30 Day Trial). I found that the Google News API creates a lot of junk links if you’re searching broader topics/keywords. By using MuckRack, I was able to search reporters by keywords and create a media list that gave me the name, publication and twitter handle (plus a lot of other stuff) in an excel. Using a modified version of your template and the .csv from google news, I left only the e-mail field and url reference link open for submission. This allowed me to target very specific journalists and avoid duplicate/unrelated links. It also allowed me to raise my reward to .5 because I was only searching for 100 journalists instead 700. I got 80% of my answers overnight!
Thanks again. I would have never thought to use MT without the post.
Example pic:
-Corwin
Very cool!
Have you considered broadening to include bloggers?
The probleme is not to find the email adress of journalist. The real challenge is to find the subject in your company that will interest their readers…
This is great. I am in the process of gearing up to our launch, and this could have come in more handy. Thanks for the great tips and tricks – so useful!
Nice hack. We did almost the same for the launch of http://mention.net but using our API instead of Google News. I did a trending SlideShare presentation about Newsjacking that worked really well to for us: http://www.slideshare.net/Clementdelangue/newsjacking-101-get-media-coverage-for-startups
Yo could just sell that as a PR service :)
I am so torn about this. I really love 80% of this methodology. I think using Turk to acquire emails is really fantastic and I may run a few similar experiments myself. I think that mass emailing is a bit tricky though. The first email you sent was fairly personal and I got the sense that you were trying to be as genuine as possible, but I’ll be honest, I personally would have marked it as a spam. I don’t know your analytics so I can’t say whether you’re right or wrong. I always fear having my domain associated with spam so I’m very careful about how I run my email marketing programs. Again…this is very impressive and please know I appreciate the transparency here. Just making some observations that might help others think through their strategy in the future.
I wrote a bit about a more severe case here: https://medium.com/how-to-use-the-internet/45dbd26ae4f2
Hey Len, thanks for your thoughts. I hear you, may be too abrasive for some – and being associated with SPAM is definitely something to avoid.
I could see folks using a similar technique to target a smaller audience of the more influential authors, and writing personal emails to each of them. That may be the best of both worlds.
Justin
hi Justin,
Great post, thank’s for sharing the tips !
While testing your code, it seems to be very difficult to change the written language (french).
Tested to change “ned” parameter without revelant result.
Tested to add the following code with no luck :
newsSearch.setRestriction(google.search.Search.RESTRICT_EXTENDED_ARGS,
{ “lr” : “lang_fr”});
Do you have an idea ?
Sorry, haven’t played around with different languages at all. I do know the EXTENDED_ARGS weren’t working for me. If you’re up for it, I’d love to hear how this work with Bing’s News API.
Maybe it’s better and supports better language and geographic queries! If you try it, I’d love to know.
Hey Justin, thanks so much for this generous amount of info: I’m trying your method to extract authors from a CSV dump of Google News articles, but I’m stuck on mTurk: after 15 hours there’s been zero response to my mTurk post. I’ve set it as $0.03 per HIT, with 1 minute per HIT and 12 hour approval time: is this similar to what you used?
Glad you’re giving it a shot ed – and thanks for asking. Couple things to keep in mind:
Best of luck, and please, keep me posted!
Cheers,
Justin
Thanks so much, Justin: I’ve re-created the post with Master Turkers disabled (enabled by default and Amazon warn about disabling this) and have increased price from $0.03 to $0.05. Will certainly keep you posted! Thanks again.
This looks great Justin.
Unfortunately I wasn’t able to generate any search results from Step 1 at http://press.customerdevlabs.com/ – is this working at the moment?
Sorry about that James. It just worked for me. Can you let me know what browser and search criteria you’re using – as well where it’s choking?
Thanks,
Justin
Hi Justin – it worked for me a few hours ago, but I tried using it again just now with Chrome and IE 10 and wasn’t able to generate search results. Tried search criteria of google competitors to test it, then hitting enter as well as clicking on the search button in Step 1 and then nothing happened.
Lame…if you know how to use Chrome’s debugger (F12) would love to see what the console says. No repro on my end…
Who else is having this problem?
Same problem here…tried Firefox and Chrome.
Great stuff Justin.
Looove me some mTurk. I was a worker years back to make some extra cash in grad school, and have been very happy in my role as a ‘requester’ now. Quality control can be a tedious part of the process at first though — any nightmarish experiences for you? With all your fields being required, is there any worry of people stuffing with fake contact info? Also, do you pay the people who try but cannot find any details?
Needless to say, you’ve piqued my interested here :D Feel free to get ahold of me on twitter instead
Thanks Kate – great to hear from a former worker! I did have some people put junk in the fields, but I just rejected their HITs and banned them from doing work for me. When I did that, the HITs were automatically relaunched and I didn’t have to pay for anything.
No, I didn’t pay people who tried but weren’t able to find contact info. Not a bad idea though.
Awesome write up, thanks for sharing! Curious, what email client did you use to blast out the emails? Did you run into any trouble w/ spam filters?
Thanks! We used Mailchimp and we tried to make the emails look personally written by mentioning by name (and link) the article that got us to that author. That said, we had an unsubscribe link in the form of “Don’t ever want to hear about ThingsWeStart again?”
No data on whether or not the messages landed in the SPAM bucket, but considering the interest we got, my gut says it wasn’t too big of a problem.
Thanks JustinWi! This is outstanding. Funny, I read this shortly after the Forbes article on ‘Why Most Startups Don’t ‘Get’ Press’. Most = ones that do not read this post.
Love the Hack.
Note, it is a gift that keeps on giving — not just for launch day.
Key ingredient for sustainment is having your company/app produce data and insights that reporters could use.
My Example: http://www.brandinsights.com/ (we score a top press hit every week).
Justin, in your case the commentary on kickstarter trends can serve that same type of info (you could do industry by industry, tech trends, movie trends, cooking appliance trends, etc. etc.)
Interesting idea, but we ultimately shut the Kickstarter project down. We didn’t have enough interest from customers to turn it into something sustainable. I’ve found press helpful in very specific scenarios, and I love the idea of sustainably generated press, but we weren’t solving a big enough pain for it to matter.
WOW! Super thanks for this post! What sites did you use to test your pricing? Unbounce?
I love the idea of using coding skills to bypass the traditional PR tactics.