The jobParams query parameter is first rison-encoded, then URI encoded. I'm not sure you've got the dashboard name portion correct... Do you mind pasting the full URL here so I can help?
I think in general what you'll need to do is something like this:
description%3A%21%27@@description@@%21%27
And in order for the description to be encoded properly, you'll have to first rison-encode it and then URI encode it (via encodeURIComponent). In practice, you should be able to just use encodeURIComponent twice:
encodeURIComponent(encodeURIComponent('Overview of system metrics'))
// results in "Overview%2520of%2520system%2520metrics"