There's not a place to put source code on these pages, so I'll just dump it here.

#!/usr/bin/perl
use strict;

use WWW::Mechanize;

my $agent = WWW::Mechanize->new();

# Log in
$agent->get("http://hackaday.io/signin?returnUrl=%2F");

# This form doesn't have a name, but there's only one on the page, so...
$agent->field("email", 'kennedy.greg@gmail.com');
$agent->field("password", '*****************************');
$agent->click();

# Set up the description.
my $desc_start = qq{ HaD Projects frontpage is a mix of "most popular", "new" and "Recently Updated" posts. Frontpage placement translates into views / follows / skulls / other meaningless ego measurements. Well, if I can't be new or popular, there's a loophole: just make a tweak to the project details, and I'm "recently updated" again!

What if I just spent all day playing Nethack and so there aren't any real updates to make? No problem. I;ll just game the system with Perl's WWW::Mechanize to increase a counter every thirty seconds. So far, this page has been updated };

my $desc_end = qq{ times.

An unscrupulous user might use this to artificially drive traffic up on their Kickstarter-listed project. Not me, though, nope, no sirree! Having this project promote itself is just a bit of fun.
...Although if you wanted to submit more alarms to my alarm clock while you're here, well, that's certainly your call...
http://hackaday.io/project/598-Wake-Me!---Crowdsourced-Alarm-Clock };

# And the initial counter.
my $count = 0;

# Ready to start our dastardly deeds.
while (1)
{
$count ++;
print "Setting the new count to $count... ";

# Go to the project edit page.
$agent->get("http://hackaday.io/project/695/edit");

# Update the description.
$agent->form_number(0);
$agent->field("description", $desc_start . sprintf("%05d", $count) . $desc_end);

# Re-publish
$agent->click();

print "done!\n";

# Sleep 30 seconds.
sleep(30);
}