What's the best way to get all content at or below a group using an In-Process Service?

I'm creating an In-Process plugin (INavigable) that provides an endpoint for custom RSS feeds (e.g. content filters specified in URL) for backward compatibility from a similar implementation on another non-Telligent community platform.  The backward compatibility part is key because it's actually integrated with a number of the customer's products.

So, if I had a site structure like this:

  • Products (group)
    • Product Category 1 (group)
      • Product 1-A (group)
        • Discussions 
        • Blog
        • Files (group)
          • Media Gallery 1
          • Media Gallery 2
        • Feature Requests
        • Documents (wiki)

      • Product 1-B (group
      • Product ...
    • Product Category 2 (group)
      • Product 2-A
        • ...
      • Product 2-B
        • ...
      • Product ...

I'm trying to figure out a way to get {numItems} pieces of content from the leaf nodes (applications) given a higher-level group node (e.g. Product Category 1) and order the results by date created in descending order.  I'd also like to be able to further filter content by {tags} or {contentType}. 

Is there an In-Process API service (or perhaps more than one) that can accommodate that?  

Thanks!