Custom fields you want generated for this profile. Each field should have a type and description.Example:
Copy
Ask AI
{ "fit_score": { "type": "number", "description": "How well this person matches the job: Senior Python Engineer, SF-based" }, "email_copy": { "type": "string", "description": "A personalized email inviting them to apply" }}
# For long-running enrichment, use webhookspayload = { "person": "Justin Connell, CEO at PeopleContext", "schema": { "fit_score": { "type": "number", "description": "Fit for executive role" } }, "webhook_url": "https://yourapp.com/webhooks/context", "response_timeout_sec": 10}# Request returns immediately if processing takes longer than 10 secondsresponse = requests.post( f"{BASE_URL}/api/v1/context", headers=headers, json=payload)# Result will be POSTed to your webhook URL when ready
Score candidates automatically based on job requirements:
Copy
Ask AI
job_description = """Senior Python EngineerRequirements:- 5+ years Python experience- Experience with FastAPI, Django, or Flask- Cloud deployment (AWS/GCP)- SF Bay Area based or remote"""def score_candidate(person_data): payload = { "person": person_data, "schema": { "fit_score": { "type": "number", "description": f"How well this person matches this role (0.0-1.0):\n{job_description}" }, "match_reasons": { "type": "array", "description": "3-5 specific reasons why they match or don't match" }, "red_flags": { "type": "array", "description": "Any concerns or missing qualifications" } } } response = requests.post( f"{BASE_URL}/api/v1/context", headers=headers, json=payload ) return response.json()# Use itcandidate = score_candidate("Jane Smith, Senior Backend Engineer at Stripe")print(f"Fit: {candidate['custom']['fit_score']}")print(f"Reasons: {candidate['custom']['match_reasons']}")
def qualify_lead(person_info, company_criteria): payload = { "person": person_info, "schema": { "is_decision_maker": { "type": "boolean", "description": "Is this person a decision-maker for enterprise software purchases?" }, "company_size_match": { "type": "boolean", "description": f"Does their company match our ICP: {company_criteria}" }, "outreach_angle": { "type": "string", "description": "Best angle for outreach based on their background and current role" }, "priority_score": { "type": "number", "description": "Priority score 1-10 based on fit and likelihood to convert" } } } response = requests.post( f"{BASE_URL}/api/v1/context", headers=headers, json=payload ) return response.json()
The quality of custom fields depends on clear, detailed descriptions:Good:
Copy
Ask AI
{ "fit_score": { "type": "number", "description": "How well this person matches: Senior Python Engineer, 5+ years experience, SF-based, startup experience preferred. Score 0.0-1.0 where 1.0 is perfect match." }}
Bad:
Copy
Ask AI
{ "fit_score": { "type": "number", "description": "Score the person" }}
Adjust Confidence Levels
Use different confidence levels based on your use case:
High confidence (0.95+): Critical decisions, compliance
Medium confidence (0.85-0.95): General enrichment, CRM data
Lower confidence (0.75-0.85): Exploratory analysis, lead generation
Use Webhooks for Batch Processing
For processing large volumes, use webhooks to avoid timeouts:
Copy
Ask AI
# Process 1000 leadsfor lead in leads: requests.post( f"{BASE_URL}/api/v1/context", headers=headers, json={ "person": lead, "schema": scoring_schema, "webhook_url": "https://yourapp.com/webhooks/lead-scored", "response_timeout_sec": 5 } )# Results arrive at your webhook as they complete