I figured out why my javascript wasn't working. The geoprocessor I set up doesn't include the tool name at the end of the URL, which is why it was invalid. Here's what that line should be:
gp = new Geoprocessor("https://URL/servername/rest/services/Web_Map_GP_Services/ZipTest/GPServer/ZipTest");
To run from Rest API, I first had to go through the "Upload" task to create an item ID:
Next, I had to go to the task and submit a job with the URL generated with that item ID:
This resulted in success!