My first post here. I usually prefer lurking, browsing through posts that have some sort of story or continuity, so the e621 pools are pretty neat <3. Though of course we all have our own tastes, and finding pools that match those is a little annoying. Using inpool:true works fine of course, but then you gotta wade through tons of pools you've already seen before and work out which posts are all in the same pool etc, also annoying.
So I spent a weekend when I could have been browsing, instead building a thing to help me find pools I liked. Initially just as a CLI tool coz I hate frontend and I'm lazy, but while searching for something that could do this already (there didn't seem to be any), I did see a few feature requests around for one.
Fine, I decided. I put on my big boy pants, spent another day or two hacking out a bit of a kludge of an API, threw together a horribly simple frontend for it, and dumped it on heroku.
I present to you my simple and naive frankenstein, the e621 Pool Tag Searcher ( https://e621pts.herokuapp.com/ ).
You give it some tags (real tags, no filtering/ordering or whatever, doesn't know about aliases or anything atm) you want. It'll find pools that contain some posts with at least one of those tags. That is, if you specify "anthro female", it'll find pools that have at least one post with the anthro tag, and at least one post with the female tag. Unfortunately because tags are pre-aggregated at the pool level, it can't find pools that have posts each having all of the tags. It's fine, it works pretty well I promise.
It can also exclude tags, making sure the pool has no posts with any of the tags you give it. I.e. if you exclude "hair male dialogue" (maybe you're into bald silent women? idk. no judging.), it'll make sure that not a single post in the pool has any of those tags. In future I might think a bit harder and implement a threshold or something, but not yet.
Ordering is pretty simple. You can order by Count (total number of posts with the tags), Percentage (maximum percentage of posts with the tags), Average Score (the average score of all the posts in the pool) and Total Score (the summed score of all posts in the pool). Between these four you can kinda choose what sort of "quality" you're looking for. Dense pools that heavily focus on your tags, pools that have at least some part focusing on them, good quality pools... etc.
Filtering is even more simple. You're providing a minimum value of either Count or Percentage. Count means "I want pools that have at least X posts with these tags", and Percentage means "I want pools where at least X percent of all posts have one of these tags". Easy.
Search speed is kinda ok. The search itself is fairly fast, but I'm hosting the DB at home coz I'll be damned if I'm paying $50/m to host a postgres db somewhere for you lot ;-) So the latency is a little wonky. Still, a couple seconds, 4-5 at most. It might occasionally go down for an hour or two if I lose internet or power or whatever, but it should get at least a couple nines of uptime :P
Have a try, see if it works for you, let me know if something doesn't seem right (#it-works-in-dev), or any feedback or feature requests.
Edit: Also if this use of data isn't permitted (hosting the api), just let me know and I'll take it down and provide the cli tools instead. Just thought I'd save everyone from spending an hour having to download and process a couple hundred mb of dbexports.
Updated