Interviewing the GitHub Way: Pull Requests, Bots, and Rubrics

GitHub has redesigned the “take home” portion of its technical interviews to mirror its own engineering workflow rather than abstract coding puzzles. The company’s Interview-bot, a GitHub app built on the GitHub REST API and webhooks, drives the entire process so candidates solve realistic problems in a familiar environment.

How the Candidate Experience Works

After choosing the programming language they’ll use, candidates receive an email inviting them to sign into Interview-bot and complete the exercise at their convenience. The assigned problem is designed to resemble actual day-to-day challenges at GitHub, with clear instructions and a time limit. GitHub deliberately enforces this limit to avoid biasing toward candidates with more free time.

The candidate can work however they prefer: clone the exercise locally, use GitHub Codespaces, or rely on their own editor, OS, and tooling. Internet access for documentation is allowed. The goal, as GitHub states, is for the interview to feel as close to daily work as possible.

Automated Repository Setup via Interview-bot

When the candidate signs in, an entirely new repository is created inside a separate organization. Interview-bot copies the exercise files, associated issues, and pull requests into this new repo. Crucially, this is a copy, not a fork or clone, which lets the bot modify files if necessary and strip out Git history that might inadvertently reveal clues about solving the exercise.

Once the repo is ready, the candidate is granted access and a timer starts. After the work is done, they submit their pull request to the bot for review.

Diagram showing that the candidate exercise is copied from "based repository" to "candidate repositor"

Anonymizing the Submission

Interview-bot listens for webhook events on the pull request and confirms the submission. It then anonymizes the work by copying it back to a base repository, replacing the pull request title with a neutral one, and attributing the commits and PR to Interview-bot’s identity rather than the candidate’s. To the reviewer, there is no visible link to the candidate.

Screenshot of pull request confirmation that candidate will receive

Diagram that shows how the anonymized candidate response is sent back to the base repository

Sample pull request from interview-bot, showing anonymized ID rather than candidate name

Reviewing with Rubrics and Automation

Each pull request comes with automated tests and a grading rubric so evaluators have clear, objective criteria. GitHub Actions runs the tests, providing reviewers with a baseline level of correctness.

Assigning reviewers is handled through GitHub’s team code review feature, which routes the anonymized PR to engineers on the team responsible for that exercise language. Those engineers leave a scorecard as a comment on the PR, marking based strictly on the technical guidelines. They also apply an “Approve” or “Request changes” status to indicate pass or fail, reducing the chance that personal biases shape the decision.

Interview-bot tracks changes on the review request via webhooks and notifies the GitHub staff member coordinating the candidate. Communication about the candidate’s progress also happens in a dedicated internal issue, keeping all tracking and state in GitHub itself.

Sample status update from Interview-bot

Why This Approach Works

The system leverages existing GitHub APIs and tools to build an interview that behaves exactly like its core product. The design removes as much bias as possible—both by anonymizing the work and by providing a fixed rubric—while shielding candidates from extra logistical hurdles. If you are interested in trying this process yourself, GitHub’s careers page shows current openings.