Module: PartyResearch
- Defined in:
- app/services/party_research/orchestrator.rb,
app/services/party_research/adapters/base.rb,
app/services/party_research/auto_enricher.rb,
app/services/party_research/adapters/apollo.rb,
app/services/party_research/adapters/gemini.rb,
app/services/party_research/finding_applier.rb,
app/services/party_research/adapters/google_places.rb,
app/services/party_research/adapters/people_data_labs.rb
Overview
People Data Labs (PDL) adapter — identity resolution for individuals AND
small-business firmographics, recommended by the team's enrichment
vendor review (Basecamp todo #9497751860). PDL's coverage complements
our existing adapters:
- Apollo skews enterprise, missed Bob Electric and Metropolitan
Paving entirely; PDL Company Enrichment returned both with
founded year, LinkedIn URL, size, summary, and a website we
didn't have on file. - PDL Person Enrichment takes a personal email and returns
name + social profiles, when the person is in their ~3B index.
Strategy by party type:
- Contact (always a person) → /v5/person/enrich
- homeowner Customer (also a person) → /v5/person/enrich
- company Customer → /v5/company/enrich
Anchor priority:
- Person: email > phone > (name + locality)
- Company: domain (derived from contact emails) > name
Trial-tier caveat: PDL redacts the actual values of phone numbers and
emails on the Person Starter bundle (returns booleans like
phone_numbers: [true] instead of the real number). We only surface
fields that come back as real strings — name corrections, social
URLs, country-level location, company firmographics — and drop
"this field exists but the value is hidden" rows since they're not
actionable.
Auth: X-Api-Key header. Credential at
Heatwave::Configuration.fetch(:peopledatalabs, :api_key).
Defined Under Namespace
Modules: Adapters Classes: AutoEnricher, FindingApplier, Orchestrator