How do I cluster data that is a mix of text & categorical data?
First and foremost, there is no best way to do this task in general. It will require some creativity and problem-solving

Here is one potential idea. Clustering involves some kind of similarity metric. You can compute a similarity between text documents (after some term weighting like TF-IDF you could use the cosine similarity for example). You can also compute a similarity between objects with categorical data. Matching coefficients are good option for this. For example, http://en.wikipedia.org/wiki/Simple_matching_coefficient  is about as basic as it gets, but there are many other measures of similarity for categorical data that you can find with a simple google search.

So if I have one similarity matrix A that gives the similarity based on the text, and one similarity matrix B that gives the similarity based on the categorical attributes, then I could take some weighted combination of A and B and use it as an overall similarity matrix for clustering. Perhaps a convex combination would work well and give you some flexibility to choose which measure of similarity you want to weight more heavily (since it sounds like the categorical information might not be as good):

choose some parameter $0\leq \alpha\leq 1$ and compute an overall similarity matrix S as

$$\textbf{S} = \alpha \textbf{A} + (1-\alpha)\textbf{B}$$

Then you could use any number of clustering algorithms using the similarity information. For example, $k$-means should work just fine on a similarity matrix as input. Any type of graph/spectral clustering algorithm is also well suited for this type of input.