Embed Widget
Embed TalentSprout interviews directly on your careers page, job postings, or ATS. Candidates complete interviews without leaving your site.
Quick Start
Get your interview ID
Find your interview ID in the dashboard, or copy the embed code from the Share modal.
Add the iframe to your page
Paste the embed code on your careers page or job posting. The allow attribute is required for camera and microphone access.
<iframe
src="https://www.talentsprout.ai/embed/interview/YOUR_INTERVIEW_ID"
allow="camera; microphone; autoplay; fullscreen; display-capture"
width="100%"
height="700"
style="border: none; border-radius: 12px;"
></iframe>Important: The allow="camera; microphone; autoplay" attribute is required. Without it, candidates won't be able to use their camera or microphone for the interview.
Pre-fill Candidate Data
If you already have candidate information (from your ATS or application form), you can pre-fill it to skip the candidate info collection step.
<iframe
src="https://www.talentsprout.ai/embed/interview/abc123?firstName=John&lastName=Doe&email=john@company.com&phone=%2B1234567890"
allow="camera; microphone; autoplay; fullscreen; display-capture"
width="100%"
height="700"
style="border: none; border-radius: 12px;"
></iframe>| Parameter | Description |
|---|---|
firstName | Candidate's first name |
lastName | Candidate's last name |
email | Email address (*required to auto-skip info step) |
phone | Phone number (URL encoded) |
candidateId | Your internal candidate ID |
Tip: When firstName, lastName, and email are all provided, the candidate info step is automatically skipped.
Events
Listen for events from the embedded widget using the postMessage API. This allows you to react to interview progress on your parent page.
| Event | Data |
|---|---|
talentsprout:ready | interviewId, interviewTitle |
talentsprout:started | interviewId, sessionId |
talentsprout:completed | sessionId, candidateId, success, duration |
// Listen for events from the embedded interview
window.addEventListener('message', (event) => {
// Verify origin for security
if (event.origin !== 'https://www.talentsprout.ai') return;
const { type, data, timestamp } = event.data;
switch (type) {
case 'talentsprout:ready':
console.log('Widget loaded and ready');
break;
case 'talentsprout:started':
console.log('Interview started', data.sessionId);
break;
case 'talentsprout:completed':
console.log('Interview completed', data);
// Redirect or update your UI
// data includes: sessionId, candidateId, success, duration
break;
}
});Styling Options
The embed widget is designed to work on any page. Here are some common layout patterns.
Responsive Container
<!-- Responsive container with 16:9 aspect ratio -->
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
<iframe
src="https://www.talentsprout.ai/embed/interview/abc123"
allow="camera; microphone; autoplay; fullscreen; display-capture"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; border-radius: 12px;"
></iframe>
</div>Full Page Embed
<!-- Full-height embed for dedicated interview pages -->
<div style="height: 100vh; min-height: 700px;">
<iframe
src="https://www.talentsprout.ai/embed/interview/abc123"
allow="camera; microphone; autoplay; fullscreen; display-capture"
width="100%"
height="100%"
style="border: none;"
></iframe>
</div>Security
HTTPS Required
Camera and microphone access requires a secure context. Your page must be served over HTTPS.
Browser Permissions
Candidates will be prompted to allow camera/microphone access by their browser.
Origin Verification
When listening for postMessage events, always verify event.origin to prevent spoofing.
Interview Validation
The widget validates candidate eligibility server-side before starting interviews.
Examples
Use the embed widget for:
- Careers page with inline interviews
- Job posting pages on job boards
- ATS integration with embedded screening
- Application confirmation pages
Need help with your integration?
Our team is here to help you get set up.