Building a personalized notification system for Help A Reporter Out (HARO)

Building a personalized notification system for Help A Reporter Out (HARO)

Have you ever wanted to get your company featured in TIME Magazine, Reuters or Mashable? It could happen through Help a Reporter Out (HARO) and get this media coverage for free by answering HARO requests.

But why spend time going through every HARO query when it can be done automatically with machine learning? This is why we decided to use MonkeyLearn, Slack and Zapier to automate the manual screening of HARO requests.

On this post, we’ll be creating a zap that is able to get HARO queries, send them to MonkeyLearn to be analyzed and notify us via Slack with those relevant queries to our interest and expertise.

Let’s get started!

What is HARO?

Help A Reporter Out is a free PR tool that connects journalists with expert sources. It enables startups and entrepreneurs to connect with press they may not normally have access to by providing tips, stories and expertise.

Journalists, writers and bloggers use HARO for quickly finding expert sources and get the information they need for writing their stories and articles. HARO distributes around 150 requests per day from journalists from top media outlets like Reuters, New York Times, Wall Street Journal, CNN, TIME Magazine, Mashable and many more.

So in short, by using HARO companies get exposure and journalists get content, a win-win for everyone.

How to use HARO?

Using HARO as a source is pretty straightforward, just sign up for free and indicate your areas of expertise. You’ll receive emails from the service three times a day with journalists requests in your chosen categories.

Each query or request contains the topic, journalist name, category, media outlet and deadline:

Haro Query Example

Haro Query Example

If a query is relevant to you and your expertise, just answer the request by sending an email to the published email address (something like

When answering to a query, try to be helpful with the reporter and only answer with relevant insights.

What’s the problem with HARO?

Most queries aren’t relevant

When you sign up to HARO, you can select within your preferences the different industries you are interested in receiving queries:

Haro Preferences

Haro Preferences

The thing is that it's just too broad. I subscribed to receive High Tech queries only but found out that 99% of the requests from HARO were irrelevant to my expertise. I was interested in queries related to machine learning and natural language processing, not queries about bitcoin, drones, robotics, smartphones, dev-ops, cyber-security, surveillance systems or autonomous vehicles.

After a few days of checking my email and not finding relevant requests, I simply stopped checking the HARO emails. I didn’t had the time to go through these emails 3 times a day and it felt I was looking for a needle in a haystack.

Speed is key

Help a reporter out sends their emails 3 times per day: 5:35 am, 12:35 pm,and 5:35 pm (EST) to more than 800,000 expert sources. Once a query is distributed, the HARO reporters are flooded with emails from experts interested in contributing to the story. Answering quickly to a request is key for getting the attention from the journalists and getting published.

Building a personalized notifications system for HARO

I did some research and found many success stories of companies being featured in quality publications from all over the world by using HARO. So I knew there was value in using the service. But I didn’t have the time nor the desire to manually go over the HARO requests every day and quickly answer them on time.

So, I come up with the idea of using machine learning to do the hard work for me. By using machine learning, I can automatically analyze queries from journalists and take action only on those that are relevant to my expertise.

Building the HARO classifier

As I first step for creating this notification system, I trained a text classifier with MonkeyLearn. This classifier will be used to analyze and classify HARO queries into 2 tags:

  • AI & Machine learning: queries from journalists writing stories about artificial intelligence, machine learning and natural language processing.
  • Not relevant: all the other queries that I’m not interested or aren’t relevant for my expertise.

You can’t train a machine learning model without training data, so I looked within my inbox for HARO emails and searched for 10 examples for each tag. I saved these examples on a CSV file, uploaded it to MonkeyLearn and trained the model:

First version of a Haro Classifier.

First version of a Haro Classifier

This machine learning model is far from perfect but it's a good first step and will enable us to move forward. Later on this post we will cover how we can improve it and make it smarter with more data.

Using Zapier for connecting the pieces

Now that we have the ability to analyze HARO requests automatically with our machine learning model, we are ready to move forward and automate the manual screening of HARO requests by using Zapier.

In short, Zapier enables anyone - marketing, support, legal, HR, operations, product - to connect the web apps they use to run their business, without writing code.

Each automation (called a Zap) has one app as the Trigger, where your information comes from and which causes one or more Actions in other apps, where your data gets sent automatically.

So, we’ll create a zap that connects every piece of the puzzle to automate the screening of HARO requests:

  1. Trigger: get HARO requests from an RSS feed.
  2. Action: uses MonkeyLearn to classify HARO queries into AI & Machine Learning and Not Relevant.
  3. Filter: only continue if a HARO query is classified as AI & Machine Learning.
  4. Action: send a private message via Slack notifying about the AI & Machine Learning HARO query.

For creating the zap, you can use this Zapier template:

If you are interested in creating the zap by yourself, you can follow these steps.

Setting up our trigger

The first step for creating our zap is to set up our trigger. We will use HARO2RSS, a free and simple service that enables you to consume HARO queries via an RSS feed (instead of email).

So, we need to select RSS as the Trigger app for our zap and add as the Feed URL in the RSS setup:

Setting MonkeyLearn as an action

As a second step, we need to set up MonkeyLearn to analyze items of the RSS feed using the classifier we previously trained. The first 3 sub-steps are quite straightforward:

  1. Choose MonkeyLearn as an action app,
  2. Choose Classify Text as the action to perform,
  3. Connect/select your MonkeyLearn account.

Now it's time to setup the MonkeyLearn template and test this step:

4. Setup the template by providing the following information:

4.1. Classifier: we need to tell Zapier the name or ID of the classifier that you want to use. Here we will select our HARO classifier.

4.2. Text: we need to indicate Zapier what is the text we want to analyze with MonkeyLearn. We’ll select the Description field from the News Item in Feed. The description field has the query from the HARO request and it's what we’ll analyze to determine if it's a relevant query or not.

4.3. Use Sandbox: we’ll select yes.

5. Finally we need to test this step. Zapier will take a HARO Query from the RSS feed and analyze its description using MonkeyLearn.

Creating the relevancy filter

Zapier enables you to create filters that let you choose if and when your zaps continue running to next steps. Think of them as extra steps that act as traffic cops for your data.

So, as a third step we’ll tell our zap to only continue if the result of the MonkeyLearn analysis is AI & Machine Learning:

  1. Let’s add a step to our zap,
  2. Then select Filter by Zapier and choose Only continue if.
  3. Then, we need to select the field that we’ll be using for setting our filter condition by selecting Level1 Label from the Classify Text step.
  4. We’ll setup our condition criteria by selecting text contains and AI & Machine Learning.
  5. Finally, we’ll skip the test so we can continue with the creation of our Zap.

Basically, what we are doing here is telling our zap to only continue if the analysis made by MonkeyLearn (Level1 Label) returns the tag we are interested in (AI & Machine Learning). The zap will stop immediately if this requirement isn’t met.

Sending a notification via Slack

The final step of our zap consists in creating the notifications system that will alert us about relevant HARO queries. We’ll use Slack to send us a message whenever the AI & Machine Learning filter condition is met:

  1. Let’s add a new step.

  2. Select Slack as the app.

  3. Choose Send Direct Message as the Slack action to perform on this step.

  4. Set up the Slack Message:

    4.1. Username: specify your Slack username so you can receive these messages from the Slack bot.

    4.2. Message Text: specify the text of the Slack message. Here we’ll add the following data from the New item in Field step:

    • Title,
    • Raw Author Email
    • Publication date
    • Query description.

    4.3. Leave the rest of the fields with the default value.

  5. Finally we need to test this step. If the test is successful, Zapier will send us a private message with a HARO Query.

That’s it! Our zap is ready, we just need to turn it on so we can start receiving notifications via Slack of relevant HARO requests:

Slack alert on a relevant HARO request

Slack alert on a relevant HARO request

Improving our classifier

Although our HARO classifier is a good first version for getting us started, there is still plenty room for improvement. Machine learning is all about the quantity (and quality) of training samples, so the more data we give to our algorithm, the smarter it will be. We only used 20 samples for training our classifier; we can get more accurate predictions if we add more training data and retrain our model.

Now that we have our Zap up and running, MonkeyLearn will automatically analyze HARO requests as soon as they are published. For improving our classifier we can use Inbox Samples, a feature within MonkeyLearn that saves the data analyzed by your models, so you can easily add them as new training samples and improve them over time.

We suggest going through these Inbox Samples from time to time and add them as new training samples to your HARO classifier, so you can get more accurate predictions using new data.


We wanted to test the effectiveness of using this notification system, so we reached out to 2 HARO requests that our zap alerted us via Slack. To our surprise, not only both writers responded but also published our thoughts and comments on their articles.

The first writer published a post on Capterra blog about how SMEs can benefit from machine learning and artificial intelligence. The second is a publication on Flarrio where experts discuss the current and near future state of Deep Learning.

Two out of two, not bad!


This is a clear example of how non-technical users can use machine learning to automate a manual workflow. Why spend time screening HARO requests if machine learning can do the heavy lifting for you?

You can do so much more with MonkeyLearn by connecting it to other apps you use like Asana, Delighted or Intercom to automate the tedious tasks in your workflow and save time.

Have any questions or feedback about our integration with Zapier? Please let us know in the comments!

Federico Pascual

September 6th, 2017

Posts you might like...

MonkeyLearn Logo

Text Analysis with Machine Learning

Turn tweets, emails, documents, webpages and more into actionable data. Automate business processes and save hours of manual data processing.

Try MonkeyLearn
Clearbit LogoSegment LogoPubnub LogoProtagonist Logo