I have been surprised that this project has seemed to fly under the radar for so long. It's extremely useful in a variety of scenarios, and as far as I know, it is unique in its capabilities.
I've used it to allow modern applications to interface with legacy systems that have no mechanism of extension, and no API other than their web interfaces. Just about anything you can control via a web interface, you (or your software) can control using PhantomJS.
We're currently using it to generate static map images for a powerpoint export feature we introduced a little while ago. We initially were going to use Google's static maps API but quickly ran into limits (only 5 custom markers, needing a different set of code to actually generate the maps) and decided to take screenshots of the map in our existing application. Besides actually being able to generate maps the way we want them, the other big advantage is that since it's sharing the same code base as our web product it's much easier to catch issues if they crop up. Being able to run headless on linux is amazing (on OS X you download the binary and it just works, getting 1.4 to run cleanly took a little bit of playing around to get Xvfb to play nice).
One example is a company I worked with that has this ancient legacy groupware system. Shared calendar, reporting, workflow, etc. The UI is based on tables and frames, the backend is some kind of compiled perl modules or something, and it has no API. And it uses some kind of weird database format, maybe intentionally obfuscated.
The system does not work well with iPads, which were being deployed to sales. A new modern iPad-savvy reporting UI for sales staff was wanted, but the data had to end up in the legacy system during the multi-year transition that would phase it out.
We wrote a Rails app for the backend, and a native iOS client that ran on the iPads. Real straightfoward, the client app sends JSON to the rails backend. Upon submission of a report, the rails app then used PhantomJS to log into the legacy system as the user in question, navigate throught the multiple-page process, manipulating the popups and checkboxes and textfields, and input the data into the legacy system just as if the user had sat down at a PC and done it themselves.
Kludgetastic, definitely, but without something like PhantomJS there'd be no way at all to get data into this legacy system programatically.
I've used it to allow modern applications to interface with legacy systems that have no mechanism of extension, and no API other than their web interfaces. Just about anything you can control via a web interface, you (or your software) can control using PhantomJS.