Skip to content

Commit 2fbe1fc

Browse files
waleedlatif1claude
andcommitted
feat(peopledatalabs): add People Data Labs integration
Add 11 PDL operations: person enrich/identify/search/bulk, company enrich/search/bulk/clean, location/school cleaners, and autocomplete. All endpoints, params, and response shapes verified against official PDL docs (scroll_token pagination, top-level likelihood on company enrich, per-item likelihood on bulk company, full autocomplete field enum). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 6a00685 commit 2fbe1fc

24 files changed

Lines changed: 2697 additions & 0 deletions

apps/docs/components/icons.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,24 @@ export function YouTubeIcon(props: React.SVGProps<SVGSVGElement>) {
895895
)
896896
}
897897

898+
export function PeopleDataLabsIcon(props: SVGProps<SVGSVGElement>) {
899+
return (
900+
<svg
901+
width='1em'
902+
height='1em'
903+
viewBox='0 0 99.92 90.06'
904+
xmlns='http://www.w3.org/2000/svg'
905+
{...props}
906+
>
907+
<path
908+
fill='#fff'
909+
fillRule='evenodd'
910+
d='M99.91,57.77l-3.2-24.4c0-.7-.4-1.3-.8-1.8l-20-21.3c-.5-.5-1.1-.8-1.8-1L29.21.07c-1.1-.2-2.2,0-2.9.8L1.01,24.07c-.9.8-1.2,2-.9,3.1l6,23.4c.3,1.2,1.3,2.1,2.5,2.4l9.9,2,11.3,6.6h0l11.9,6.5,14.9,20.6c.8,1.1,2.2,1.6,3.5,1.3l8.1-1.9c1.4-.3,2.5-1.6,2.5-3l.3-6.8,27.4-17.4c1.1-.7,1.6-1.9,1.5-3.1ZM90.31,35.17l2.1,16.3-40.2-26.8,20.4-8.4,17.7,18.8v.1ZM31.11,7.17l31.2,6.3-18.4,7.5h0l-16.8,7.3s4-21.1,4-21.1ZM12.01,47.07l-5-19.6,16.5-15.1-3.9,20.7c-.3,1.4.4,2.7,1.6,3.4l30.1,16.6-31-4.4-8.3-1.7v.1ZM60.81,83.17l-14-19.4c-.3-.4-.7-.7-1.1-1l-9.8-5.4,29,4.1-.4,14.7-.2,6-3.5.8v.2ZM83.01,62.97l-11.7,7.4.3-11.5c0-1.2-.6-2.3-1.7-2.9l-39.8-21.9,14.8-6.4,45.7,30.4-7.7,4.9h.1Z'
911+
/>
912+
</svg>
913+
)
914+
}
915+
898916
export function PerplexityIcon(props: SVGProps<SVGSVGElement>) {
899917
return (
900918
<svg width='1em' height='1em' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' {...props}>

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ import {
135135
PackageSearchIcon,
136136
PagerDutyIcon,
137137
ParallelIcon,
138+
PeopleDataLabsIcon,
138139
PerplexityIcon,
139140
PineconeIcon,
140141
PipedriveIcon,
@@ -351,6 +352,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
351352
outlook: OutlookIcon,
352353
pagerduty: PagerDutyIcon,
353354
parallel_ai: ParallelIcon,
355+
peopledatalabs: PeopleDataLabsIcon,
354356
perplexity: PerplexityIcon,
355357
pinecone: PineconeIcon,
356358
pipedrive: PipedriveIcon,

apps/docs/content/docs/en/tools/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@
131131
"outlook",
132132
"pagerduty",
133133
"parallel_ai",
134+
"peopledatalabs",
134135
"perplexity",
135136
"pinecone",
136137
"pipedrive",
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
title: People Data Labs
3+
description: Enrich and search people and companies
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="peopledatalabs"
10+
color="#4831C3"
11+
/>
12+
13+
{/* MANUAL-CONTENT-START:intro */}
14+
## Description
15+
16+
[People Data Labs](https://www.peopledatalabs.com/) is a person and company data provider with a global dataset of 3B+ person profiles and 25M+ company records. The Sim block exposes the core REST endpoints so agents can enrich a single contact, look up a company, or run dataset-wide search queries.
17+
18+
Use this block to:
19+
- **Person Enrich** — resolve a single person by email, phone, LinkedIn URL, or name + company/location, and pull back their work history, contact info, and skills.
20+
- **Person Search** — run SQL or Elasticsearch DSL queries against the person dataset to build prospect lists or audience segments.
21+
- **Company Enrich** — resolve a single company by name, website, ticker, LinkedIn URL, or PDL ID, and pull back firmographics.
22+
- **Company Search** — query the company dataset with SQL or Elasticsearch DSL.
23+
- **Autocomplete** — get suggested values for fields like `title`, `skill`, `industry`, or `location` to build well-formed search queries.
24+
25+
Authentication uses an API key passed as the `X-Api-Key` header. Get a key from the [PDL dashboard](https://dashboard.peopledatalabs.com/).
26+
{/* MANUAL-CONTENT-END */}
27+
28+
29+
## Usage Instructions
30+
31+
Enrich a single person or company with People Data Labs, or search the global person and company datasets with SQL or Elasticsearch DSL. Useful for sales enrichment, contact lookup, and CRM hygiene.
32+
33+
34+
35+
## Tools
36+
37+
### `pdl_person_enrich`
38+
39+
40+
### `pdl_person_identify`
41+
42+
43+
### `pdl_person_search`
44+
45+
46+
### `pdl_bulk_person_enrich`
47+
48+
49+
### `pdl_company_enrich`
50+
51+
52+
### `pdl_company_search`
53+
54+
55+
### `pdl_bulk_company_enrich`
56+
57+
58+
### `pdl_clean_company`
59+
60+
61+
### `pdl_clean_location`
62+
63+
64+
### `pdl_clean_school`
65+
66+
67+
### `pdl_autocomplete`
68+
69+
70+

apps/sim/app/(landing)/integrations/data/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ import {
135135
PackageSearchIcon,
136136
PagerDutyIcon,
137137
ParallelIcon,
138+
PeopleDataLabsIcon,
138139
PerplexityIcon,
139140
PineconeIcon,
140141
PipedriveIcon,
@@ -335,6 +336,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
335336
outlook: OutlookIcon,
336337
pagerduty: PagerDutyIcon,
337338
parallel_ai: ParallelIcon,
339+
peopledatalabs: PeopleDataLabsIcon,
338340
perplexity: PerplexityIcon,
339341
pinecone: PineconeIcon,
340342
pipedrive: PipedriveIcon,

apps/sim/app/(landing)/integrations/data/integrations.json

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9715,6 +9715,69 @@
97159715
"integrationTypes": ["search", "ai"],
97169716
"tags": ["web-scraping", "llm", "agentic"]
97179717
},
9718+
{
9719+
"type": "peopledatalabs",
9720+
"slug": "people-data-labs",
9721+
"name": "People Data Labs",
9722+
"description": "Enrich and search people and companies",
9723+
"longDescription": "Enrich a single person or company with People Data Labs, or search the global person and company datasets with SQL or Elasticsearch DSL. Useful for sales enrichment, contact lookup, and CRM hygiene.",
9724+
"bgColor": "#4831C3",
9725+
"iconName": "PeopleDataLabsIcon",
9726+
"docsUrl": "https://docs.sim.ai/tools/peopledatalabs",
9727+
"operations": [
9728+
{
9729+
"name": "Person Enrich",
9730+
"description": "Enrich a single person profile using People Data Labs. Match by email, phone, LinkedIn URL, or name + company/location. Returns work history, contact details, location, and skills."
9731+
},
9732+
{
9733+
"name": "Person Identify",
9734+
"description": "Return up to 20 candidate person matches with confidence scores. Useful when you want to see all plausible matches rather than the single best one. Reference: https://docs.peopledatalabs.com/docs/identify-api-quickstart"
9735+
},
9736+
{
9737+
"name": "Person Search",
9738+
"description": "Search the People Data Labs person dataset using SQL or Elasticsearch DSL. Returns up to 100 matching records per call."
9739+
},
9740+
{
9741+
"name": "Bulk Person Enrich",
9742+
"description": "Enrich up to 100 person records in a single call. Provide a JSON array of request objects, each with a `params` object (and optional `metadata` echoed back). Reference: https://docs.peopledatalabs.com/docs/bulk-person-enrichment-api"
9743+
},
9744+
{
9745+
"name": "Company Enrich",
9746+
"description": "Enrich a single company using People Data Labs. Match by name, website, LinkedIn URL, ticker, or PDL ID."
9747+
},
9748+
{
9749+
"name": "Company Search",
9750+
"description": "Search the People Data Labs company dataset using SQL or Elasticsearch DSL. Returns up to 100 matching companies per call."
9751+
},
9752+
{
9753+
"name": "Bulk Company Enrich",
9754+
"description": "Enrich up to 100 companies in a single call. Provide a JSON array of request objects, each with a `params` object. Reference: https://docs.peopledatalabs.com/docs/bulk-company-enrichment-api"
9755+
},
9756+
{
9757+
"name": "Company Cleaner",
9758+
"description": "Normalize a company string into a canonical company record. Provide at least one of name, website, or profile (LinkedIn URL)."
9759+
},
9760+
{
9761+
"name": "Location Cleaner",
9762+
"description": "Normalize a freeform location string into a structured locality/region/country record with coordinates."
9763+
},
9764+
{
9765+
"name": "School Cleaner",
9766+
"description": "Normalize a school string into a canonical school record. Provide at least one of name, website, or profile (LinkedIn URL)."
9767+
},
9768+
{
9769+
"name": "Autocomplete",
9770+
"description": "Get autocomplete suggestions for a PDL field (title, skill, company, industry, location, school, major, role, sub_role)."
9771+
}
9772+
],
9773+
"operationCount": 11,
9774+
"triggers": [],
9775+
"triggerCount": 0,
9776+
"authType": "api-key",
9777+
"category": "tools",
9778+
"integrationTypes": ["sales"],
9779+
"tags": ["enrichment"]
9780+
},
97189781
{
97199782
"type": "perplexity",
97209783
"slug": "perplexity",

0 commit comments

Comments
 (0)