diff --git a/ee/app/helpers/ee/registrations_helper.rb b/ee/app/helpers/ee/registrations_helper.rb
index 2d42b01db09051614380fe170da0b028d39a8767..bb2baccc6a467b411e0ace146576fed8e86e2aec 100644
--- a/ee/app/helpers/ee/registrations_helper.rb
+++ b/ee/app/helpers/ee/registrations_helper.rb
@@ -61,6 +61,10 @@ def onboarding_issues_experiment_enabled?
       experiment_enabled?(:onboarding_issues)
     end
 
+    def skip_setup_for_company?
+      current_user.members.any?
+    end
+
     private
 
     def redirect_path
diff --git a/ee/app/views/registrations/welcome/_setup_for_company.html.haml b/ee/app/views/registrations/welcome/_setup_for_company.html.haml
index 86b43a6799277e73e270128f91174c2c19d5d33f..530dd772ff271180ca1bc3d30a05c0aa466fab0c 100644
--- a/ee/app/views/registrations/welcome/_setup_for_company.html.haml
+++ b/ee/app/views/registrations/welcome/_setup_for_company.html.haml
@@ -1,4 +1,8 @@
-- if Gitlab.com?
+- return unless Gitlab.dev_env_or_com?
+
+- if skip_setup_for_company?
+  = f.hidden_field :setup_for_company, value: true
+- else
   .row
     .form-group.col-sm-12
       = f.label :setup_for_company, setup_for_company_label_text, class: 'label-bold'
diff --git a/ee/changelogs/unreleased/221028-skip-the-who-will-be-using-gitlab-question-in-signup-when-a-use.yml b/ee/changelogs/unreleased/221028-skip-the-who-will-be-using-gitlab-question-in-signup-when-a-use.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5b60edf847a88b888c0c3da29f02e120048a4e2a
--- /dev/null
+++ b/ee/changelogs/unreleased/221028-skip-the-who-will-be-using-gitlab-question-in-signup-when-a-use.yml
@@ -0,0 +1,5 @@
+---
+title: Skip the who will be using GitLab question in signup when a user is invited
+merge_request: 42264
+author:
+type: changed
diff --git a/ee/spec/features/invites_spec.rb b/ee/spec/features/invites_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..7531450716c2792de2a874d320394f3cd1ce680d
--- /dev/null
+++ b/ee/spec/features/invites_spec.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Group or Project invitations' do
+  let(:group) { create(:group, name: 'Owned') }
+  let(:project) { create(:project, :repository, namespace: group) }
+  let(:group_invite) { create(:group_member, :invited, group: group) }
+  let(:new_user) { build_stubbed(:user, email: group_invite.invite_email) }
+  let(:dev_env_or_com) { true }
+
+  before do
+    allow(::Gitlab).to receive(:dev_env_or_com?).and_return(dev_env_or_com)
+
+    visit invite_path(group_invite.raw_invite_token)
+  end
+
+  def fill_in_sign_up_form(user)
+    fill_in 'new_user_name', with: user.name
+    fill_in 'new_user_username', with: user.username
+    fill_in 'new_user_email', with: user.email
+    fill_in 'new_user_password', with: user.password
+    click_button 'Register'
+  end
+
+  context 'when on .com' do
+    context 'without setup question' do
+      it 'bypasses the setup_for_company question' do
+        fill_in_sign_up_form(new_user)
+
+        expect(find('input[name="user[setup_for_company]"]', visible: :hidden).value).to eq 'true'
+        expect(page).not_to have_content('My company or team')
+      end
+    end
+
+    context 'with setup question' do
+      let(:new_user) {  build_stubbed(:user, email: 'bogus@me.com') }
+
+      it 'has the setup question' do
+        fill_in_sign_up_form(new_user)
+
+        expect(page).to have_content('My company or team')
+      end
+    end
+  end
+
+  context 'when not on .com' do
+    let(:dev_env_or_com) { false }
+
+    it 'bypasses the setup_for_company question' do
+      fill_in_sign_up_form(new_user)
+
+      expect(page).not_to have_content('My company or team')
+    end
+  end
+end
diff --git a/ee/spec/helpers/ee/registrations_helper_spec.rb b/ee/spec/helpers/ee/registrations_helper_spec.rb
index 23facd1460a969e4648d7174d0a802a4de2b4841..ff9155cee610efa6d5aaac86240f3d896a69662f 100644
--- a/ee/spec/helpers/ee/registrations_helper_spec.rb
+++ b/ee/spec/helpers/ee/registrations_helper_spec.rb
@@ -244,4 +244,23 @@
       end
     end
   end
+
+  describe '#skip_setup_for_company?' do
+    let(:user) { create(:user) }
+
+    before do
+      allow(helper).to receive(:current_user).and_return(user)
+    end
+
+    it 'will skip the setup if memberships are found' do
+      member = create(:project_member, :invited)
+      member.accept_invite!(user)
+
+      expect(helper.skip_setup_for_company?).to be true
+    end
+
+    it 'will not skip the setup when a user has no memberships' do
+      expect(helper.skip_setup_for_company?).to be false
+    end
+  end
 end
diff --git a/spec/features/invites_spec.rb b/spec/features/invites_spec.rb
index 26b9b398692b252dfaa6db9d8cdda814708296c4..3954de56eea06108aabf70a1f5abf2c285f5d7fb 100644
--- a/spec/features/invites_spec.rb
+++ b/spec/features/invites_spec.rb
@@ -2,7 +2,7 @@
 
 require 'spec_helper'
 
-RSpec.describe 'Invites', :aggregate_failures do
+RSpec.describe 'Group or Project invitations', :aggregate_failures do
   let(:user) { create(:user, email: 'user@example.com') }
   let(:owner) { create(:user, name: 'John Doe') }
   let(:group) { create(:group, name: 'Owned') }