diff --git a/.github/workflows/issue-awaiting-response.yml b/.github/workflows/issue-awaiting-response.yml
new file mode 100644
index 00000000..dfc75e12
--- /dev/null
+++ b/.github/workflows/issue-awaiting-response.yml
@@ -0,0 +1,42 @@
+name: issue awaiting response
+
+on:
+  issue_comment:
+    types: [created]
+
+jobs:
+  issue-awaiting-response:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/github-script@v6
+        with:
+          script: |
+            const issue = await github.rest.issues.get({
+              owner: context.repo.owner,
+              repo: context.repo.repo,
+              issue_number: context.issue.number,
+            })
+            const comments = await github.paginate(
+              github.rest.issues.listComments, {
+                owner: context.repo.owner,
+                repo: context.repo.repo,
+                issue_number: context.issue.number,
+              }
+            )
+            const labels = await github.paginate(
+              github.rest.issues.listLabelsOnIssue, {
+                issue_number: context.issue.number,
+                owner: context.repo.owner,
+                repo: context.repo.repo,
+              }
+            )
+            if (labels.find(label => label.name === 'awaiting response')) {
+              if (comments[comments.length-1].user?.login === issue.data.user?.login) {
+                github.rest.issues.removeLabel({
+                  owner: context.repo.owner,
+                  repo: context.repo.repo,
+                  issue_number: context.issue.number,
+                  name: 'awaiting response'
+                })
+              }
+            }
diff --git a/.github/workflows/issue-needs-triage.yml b/.github/workflows/issue-needs-triage.yml
new file mode 100644
index 00000000..8bece02e
--- /dev/null
+++ b/.github/workflows/issue-needs-triage.yml
@@ -0,0 +1,28 @@
+name: issue needs triage
+
+on:
+  issues:
+    types: [opened]
+
+jobs:
+  needs-triage:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/github-script@v6
+        with:
+          script: |
+            const labels = await github.paginate(
+              github.rest.issues.listLabelsOnIssue, {
+                issue_number: context.issue.number,
+                owner: context.repo.owner,
+                repo: context.repo.repo,
+              }
+            )
+            if (labels.length === 0) {
+              github.rest.issues.addLabels({
+                issue_number: context.issue.number,
+                owner: context.repo.owner,
+                repo: context.repo.repo,
+                labels: ['needs triage']
+              })
+            }