Fetching data...
Developer API Reference
Build powerful integrations with our platform APIs.
Fetching data...
Build powerful integrations with our platform APIs.
Build powerful integrations with our platform APIs.
Sync candidates, jobs, and scorecards with Greenhouse, Lever, or Workday.
Periodically fetch jobs from ATS via GET /api/v1/jobs and update PeopleLensAI records using external_id.
Export PeopleLensAI scores to ATS notes or custom fields once an interview loop completes via Webhooks.
PeopleLensAI is a certified Technology Partner on the Recruitee App Marketplace. Our native integration provides bi-directional syncing of Candidates, Jobs, and AI Interview Scorecards without needing any manual API keys.
Navigate to Settings > Apps and plugins > Integrations inside your Recruitee dashboard. Locate PeopleLensAI in the marketplace and click Integrate. You will be redirected to approve the connection.
To automatically sync new Candidates and Jobs from Recruitee into PeopleLensAI, you must configure a Webhook in Recruitee.
https://your-tenant.peoplelensai.com/api/webhooks/recruitee?api_token=YOUR_SECRET_TOKEN* Remember to replace your_tenant_id with your actual PeopleLensAI Tenant ID found in Settings.
The setup is complete! When you schedule an interview in PeopleLensAI for a synced candidate, the meeting link will automatically appear in their Recruitee profile. Once the interview is complete, the AI-generated Evaluation Scorecard will be instantly pushed back to Recruitee.
Most ATS systems provide Harvest APIs or Webhooks. Set up a middleware (or Zapier) to map ATS candidate fields to PeopleLensAI.
# Step 1: Mapping Candidate to PeopleLensAI
POST /api/v1/candidates { "first_name": "Jane", "last_name": "Smith", "email": "jane@example.com", "external_id": "gh_123456", "metadata": { "ats": "greenhouse", "job_opening_id": "open_9988" } }# Step 2: Resolving Internal IDs later
GET /api/v1/resolve ?type=candidate &external_id=gh_123456 { "found": true, "id": "can_7788911", "type": "candidate" }// 1. In your ATS (e.g. Greenhouse), configure a webhook to this endpoint
// 2. This maps the ATS candidate record to a PeopleLensAI candidate
app.post('/webhooks/ats-sync', async (req, res) => {
const { candidate, job_item } = req.body;
try {
const response = await fetch('https://api.peoplelensai.com/v1/candidates', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + process.env.API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
first_name: candidate.first_name,
last_name: candidate.last_name,
email: candidate.email_addresses[0].value,
external_id: `gh_${candidate.id}`, // Prefix to avoid collisions
metadata: {
ats_source: 'greenhouse',
original_job_id: job_item.id
}
})
});
return res.status(200).send('Sync Successful');
} catch (err) {
console.error('Sync failed:', err);
return res.status(500).send('Sync Error');
}
});