diff --git a/src/ContinuousManager.php b/src/ContinuousManager.php
index fe0c73c..04ec72e 100644
--- a/src/ContinuousManager.php
+++ b/src/ContinuousManager.php
@@ -3,8 +3,11 @@
 namespace Drupal\tmgmt;
 
 use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\tmgmt\Events\ShouldCreateJobEvent;
 use Drupal\tmgmt\Entity\Job;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\tmgmt\Events\TmgmtEvents;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
 /**
  * A service manager for continuous jobs.
@@ -40,6 +43,11 @@ class ContinuousManager {
   protected $translatorManager;
 
   /**
+   * @var \Symfony\Component\EventDispatcher\EventDispatcherInterface
+   */
+  protected $eventDispatcher;
+
+  /**
    * Constructs a new ContinuousManager.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
@@ -50,12 +58,15 @@ class ContinuousManager {
    *   The config factory.
    * @param \Drupal\tmgmt\TranslatorManager $translator_manager
    *   The translation manager.
+   * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher
+   *   The event dispatcher service
    */
-  public function __construct(EntityTypeManagerInterface $entity_type_manager, SourceManager $source_plugin_manager, ConfigFactoryInterface $config_factory, TranslatorManager $translator_manager) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, SourceManager $source_plugin_manager, ConfigFactoryInterface $config_factory, TranslatorManager $translator_manager, EventDispatcherInterface $event_dispatcher) {
     $this->entityTypeManager = $entity_type_manager;
     $this->sourcePluginManager = $source_plugin_manager;
     $this->configFactory = $config_factory;
     $this->translatorManager = $translator_manager;
+    $this->eventDispatcher = $event_dispatcher;
   }
 
   /**
@@ -119,7 +130,12 @@ class ContinuousManager {
     // Check if a job item should be created.
     $most_recent_job_item = $job->getMostRecentItem($plugin, $item_type, $item_id);
     $should_create_item = $this->sourcePluginManager->createInstance($plugin)->shouldCreateContinuousItem($job, $plugin, $item_type, $item_id);
-    if ($should_create_item) {
+
+    // Some modules might want to filter out candidates for items.
+    $event = new ShouldCreateJobEvent($job, $plugin, $item_type, $item_id, $should_create_item);
+    $this->eventDispatcher->dispatch(TmgmtEvents::SHOULD_CREATE_JOB, $event);
+
+    if ($event->shouldCreateItem()) {
       if ($most_recent_job_item) {
         // If the most recent job item is active do nothing.
         if (!$most_recent_job_item->isAborted() && !$most_recent_job_item->isAccepted()) {
diff --git a/src/Events/ShouldCreateJobEvent.php b/src/Events/ShouldCreateJobEvent.php
new file mode 100644
index 0000000..e214230
--- /dev/null
+++ b/src/Events/ShouldCreateJobEvent.php
@@ -0,0 +1,132 @@
+<?php
+
+namespace Drupal\tmgmt\Events;
+
+use Drupal\tmgmt\Entity\Job;
+use Symfony\Component\EventDispatcher\Event;
+
+/**
+ * Implementation of SHOULD_CREATE_JOB event.
+ *
+ * This class recives the same arguments as
+ * \Drupal\tmgmt\ContinuousSourceInterface::shouldCreateContinuousItem().
+ */
+class ShouldCreateJobEvent extends Event {
+  /**
+   *  Continuous job object.
+   *
+   * @var \Drupal\tmgmt\Entity\Job
+   */
+  protected $job;
+
+  /**
+   * The plugin name.
+   *
+   * @var string
+   */
+  protected $pluginName;
+
+  /**
+   * The item type.
+   *
+   * @var string
+   */
+  protected $itemType;
+
+  /**
+   * The source item id.
+   *
+   * @var string
+   */
+  protected $itemId;
+
+  /**
+   * Wheter or not the job should be created.
+   *
+   * @var bool
+   */
+  protected $shouldCreateItem;
+
+  /**
+   * EntityUsageEvents constructor.
+   *
+   * @param \Drupal\tmgmt\Entity\Job $job
+   *   Continuous job.
+   * @param string $plugin_name
+   *   The plugin name.
+   * @param string $item_type
+   *   The source item type.
+   * @param string $item_id
+   *   The source item id.
+   * @param bool $should_create_item
+   *   Whether or not the item should be created.
+   */
+  public function __construct(Job $job, $plugin_name, $item_type, $item_id, $should_create_item) {
+    $this->job = $job;
+    $this->pluginName = $plugin_name;
+    $this->itemType = $item_type;
+    $this->itemId = $item_id;
+    $this->shouldCreateItem = $should_create_item;
+  }
+
+  /**
+   * Gets the job object.
+   *
+   * @return \Drupal\tmgmt\Entity\Job
+   *   The Job object.
+   */
+  public function getJob() {
+    return $this->job;
+  }
+
+  /**
+   * Gets the plugin name.
+   *
+   * @return string
+   *   The plugin name.
+   */
+  public function getPluginName() {
+    return $this->pluginName;
+  }
+
+  /**
+   * Gets the item type.
+   *
+   * @return string
+   *   The item type.
+   */
+  public function getItemType() {
+    return $this->itemType;
+  }
+
+  /**
+   * Gets the item id.
+   *
+   * @return string
+   *   The item id.
+   */
+  public function getItemId() {
+    return $this->itemId;
+  }
+
+  /**
+   * Gets the flag wheter the item should be created.
+   *
+   * @return bool
+   *   Whether or not the item should be created.
+   */
+  public function shouldCreateItem() {
+    return $this->shouldCreateItem;
+  }
+
+  /**
+   * Sets the flag wheter or not the job should be created.
+   *
+   * @param bool $should_create_item
+   *   A flag stating wheter or not the job should be created.
+   */
+  public function setShouldCreateItem($should_create_item) {
+    $this->shouldCreateItem = $should_create_item;
+  }
+
+}
diff --git a/src/Events/TmgmtEvents.php b/src/Events/TmgmtEvents.php
new file mode 100644
index 0000000..687bfea
--- /dev/null
+++ b/src/Events/TmgmtEvents.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace Drupal\tmgmt\Events;
+
+/**
+ * Contains all events thrown by Tmgmt.
+ */
+final class TmgmtEvents {
+
+  /**
+   * SHOULD_CREATE_JOB event occurs when determining if a job should be created.
+   *
+   * @var string
+   */
+  const SHOULD_CREATE_JOB = 'tmgmt.should_create_job';
+
+}
diff --git a/src/Tests/TranslatorTest.php b/src/Tests/TranslatorTest.php
index b13dddc..1f178f7 100644
--- a/src/Tests/TranslatorTest.php
+++ b/src/Tests/TranslatorTest.php
@@ -202,4 +202,44 @@ class TranslatorTest extends TMGMTTestBase {
     $this->assertEqual($job->getTargetLangcode(), 'pt-pt');
   }
 
+  /**
+   * Test tmgmt events.
+   */
+  public function testTmgmtEvents() {
+    $translator = parent::createTranslator();
+    // Enable Article source item for continuous job.
+    $this->createContentType(['type' => 'article']);
+
+    // Continuous settings configuration.
+    $continuous_settings = [
+      'content' => [
+        'node' => [
+          'enabled' => 1,
+          'bundles' => [
+            'article' => 1,
+          ],
+        ],
+      ],
+    ];
+
+    $continuous = $this->createJob('en', 'de', 0, [
+      'label' => 'Continuous job',
+      'job_type' => 'continuous',
+      'continuous_settings' => $continuous_settings,
+    ]);
+    $continuous->translator = $translator;
+    $continuous->save();
+
+    // Test that SHOULD_CREATE_JOB event works.
+    $node = [
+      'type' => 'article',
+      'langcode' => 'en',
+      'title' => 'Testing SHOULD_CREATE_JOB event'
+    ];
+
+    $this->createNode($node);
+    $this->drupalGet('admin/tmgmt/job_items?state=All&source_language=All&target_language=All&job_type=All');
+    $this->assertNoText('Testing SHOULD_CREATE_JOB event');
+  }
+
 }
diff --git a/tmgmt.services.yml b/tmgmt.services.yml
index d275e60..0e139be 100644
--- a/tmgmt.services.yml
+++ b/tmgmt.services.yml
@@ -7,7 +7,7 @@ services:
     parent: default_plugin_manager
   tmgmt.continuous:
     class: Drupal\tmgmt\ContinuousManager
-    arguments: ['@entity_type.manager', '@plugin.manager.tmgmt.source', '@config.factory', '@plugin.manager.tmgmt.translator']
+    arguments: ['@entity_type.manager', '@plugin.manager.tmgmt.source', '@config.factory', '@plugin.manager.tmgmt.translator', '@event_dispatcher']
   tmgmt.cart:
     class: Drupal\tmgmt\JobItemCart
   tmgmt.queue:
diff --git a/tmgmt_test/src/EventSubscriber/TestTmgmtEventsSubscriber.php b/tmgmt_test/src/EventSubscriber/TestTmgmtEventsSubscriber.php
new file mode 100644
index 0000000..d89bd09
--- /dev/null
+++ b/tmgmt_test/src/EventSubscriber/TestTmgmtEventsSubscriber.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace Drupal\tmgmt_test\EventSubscriber;
+
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\tmgmt\Events\ShouldCreateJobEvent;
+use Drupal\tmgmt\Events\TmgmtEvents;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+/**
+ * Testvent subscriber for tmgmt events.
+ */
+class TestTmgmtEventsSubscriber implements EventSubscriberInterface {
+
+  /**
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
+   */
+  protected $entityTypeManager;
+
+  /**
+   * GloballinkTmgmtEvents constructor.
+   */
+  public function __construct(EntityTypeManagerInterface $entity_type_manager) {
+    $this->entityTypeManager = $entity_type_manager;
+  }
+
+  /**
+   * Do not add the job if we have a filter match.
+   *
+   * @param \Drupal\tmgmt\Events\ShouldCreateJobEvent $event
+   *   The event object.
+   */
+  public function onShouldCreateJob(ShouldCreateJobEvent $event) {
+    $job = $event->getJob();
+    $item_type = $event->getItemType();
+    $item_id = $event->getItemId();
+
+    // Filter out content.
+    if ($event->getPluginName() == 'content') {
+      $storage = $this->entityTypeManager->getStorage($item_type);
+      $entity = $storage->load($item_id);
+      if ($entity->label() == 'Testing SHOULD_CREATE_JOB event') {
+        $event->setShouldCreateItem(FALSE);
+      }
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getSubscribedEvents() {
+    $events[TmgmtEvents::SHOULD_CREATE_JOB][] = ['onShouldCreateJob'];
+    return $events;
+  }
+}
diff --git a/tmgmt_test/tmgmt_test.services.yml b/tmgmt_test/tmgmt_test.services.yml
new file mode 100644
index 0000000..369274d
--- /dev/null
+++ b/tmgmt_test/tmgmt_test.services.yml
@@ -0,0 +1,6 @@
+services:
+  tmgmt_test.should_create_job:
+    class: Drupal\tmgmt_test\EventSubscriber\TestTmgmtEventsSubscriber
+    arguments: ['@entity_type.manager']
+    tags:
+    - { name: 'event_subscriber' }
