<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>