Semantic People Search
Complete guide to the LinkedIn Agent API for programmatic access to semantic people search.
https://linksearch.ai/api
Include your API key in the Authorization header: Bearer YOUR_API_KEY
{ "query": "Startup founders in bay area with big tech background", "filters": { "location": "San Francisco Bay Area", "gender": "any", "ageFrom": 25, "ageTo": 45, "language": "English, Mandarin" }, "deepSearch": true }
query
Natural language description of the people you want to find
filters
Additional filters for location, gender, age, and language
deepSearch
Enable real-time LinkedIn search (default: false)
{ "job_id": "job_abc123def456", "status": "PENDING", "created_at": "2024-01-15T10:30:00Z" }
job_id
The job ID returned from the search endpoint
{ "job_id": "job_abc123def456", "status": "RUNNING", "progress": 45, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:32:15Z" }
{ "job_id": "job_abc123def456", "status": "FINISHED", "progress": 100, "created_at": "2024-01-15T10:30:00Z", "completed_at": "2024-01-15T10:35:22Z", "results": [ { "name": "John Smith", "linkedinUrl": "https://linkedin.com/in/johnsmith", "summary": "Experienced startup founder with 10+ years...", "skills": ["Leadership", "Product Management", "AI/ML"], "education": [ { "school": "Stanford University", "degree": "MBA", "field": "Business Administration", "years": "2010-2012" } ], "experiences": [ { "company": "TechCorp", "title": "Founder & CEO", "duration": "2018-Present", "description": "Founded and scaled AI startup..." } ], "others": { "age": 35, "gender": "Male", "currentLocation": "San Francisco, CA", "languages": ["English", "Spanish"] } } ] }
10/hour
Maximum search jobs per hour
100/minute
Job status polling limit
// Create a search job const response = await fetch('/api/search', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY' }, body: JSON.stringify({ query: 'AI engineers with startup experience', deepSearch: true }) }); const { job_id } = await response.json(); // Poll for results const pollJob = async (jobId) => { const response = await fetch(`/api/jobs/${jobId}`); const job = await response.json(); if (job.status === 'FINISHED') { return job.results; } else if (job.status === 'FAILED') { throw new Error('Job failed'); } else { // Wait and poll again await new Promise(resolve => setTimeout(resolve, 30000)); return pollJob(jobId); } }; const results = await pollJob(job_id);
import requests import time # Create search job response = requests.post('/api/search', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={ 'query': 'AI engineers with startup experience', 'deepSearch': True } ) job_id = response.json()['job_id'] # Poll for results while True: response = requests.get(f'/api/jobs/{job_id}') job = response.json() if job['status'] == 'FINISHED': results = job['results'] break elif job['status'] == 'FAILED': raise Exception('Job failed') else: time.sleep(30) # Wait 30 seconds