diff --git a/.github/workflows/size-labeler.yml b/.github/workflows/size-labeler.yml
new file mode 100644
index 00000000..af081dc9
--- /dev/null
+++ b/.github/workflows/size-labeler.yml
@@ -0,0 +1,28 @@
+# Reference: https://github.com/CodelyTV/pr-size-labeler
+
+name: size-labeler
+
+on: [pull_request_target]
+
+jobs:
+  size-labeler:
+    runs-on: ubuntu-latest
+    name: Label the PR size
+    steps:
+      - uses: codelytv/pr-size-labeler@v1.8.0
+        with:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          xs_label: 'size/XS'
+          xs_max_size: '10'
+          s_label: 'size/S'
+          s_max_size: '24'
+          m_label: 'size/M'
+          m_max_size: '99'
+          l_label: 'size/L'
+          l_max_size: '200'
+          xl_label: 'size/XL'
+          fail_if_xl: 'false'
+          message_if_xl: >
+            'This PR exceeds the recommended size of 200 lines.
+            Please make sure you are NOT addressing multiple issues with one PR.
+            Note this PR might be rejected due to its size.’