Automate your automate stale pull request reminders

A pull request that sits for a week leaves the author without context and the reviewer unaware it is waiting. This job runs daily: engineering reads the repository and finds the blocker on each quiet pull request, and operations checks that every nudge is addressed to the right person before you approve it.

By the Organ team · Last verified 2026-10-30

Add this job to my companyFree to start. You approve every digest.

What the job is

A daily list of pull requests gone quiet, who is blocking each, and a nudge drafted for your approval.

An engineering lead scrolls the open pull request list, sorts by last update, and pings people in chat. On a small team that lead is also writing code, so the chase happens when someone remembers. Some teams add a bot that labels and closes inactive items, which handles hygiene but does not tell you who is waiting on whom.

How the departments split it

  • ResearchLists open pull requests for the repositories you name through the GitHub API, sorted by last update, and skips drafts unless you ask for them.
  • ResearchFor each pull request older than your threshold, works out the blocker: waiting on review, waiting on the author after review comments, red checks, or a merge conflict.
  • OperationsChecks the list before it reaches you: confirms each person named as blocking really is a requested reviewer or the author, drops items touched since the read, and groups nudges so nobody gets five at once.
  • StrategyYou get a short list, one drafted nudge per item. Any email or comment goes out after you approve it, not before.

What you get

Sample stale pull request digest (Sample, not live data)Sample, not live data

Sample, not live data. Repository, people and pull requests are invented.

Quiet for 5 days or more: acme/web (4 of 17 open)

PRQuiet forBlocked onWhy
#412 Add CSV export11 daysReviewer (Dana)Review requested on day 1, no response
#409 Fix timezone bug8 daysAuthor (Marco)Two review comments unanswered
#401 Upgrade build tool7 daysAuthor (Marco)Checks failing since last push
#398 Dark mode tokens6 daysNobody assignedNo reviewer requested

Blocked on: Reviewer (Dana), review requested on day 1. The longest-waiting item is named first, with the person and the reason.

Checked by operations

Reviewer and author names verified against the pull request data. #415 was updated this morning and removed from the list.

Drafted nudges (need your approval)

  • To Dana: "#412 has been waiting on your review since the 14th. Can you take it this week, or should I reassign?"
  • To Marco: "Two review comments on #409 are open, and #401 has failing checks. Which should be handled next?"
  • To you: "#398 has no reviewer. Suggest assigning Dana or Priya."

How it would run

Automate stale pull request reminders
Department
Research
Runs
daily

Every day, list open pull requests in the repositories below that have had no activity for at least the number of days given. Skip drafts. For each one name the blocker (review, author, failing checks, conflict, no reviewer). Ask operations to verify the people and drop anything updated since the read. Give me a short list with a drafted nudge per item. Send nothing and change nothing until I approve.

You can change: Repositories to watch, Days without activity before a pull request counts as stale, Include draft pull requests

Add this job to my company

Questions

How does it decide a pull request is stale?

By the threshold you set, measured from the last update. The GitHub API can sort pull requests by update time and return up to 100 per page, so the job reads the open list and filters in code. Draft pull requests are skipped by default.

Is this the same as a stale-bot that closes old pull requests?

No. The actions/stale action labels items after 60 days of inactivity by default and closes them 7 days later. That keeps a backlog tidy. This job is about people: who is blocking, and a nudge for you to approve. It closes nothing.

Can the nudges go to Slack?

Yes, if you name Slack as the place your team talks. Slack has an API, and any API or MCP server is built for you by the team. Nothing is posted until you approve the drafted message.

Does it comment on pull requests by itself?

No. Outbound email, chat messages and comments wait for your approval, and the job does not merge, close or relabel anything.

Does it work with a host other than GitHub?

Name your host. If it has an API or an MCP server, the team builds the connection and the daily job reads from there.

Sources

  1. GitHub REST API: List pull requests · docs.github.com · retrieved 2026-10-30
  2. actions/stale README (default stale and close timings) · github.com · retrieved 2026-10-30