Integration Guide

Smart Links

Pre-populate candidate information in interview links using URL parameters. Perfect for ATS integrations, email campaigns, and tracking candidates with your own user IDs.

URL Builder

Use this tool to generate a properly formatted Smart Link. Just paste your interview URL or ID, fill in the candidate details, and copy the generated link.

Smart Link Builder

Generate a URL with pre-filled candidate data

Interview ID can be a shortcode (e.g. c1234567) or a UUID (e.g. 49d7c5ca-0e41-4c7c-a67a-90e6a9f2c12b).

Optional. Links the interview back to a user in your system.

URL Parameters

Add any of these parameters to your interview URL to pre-fill candidate information.

ParameterDescription
emailCandidate's email address
firstNameCandidate's first name
lastNameCandidate's last name
phoneNumberPhone number (any format, auto-normalized to E.164)
externalUserIdYour internal user/candidate ID for tracking
example-url.txt
https://www.talentsprout.ai/interview/c1234567?email=john@example.com&firstName=John&lastName=Doe&phoneNumber=%2B15551234567&externalUserId=user_12345

Behavior

When a candidate visits an interview link with URL parameters:

1

Fields are pre-filled

The candidate info form shows with the provided values already populated.

2

Pre-filled fields are locked

Fields with pre-filled values are displayed as read-only with a lock icon. Empty fields remain editable.

3

Data is stored with the session

The externalUserId is saved with the interview session and included in webhook payloads.

Refresh-safe: URL parameters are preserved in the URL, so if a candidate refreshes the page, their pre-filled data will still be there.

URL Encoding

Special characters in URL parameters must be properly encoded. Use the URL Builder tool above to automatically handle encoding, or follow these guidelines:

CharacterEncoded
+%2B
@%40
&%26
Space%20
#%23

Phone numbers: The + in phone numbers is automatically decoded as a space. Our system normalizes phone numbers to E.164 format automatically, so formats like +1-555-123-4567 or (555) 123-4567 will work correctly.

Webhooks Integration

The externalUserId is included in webhook payloads when an interview is completed, allowing you to correlate results with your own user records.

webhook-payload.json
{
  "event": "interview.completed",
  "data": {
    "candidate": {
      "id": "...",
      "firstName": "John",
      "lastName": "Doe",
      "email": "john@example.com",
      "phone": "+15551234567",
      "externalUserId": "your_user_12345"
    },
    "session": { ... },
    "scores": { ... }
  }
}

Tip: Use externalUserId to match completed interviews with users in your system without relying solely on email matching. See the Webhooks documentation for the full payload reference.

Use Case Examples

📧 Email Campaign

Send personalized interview links to candidates after they apply:

https://talentsprout.ai/interview/c1234567?email={{candidate.email}}&firstName={{candidate.first_name}}&lastName={{candidate.last_name}}

🔗 ATS Integration

Track candidates using your ATS user ID for seamless data sync:

https://talentsprout.ai/interview/c1234567?externalUserId={{ats.candidate_id}}&email={{ats.email}}

📱 Mobile App Onboarding

Embed interview links in your app with user context:

https://talentsprout.ai/interview/c1234567?externalUserId=${user.id}&email=${user.email}&firstName=${user.firstName}

Need help with your integration?

Our team is here to help you get set up.

Contact Support
    Smart Links - Pre-fill Candidate Data via URL | TalentSprout Docs