      state = iterate(posts, state)
      {:noreply, state}
   end
+
+  def matches_tag_rule?(_, []), do: true
+
+  def matches_tag_rule?(post, list) when is_list(list)  do
+    tags_set = Enum.into(post["tags"], MapSet.new)
+    filter_set = Enum.into(list, MapSet.new)
+    !MapSet.disjoint?(tags_set, filter_set)
+  end
+
 
   def filter_by_created(posts, %{only_after: "", only_before: ""}) do
     posts

     %{account_name: account_name, current_cursor: current_cursor,
      client_mod: client_mod, filters: filters} = state
     {:ok, posts} = client_mod.get_discussions_by_author_before_date(account_name, current_cursor, utc_now_str, 100)
     posts = posts
      |> Enum.map(&parse_json_metadata/1)
      |> Enum.map(&extract_put_tags/1)
      |> filter_whitelisted(filters.tags.whitelist)
      |> filter_blacklisted(filters.tags.blacklist)
      |> filter_by_title(filters.title)
      |> List.flatten
      |> filter_by_created(filters.created)

     end
  end

end
