> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect HR Cloud with API Key – StackOne Hub

> Link a HR Cloud account in the StackOne Hub using API Key. End-user guide to authorize the integration and start using HR Cloud actions.

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;hrcloud_list_employees&#x22;,&#x22;label&#x22;:&#x22;List Employees&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_employee&#x22;,&#x22;label&#x22;:&#x22;Get Employee&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_employee&#x22;,&#x22;label&#x22;:&#x22;Create Employee&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_employee_with_mapping&#x22;,&#x22;label&#x22;:&#x22;Create Employee Using Mapping&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_update_employee&#x22;,&#x22;label&#x22;:&#x22;Update Employee&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_update_employee_with_mapping&#x22;,&#x22;label&#x22;:&#x22;Update Employee Using Mapping&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_upsert_employee&#x22;,&#x22;label&#x22;:&#x22;Upsert Employee&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_employment_status&#x22;,&#x22;label&#x22;:&#x22;List Employment Statuses&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_employment_types&#x22;,&#x22;label&#x22;:&#x22;List Employment Types&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_departments&#x22;,&#x22;label&#x22;:&#x22;List Departments&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_department&#x22;,&#x22;label&#x22;:&#x22;Get Department&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_department&#x22;,&#x22;label&#x22;:&#x22;Create Department&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_update_department&#x22;,&#x22;label&#x22;:&#x22;Update Department&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_upsert_department&#x22;,&#x22;label&#x22;:&#x22;Upsert Department&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_divisions&#x22;,&#x22;label&#x22;:&#x22;List Divisions&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_division&#x22;,&#x22;label&#x22;:&#x22;Get Division&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_division&#x22;,&#x22;label&#x22;:&#x22;Create Division&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_update_division&#x22;,&#x22;label&#x22;:&#x22;Update Division&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_upsert_division&#x22;,&#x22;label&#x22;:&#x22;Upsert Division&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_locations&#x22;,&#x22;label&#x22;:&#x22;List Locations&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_location&#x22;,&#x22;label&#x22;:&#x22;Get Location&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_location&#x22;,&#x22;label&#x22;:&#x22;Create Location&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_update_location&#x22;,&#x22;label&#x22;:&#x22;Update Location&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_upsert_location&#x22;,&#x22;label&#x22;:&#x22;Upsert Location&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_positions&#x22;,&#x22;label&#x22;:&#x22;List Positions&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_position&#x22;,&#x22;label&#x22;:&#x22;Get Position&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_position&#x22;,&#x22;label&#x22;:&#x22;Create Position&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_update_position&#x22;,&#x22;label&#x22;:&#x22;Update Position&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_upsert_position&#x22;,&#x22;label&#x22;:&#x22;Upsert Position&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_position_history&#x22;,&#x22;label&#x22;:&#x22;List Position History&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_applicants&#x22;,&#x22;label&#x22;:&#x22;List Applicants&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;recruit&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_applicant&#x22;,&#x22;label&#x22;:&#x22;Get Applicant&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;recruit&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_applicant&#x22;,&#x22;label&#x22;:&#x22;Create Applicant&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;recruit&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_upload_applicant_resume&#x22;,&#x22;label&#x22;:&#x22;Upload Applicant Resource (Resume / Cover Letter)&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;recruit&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_update_applicant&#x22;,&#x22;label&#x22;:&#x22;Update Applicant&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;recruit&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_upsert_applicant&#x22;,&#x22;label&#x22;:&#x22;Upsert Applicant&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;recruit&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_applicant_status&#x22;,&#x22;label&#x22;:&#x22;List Applicant Statuses&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;recruit&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_tasks&#x22;,&#x22;label&#x22;:&#x22;List Tasks&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_task&#x22;,&#x22;label&#x22;:&#x22;Get Task&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_task&#x22;,&#x22;label&#x22;:&#x22;Create Task&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_employee_groups&#x22;,&#x22;label&#x22;:&#x22;List Employee Groups&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_employee_group&#x22;,&#x22;label&#x22;:&#x22;Get Employee Group&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_bonus_history&#x22;,&#x22;label&#x22;:&#x22;List Bonus History&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_bonus_history&#x22;,&#x22;label&#x22;:&#x22;Get Bonus History&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_salary_history&#x22;,&#x22;label&#x22;:&#x22;List Salary History&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_rehire_history&#x22;,&#x22;label&#x22;:&#x22;List Rehire History&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_rehire_history&#x22;,&#x22;label&#x22;:&#x22;Create Rehire History&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_employment_status_history&#x22;,&#x22;label&#x22;:&#x22;List Employment Status History&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_employment_status_history&#x22;,&#x22;label&#x22;:&#x22;Create Employment Status History&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_time_off_requests&#x22;,&#x22;label&#x22;:&#x22;List Time Off Requests&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_time_off_request&#x22;,&#x22;label&#x22;:&#x22;Get Time Off Request&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_time_off_request&#x22;,&#x22;label&#x22;:&#x22;Create Time Off Request&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_upsert_time_off_request&#x22;,&#x22;label&#x22;:&#x22;Upsert Time Off Request&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_time_off_accrual&#x22;,&#x22;label&#x22;:&#x22;List Time Off Accruals&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_time_off_balance&#x22;,&#x22;label&#x22;:&#x22;List Time Off Balances&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;time_off&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_time_off_types&#x22;,&#x22;label&#x22;:&#x22;List Time Off Types&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_employee_attachments&#x22;,&#x22;label&#x22;:&#x22;List Employee Attachments&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;workmates&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_employee_attachment&#x22;,&#x22;label&#x22;:&#x22;Get Employee Attachment&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;workmates&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_create_employee_attachment&#x22;,&#x22;label&#x22;:&#x22;Create Employee Attachment&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;workmates&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_delete_employee_attachment&#x22;,&#x22;label&#x22;:&#x22;Delete Employee Attachment&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;workmates&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_download_employee_attachment&#x22;,&#x22;label&#x22;:&#x22;Download Employee Attachment(s)&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;,&#x22;workmates&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_list_employee_forms&#x22;,&#x22;label&#x22;:&#x22;List Employee Forms&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_get_employee_form&#x22;,&#x22;label&#x22;:&#x22;Get Employee Form&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]},{&#x22;id&#x22;:&#x22;hrcloud_download_employee_form&#x22;,&#x22;label&#x22;:&#x22;Download Employee Form&#x22;,&#x22;scopes&#x22;:[&#x22;service_account&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Create a service account</h2>

  <p>Service accounts produce machine-readable credentials that identify your integration without using a real user account.</p>

  <Steps>
    <Step title="Sign in to HR Cloud">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://corehr.hrcloud.com" target="_blank" rel="noopener noreferrer">HR Cloud tenant</a> using an account with the System Admin or HR Admin role. Only these roles can mint service-account credentials.</p>

        <ul>
          <li>Tenant URL format: <code>[https://corehr.hrcloud.com](https://corehr.hrcloud.com)</code></li>
        </ul>
      </div>
    </Step>

    <Step title="Open Service Accounts">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Navigate to the Service Accounts page from System Settings.</p>

        <ul>
          <li>Click the <strong>Settings</strong> gear in the top navigation.</li>
          <li>Choose <strong>System Settings</strong> from the menu.</li>
          <li>From the <strong>General</strong> section, select <strong>Service Accounts</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Add a new service account">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>On the Service Accounts page, click the <strong>+</strong> (Add) button to open the form.</p>

        <ul>
          <li>Enter a descriptive title (for example <code>StackOne integration</code>).</li>
          <li>Set status to <strong>Active</strong>.</li>
          <li>Click <strong>Save</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Copy the KEY and SECRET values">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Once saved, the <strong>KEY</strong> and <strong>SECRET</strong> columns become visible for the new service account. Copy both values — these become your Customer Key and Customer Secret. Store them securely for use later.</p>

        <ul>
          <li>Note: HR Cloud may not display the secret again in plain text after this point in some tenant configurations.</li>
          <li>To grant the service account access to specific objects, contact your HR Cloud Account Manager.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Optional: enable additional HR Cloud applications</h2>

  <p>HR Cloud is modular — some entities only become accessible after the relevant <strong>application</strong> is installed on the tenant. <strong>People</strong>, <strong>Onboard</strong>, and <strong>Offboard</strong> are installed by default and require no extra setup. The <strong>Time Off</strong>, <strong>Workmates</strong>, and <strong>Recruit</strong> applications must be requested from HR Cloud before their actions return data. Pick which ones you'll use below, then follow the request steps.</p>

  <Steps>
    <Step title="Select the HR Cloud applications you need">
      <div data-guide-step data-guide-scopes="time_off,workmates,recruit" data-guide-display-scopes-list="time_off,workmates,recruit">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="time_off,workmates,recruit" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Create Applicant, Create Employee Attachment, Create Time Off Request, Delete Employee Attachment, Download Employee Attachment(s), Get Applicant, Get Employee Attachment, List Applicant Statuses, List Applicants, List Employee Attachments, List Time Off Accruals, List Time Off Balances, List Time Off Requests, Update Applicant, Upload Applicant Resource (Resume / Cover Letter), Upsert Applicant, Upsert Time Off Request</span>
        </div>

        <p>Pick the applications that match the actions you plan to call. The remaining steps update to show only the configuration relevant to your selection.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="time_off">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy time_off" title="Copy scope" data-copy="time_off">
                  <span className="connector-guide-scope-copy__label">time\_off</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="workmates">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy workmates" title="Copy scope" data-copy="workmates">
                  <span className="connector-guide-scope-copy__label">workmates</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="recruit">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy recruit" title="Copy scope" data-copy="recruit">
                  <span className="connector-guide-scope-copy__label">recruit</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Open Explore Apps">
      <div data-guide-step data-guide-scopes="time_off,workmates,recruit" data-guide-display-scopes-list="time_off,workmates,recruit">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="time_off,workmates,recruit" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Create Applicant, Create Employee Attachment, Create Time Off Request, Delete Employee Attachment, Download Employee Attachment(s), Get Applicant, Get Employee Attachment, List Applicant Statuses, List Applicants, List Employee Attachments, List Time Off Accruals, List Time Off Balances, List Time Off Requests, Update Applicant, Upload Applicant Resource (Resume / Cover Letter), Upsert Applicant, Upsert Time Off Request</span>
        </div>

        <p>In the HR Cloud admin UI, click <strong>Explore Apps</strong> in the left navigation. Installed applications are listed under <strong>Your Apps</strong>; uninstalled ones are listed above with action buttons.</p>
      </div>
    </Step>

    <Step title="Request the application">
      <div data-guide-step data-guide-scopes="time_off,workmates,recruit" data-guide-display-scopes-list="time_off,workmates,recruit">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="time_off,workmates,recruit" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Create Applicant, Create Employee Attachment, Create Time Off Request, Delete Employee Attachment, Download Employee Attachment(s), Get Applicant, Get Employee Attachment, List Applicant Statuses, List Applicants, List Employee Attachments, List Time Off Accruals, List Time Off Balances, List Time Off Requests, Update Applicant, Upload Applicant Resource (Resume / Cover Letter), Upsert Applicant, Upsert Time Off Request</span>
        </div>

        <p>Click <strong>I'M INTERESTED</strong> on the card for each application you selected. The card flips to <strong>REQUEST SENT</strong> while HR Cloud's onboarding team provisions the app for your tenant. This is not instant — wait for the email confirmation before re-running the affected actions.</p>
      </div>
    </Step>

    <Step title="Verify the application is installed">
      <div data-guide-step data-guide-scopes="time_off,workmates,recruit" data-guide-display-scopes-list="time_off,workmates,recruit">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="time_off,workmates,recruit" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Create Applicant, Create Employee Attachment, Create Time Off Request, Delete Employee Attachment, Download Employee Attachment(s), Get Applicant, Get Employee Attachment, List Applicant Statuses, List Applicants, List Employee Attachments, List Time Off Accruals, List Time Off Balances, List Time Off Requests, Update Applicant, Upload Applicant Resource (Resume / Cover Letter), Upsert Applicant, Upsert Time Off Request</span>
        </div>

        <p>Once provisioned, the application appears in the left navigation under <strong>Applications</strong> and under <strong>Your Apps</strong> on the Explore Apps page. Only then will the API entities tied to that application start returning 200 instead of 403.</p>
      </div>
    </Step>

    <Step title="Seed an applicant status record">
      <div data-guide-step data-guide-scopes="recruit" data-guide-display-scopes-list="recruit">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="recruit" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Create Applicant, Get Applicant, List Applicant Statuses, List Applicants, Update Applicant, Upload Applicant Resource (Resume / Cover Letter), Upsert Applicant</span>
        </div>

        <p>Before calling <code>create\_applicant</code> or <code>upsert\_applicant</code>, open the Recruit module and create at least one <strong>xApplicantStatus</strong> record (for example <code>Applied</code>). Without a status record the applicant-status catalog is empty and write actions cannot supply a valid status Id.</p>
      </div>
    </Step>

    <Step title="Configure Time Off defaults">
      <div data-guide-step data-guide-scopes="time_off" data-guide-display-scopes-list="time_off">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="time_off" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Create Time Off Request, List Time Off Accruals, List Time Off Balances, List Time Off Requests, Upsert Time Off Request</span>
        </div>

        <p>Review <strong>Settings → Holidays</strong> and <strong>Settings → Calendar</strong> to ensure default working days and hours are reasonable. Otherwise <code>create\_time\_off\_request</code> may flag every date as a conflict.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Note: tasks tagged with the Benefits application</h2>

  <p>Calling <code>create\_task</code> with <code>applicationCode=benefits</code> additionally requires the <strong>Benefits</strong> application to be installed on the tenant. Without it, the request returns <code>Cannot find base portal for application code 'benefits'</code>. Benefits is requested through the same <strong>Explore Apps</strong> flow described above. Benefits is not modelled as a scope because <code>create\_task</code> works without it for every other <code>applicationCode</code>.</p>
</section>

## Linking the Account from the Hub

<Steps>
  <Step title="Navigate to the Hub">
    Use one of the three <a href="/guides/accounts-section#linking-accounts">Linking Account Methods</a> to access the Hub.
  </Step>

  <Step title="Fill out the fields">
    Fill out the following fields using details from your provider:

    <ul>
      <li><strong>Customer Key</strong></li>
      <li><strong>Customer Secret</strong></li>
    </ul>
  </Step>

  <Step title="Connect">
    <ul>
      <li>Click <strong>Connect</strong></li>
      <li>If applicable, the provider will redirect you to a sign-in or authorization page. Complete the provider's authorization flow.</li>
      <li>Once authorization is successful, you will see a confirmation popup</li>
    </ul>
  </Step>
</Steps>

If the account linking is successful, you will see the newly linked account in your <a href="/guides/accounts-section">Accounts</a> page.
