Yep, the problem is indeed that you’re not telling it to narrow down the results. A Script Filter is easier to build the more uniform it is, so here’s a starting point to help you with narrowing down. It expects every icon to be set as a png, for this very reason. To add more options, just set them at the top, in the options variable (one per line).
options="jdownloader
transmission
alfred
candybar"
echo "<?xml version='1.0'?><items>"
for item in $(echo "${options}" | grep -i ".*{query}.*"); do
echo "<item uid='fix${item}' arg='${item}' valid='yes' autocomplete='${item}' type='file'>"
echo "<title>${item}</title>"
echo "<icon>${item}.png</icon>"
echo "</item>"
done
echo "</items>"