diff a/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBot.java b/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBot.java
--- a/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBot.java
+++ b/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBot.java
@@ -70,20 +70,35 @@
             unit += "s";
         }
         return count + " " + unit;
     }
 
+    private final String noticeMarker = "<!-- PullrequestCloserBot auto close notification -->";
+
     @Override
     public void run(Path scratchPath) {
-        var message = "@" + pr.author().userName() + " This pull request has been inactive for more than " +
-                formatDuration(maxAge) + " and will be automatically closed. If you think this is incorrect, " +
-                "feel free to reopen it!";
+        var comments = pr.comments();
+        if (comments.size() > 0) {
+            var lastComment = comments.get(comments.size() - 1);
+            if (lastComment.author().equals(repository.forge().currentUser()) && lastComment.body().contains(noticeMarker)) {
+                var message = "@" + pr.author().userName() + " This pull request has been inactive for more than " +
+                        formatDuration(maxAge.multipliedBy(2)) + " and will now be automatically closed. If you would " +
+                        "like to continue working on this pull request in the future, feel free to reopen it!";
+                log.fine("Posting prune message");
+                pr.addComment(message);
+                pr.setState(PullRequest.State.CLOSED);
+                return;
+            }
+        }
 
-        log.fine("Posting prune message");
-        pr.addComment(message);
+        var message = "@" + pr.author().userName() + " This pull request has been inactive for more than " +
+                formatDuration(maxAge) + " and will be automatically closed if another " + formatDuration(maxAge) +
+                " passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free " +
+                "to ask for assistance if you need help with progressing this pull request towards integration!";
 
-        pr.setState(PullRequest.State.CLOSED);
+        log.fine("Posting prune notification message");
+        pr.addComment(noticeMarker + "\n\n" + message);
     }
 }
 
 public class PullRequestPrunerBot implements Bot {
     private final HostedRepository repository;
diff a/bots/bridgekeeper/src/test/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBotTests.java b/bots/bridgekeeper/src/test/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBotTests.java
--- a/bots/bridgekeeper/src/test/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBotTests.java
+++ b/bots/bridgekeeper/src/test/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBotTests.java
@@ -27,11 +27,11 @@
 import org.junit.jupiter.api.*;
 
 import java.io.IOException;
 import java.time.Duration;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.*;
 
 class PullRequestPrunerBotTests {
     @Test
     void close(TestInfo testInfo) throws IOException, InterruptedException {
         try (var credentials = new HostCredentials(testInfo);
@@ -50,11 +50,31 @@
             var pr = credentials.createPullRequest(author, "master", "edit", "This is a pull request");
 
             // Make sure the timeout expires
             Thread.sleep(100);
 
-            // Let the bot see it
+            // Let the bot see it - it should give a notice
+            TestBotRunner.runPeriodicItems(bot);
+
+            assertEquals(1, pr.comments().size());
+            assertTrue(pr.comments().get(0).body().contains("will be automatically closed if"));
+
+            pr.addComment("I'm still working on it!");
+
+            // Make sure the timeout expires again
+            Thread.sleep(100);
+
+            // Let the bot see it - it should post a second notice
+            TestBotRunner.runPeriodicItems(bot);
+
+            assertEquals(3, pr.comments().size());
+            assertTrue(pr.comments().get(2).body().contains("will be automatically closed if"));
+
+            // Make sure the timeout expires again
+            Thread.sleep(100);
+
+            // The bot should now close it
             TestBotRunner.runPeriodicItems(bot);
 
             // There should now be no open PRs
             var prs = author.pullRequests();
             assertEquals(0, prs.size());
