Strategies to monitor an RSS Feed

I follow a few RSS feeds in DTP but I can’t keep up and it is painful to manually scan so many titles once they accumulate. What are some strategies to automatically monitor and prune a feed? An AppleScript solution seems likely. Does DevonAgent Pro have something near to this?


  1. Use URL to retrieve full text of the feed item (originals are abbreviated)
  2. Keep the fetched item if it contains a match to any of a list of keywords / phrases. Otherwise delete.
  3. Best way to store the keyword list, it will need periodic updating (e.g. within or outside the script).
  4. Best case: the keyword is the search string, can contain DTP boolean operators
  5. Preserve the matching item by moving to a dedicated group outside the feed.

Smart rules (triggered On News) of DEVONthink 3 can be used to automatically e.g. delete, open, mark or process news.

Thanks for this suggestion. I am having some trouble getting the Smart Rule to work. I am testing the rule with strings that I know are present within the group of existing news items to be processed. I can’t tell if my logic is wrong or the scan syntax is wrong. Maybe both :slightly_frowning_face:.


  1. If the trigger is On News, can I still use the Apply Rule option to force the rule to run (testing purposes)? I also tried the On Demand trigger with Apply Rule, but it also fails.
  2. I have many search strings. Can I use multiple Scan Text items in the rule to make it behave like a Case … End Case programming block? e.g. proceed to the action statement after first successful scan match
  3. If I must use a single Scan Text item, is there a length limit for a regular expression value?
  4. I am using a regular expression in Scan Text: example “heart|cardiac|cardiomyocyte”, with the vertical bar OR operator. It isn’t working, items that should match and be moved to another group are not moved.

Yes, that’s still possible if the items match the conditions.

That’s an action (in this case the result is usually used in other actions afterwards), not a condition. E.g. use a condition like Content matches …

Ok. Because a brand new Rule doesn’t have a Condition, I didn’t realize I needed to add one. So now I have ‘Content matches’ in the flow. Let’s see if this can work with many match strings…

Success. And discovering the nuances. Thx.

Glad to hear it!

Is really awesome that the match string can contain any of DTP’s boolean operators and wildcards.

Indeed, booleans and wildcards are available when using an attirbute with a matches operator.