In this paper we present an intelligent, personalised TV recommender system with an agent based infrastructure that provides the user both with content based and collaborative recommendations based on the user’s viewing profile, which is our model of the user. We represent the viewing profile using separate categories of interest such as dramas and game shows, where each category in turn is made up of programs that the user liked and disliked. The profile is continuously updated via feedback to the viewers agent. The liked and disliked programs are then distilled into a weighted tuple of key words produced from their descriptions. This weighted tuple is then used to make recommendations based on the descriptions of new programs. Programs whose descriptions are 'close' to the user’s liked profile for some category are recommended.