View showing a list of tagged nodes related to term reference field
I have accomplished something along the lines of what you describe with a combination of a hook_form_alter and some Javascript. The following should help you set up something that will interactively enable/disable possible company choices based on the selected activity. Take note that it really only works if those inputs are selects and not Drupal's default autocompletes.

In a hook_form_alter directed at the "Request" node and node edit forms, create a simple of array of arrays, where the key is the term IDs of the activity, and the subarrays are the node IDs of the companies. Here is some pseudo-code, since I don't the actual structures of your entities:

$nested_array = [];

$term_query = \Drupal::entityTypeManager()-&gt;getStorage('taxonomy_term')-&gt;getQuery();
$term_ids = $term_query-&gt;condition('vid', 'activity')-&gt;execute();

foreach($term_ids as $term_id) {
    $node_query = \Drupal::entityTypeManager()-&gt;getStorage('node')-&gt;getQuery();
    $node_ids = $term_query
      -&gt;condition('type', 'company')
      -&gt;condition('field_ref_activity', $term_id, 'IN')
      -&gt;execute();

    $nested_array[$term_id] = $node_ids;
 }

 $form['#attached']['drupalSettings']['company_activities'] = $nested_array;
 $form['#attached']['libraries'][] = 'my_module/my_module.library_name';


The above makes the nested arrays available to the front end for on-the-fly manipulation. Create a library for your module with this jQuery-based Javascript. Again, pseudocode which you'll have to modify to your form structure:

function limitCompanySelection(selected_activity) {
    let allowed_companies = drupalSettings.company_activities[selected_activity.val()];

    $('company-input-selector option').each(function(){
        if ($.InArray($(this).val(), allowed_companies)) {
            $(this).prop('disabled', false);
        }
        else {
            $(this).prop('disabled', true);
        }
    });
}


Set the above function to run on initial load and every time the selected activity is changed, finding the selected activity and passing it into the function.