diff --git a/.github/labeler.yml b/.github/labeler.yml
new file mode 100644
index 0000000000..e19f33b788
--- /dev/null
+++ b/.github/labeler.yml
@@ -0,0 +1,12 @@
+docs:
+  - changed-files:
+    - any-glob-to-any-file:
+      - '**/*.md'
+
+internal:
+  - changed-files:
+    - any-glob-to-any-file:
+      - .github/**/*
+      - scripts/**/*
+      - .gitignore
+      - .pre-commit-config.yaml
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
new file mode 100644
index 0000000000..9cbdfda213
--- /dev/null
+++ b/.github/workflows/labeler.yml
@@ -0,0 +1,12 @@
+name: Pull Request Labeler
+on:
+  pull_request_target:
+
+jobs:
+  labeler:
+    permissions:
+      contents: read
+      pull-requests: write
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/labeler@v5