Thanks very much for your comment.
I agree that contract law is definitely involved. I think Terms of Service are an agreement between the end-user and the site/service, not the software developer and the site. Google isn't agreeing to the ToS of every site someone visits using Chrome. Similarly, and end-user can probably use 'curl' to violate many sites' ToS, but that's not curl's problem.
I did find this article "Copyright Exhaustion and the Personal Use Dilemma" [1] somewhat informative, although it doesn't really address my particular use case, because the content the users of my software would be accessing is not purchased, but being provided for free under some Terms of Use.
E.g. "To the extent a copy owner reproduces or adapts her copy in order to enable a personal use, exhaustion insulates her from liablity." But it seems like this is a very gray area of copyright law.
Digging back into the specific example, Redfin Terms of Use state:
You will not copy, redistribute, or retransmit any of the information provided
except in connection with your consideration of the purchase or sale of an
individual property.
So providing software which enables end users to collect and organize
specific listing information from Redfin (not a site crawler), for that user's own personal use, stored on that user's own machine... I think would actually fall within the Redfin ToS.
Another way to think about it, it's analogous to extending the 'Bookmark' functionality of a web browser to better organize and monitor your bookmarks for changes. Does 'Bookmarking' a webpage become copyright infringement if the bookmarking software supports...
Mashups / co-mingling the content of related bookmarks
Identifying diffs since the last time you visited
Background polling of the bookmark with a notification when it changes
Integrated "Bookmarklet" functionality which changes *how the content is displayed*
[1] -
http://www.minnesotalawreview.org/wp-content/uploads/2012/11...