<form id="waitlist-form">

  <!-- Hidden spam catcher -->

  <input type="text" name="website_hp" style="display:none !important;" tabindex="-1" autocomplete="off">

  

  <!-- Hidden spots for campaign tracking -->

  <input type="hidden" id="utm_source" name="utm_source">

  <input type="hidden" id="utm_medium" name="utm_medium">

  <input type="hidden" id="utm_campaign" name="utm_campaign">


  <input type="text" name="name" placeholder="Full Name" required>

  <input type="email" name="email" placeholder="Work Email" required>

  <input type="text" name="role" placeholder="Your Role (e.g. Recruiter)" required>

  <input type="text" name="company" placeholder="Company Name (Optional)">

  

  <select name="teamSize" required>

    <option value="" disabled selected>Team Size</option>

    <option value="1-5">1-5</option>

    <option value="6-20">6-20</option>

    <option value="20+">20+</option>

  </select>


  <textarea name="method" placeholder="How do you shortlist candidates today?" required></textarea>

  <textarea name="pain" placeholder="What is your biggest headache in hiring?" required></textarea>


  <label style="font-size:12px; display:block; margin:10px 0;">

    <input type="checkbox" name="consent" required>

    I agree to let HireRubric process my details for waitlist updates. You can opt out anytime by emailing info@hirerubric.in.

  </label>


  <button type="submit" id="submit-btn">Join Waitlist</button>

  <p id="form-response" style="display:none;"></p>

</form>


<script>

  // Catch campaign tracking links automatically

  const urlParams = new URLSearchParams(window.location.search);

  ['utm_source', 'utm_medium', 'utm_campaign'].forEach(param => {

    if (urlParams.has(param)) document.getElementById(param).value = urlParams.get(param);

  });


  // Handle form submission

  document.getElementById('waitlist-form').addEventListener('submit', async function(e) {

    e.preventDefault();

    const btn = document.getElementById('submit-btn');

    const resp = document.getElementById('form-response');

    btn.disabled = true;

    btn.innerText = "Submitting...";


    const formData = new FormData(e.target);

    const payload = Object.fromEntries(formData.entries());

    payload.consent = formData.get('consent') === 'on';


    try {

      const res = await fetch("https://script.google.com/macros/s/AKfycbycQylBTYA5jCi_nuE_7kQEpYDEzQiXShWKpYsnVd3pZ7cwPOPZESFNf9ZCph0tRvmgPw/exec", {

        method: 'POST',

        headers: { 'Content-Type': 'text/plain;charset=utf-8' },

        body: JSON.stringify(payload)

      });

      const result = await res.json();

      if (result.result === 'success') {

        resp.style.color = "green";

        resp.innerText = "You're on the list!";

        resp.style.display = "block";

        e.target.reset();

      } else {

        throw new Error(result.message);

      }

    } catch (err) {

      resp.style.color = "red";

      resp.innerText = "Something went wrong. Please email info@hirerubric.in";

      resp.style.display = "block";

    } finally {

      btn.disabled = false;

      btn.innerText = "Join Waitlist";

    }

  });

</script>