Creating short code for search form

You are returning the shortcode content as a big string, your function get_job_listing_categories is not properly being called.

Also i would recommend use PHP output buffering which is great for WordPress shortcodes.

Try below code:

function jobsform_function($atts) {
    ob_start();
    ?>
      <form class="home-job-search" method="GET" action="https://website.com/jobs/jobs/">
        <div class="home-keywords">
          <input type="text" id="search_keywords" name="search_keywords" placeholder="Enter Keywords" />
        </div>
        <div class="home-categories">
          <select id="search_category" name="search_category">
              <?php foreach (get_job_listing_categories() as $cat): ?>
                 <option value="<?php echo esc_attr($cat->term_id); ?>">
                    <?php echo esc_html($cat->name); ?>
                 </option>
              <?php endforeach;?>
          </select>
        </div>
        <div class="home-search-button">
          <input type="submit" value="Search" />
        </div>
      </form>
<?php
    $output = ob_get_contents();
    ob_end_clean();
    return $output;
}
add_shortcode('jobsform', 'jobsform_function');