GuideAPI referenceSDKs
Dashboard
Reference

Field normalization

Use these canonical field names and accepted values when filtering people and employer snapshots in the v2 APIs.

How normalization works

moltsetz stores B2B records in Elasticsearch and returns a normalized JSON shape from each endpoint. Exact list filters must use values from the current index, including capitalization and punctuation, especially for country codes, regions, seniority, company type, and departments.

  • Use include/exclude objects for keyword-style filters such as company.domain, company.name, and people.job_title.
  • Keep max_results between 1 and 100. Cursors are opaque and should be sent back unchanged.
  • When a narrow filter returns no results, run a broader request first and copy returned normalized values into the next request.

Accepted value lists

These lists are generated from the current production Elasticsearch indexes and show values users can put into exact normalized fields.

Find People filters

These fields are supported by Find People. Employer filters use the current company snapshot stored on each contact record.

Employer filters

Request fieldNormalized formatResponse fieldExamples
company.domainBare employer hostname, or include/exclude arrays.company.domainopenai.com, google.com
company.nameEmployer name terms or phrases, or include/exclude arrays.company.nameOpenAI, Microsoft
company.keywordsAlias-style employer name keyword filter.company.nameopenai, salesforce
company.country_codeUppercase ISO 3166-1 alpha-2 country code.company country snapshotUS, GB, IN
company.continentDataset continent value.company continent snapshotNorth America, Europe
company.typeExact source company type label.company.typePrivately Held, Public Company

Person filters

Request fieldNormalized formatResponse fieldExamples
people.job_titleCurrent title terms or phrases, or include/exclude arrays.job_titleCEO, VP Marketing, Head of Growth
people.titleAlias for people.job_title.job_titleFounder, Product Manager
people.job_functionExact source department or function label.job_functionGeneral Business & Management
people.departmentAlias for people.job_function.job_functionSales & Business Development
people.job_levelExact source seniority label.job_levelStaff, Manager, Director, VP, C-Team, Other
people.seniorityAlias for people.job_level.job_levelC-Team, VP
people.country_codeUppercase ISO 3166-1 alpha-2 country code.location.country_codeUS, GB, IN
people.continentDataset continent value.location.continentNorth America, Asia
people.sales_regionDataset sales region code.Filter-onlyNORAM, LATAM, EMEA, APAC
people.min_connections_countPositive integer lower bound.connections_count500

Returned people fields

People search returns normalized person fields plus a nested company object when employer data is available.

FieldTypeDescription
first_namestring | nullGiven name.
last_namestring | nullFamily name when present in the source data.
full_namestring | nullPerson display name.
headlinestring | nullLinkedIn headline.
job_titlestring | nullCurrent title.
job_functionstring | nullDepartment or functional area.
job_levelstring | nullSeniority level.
linkedin_urlstring | nullCanonical LinkedIn profile URL.
connections_countinteger | nullLinkedIn connection count when available.
profile_picture_urlstring | nullProfile image URL when available.
location.citystring | nullPerson city.
location.state_codestring | nullPerson state or subdivision code.
location.country_codestring | nullPerson country code.
location.continentstring | nullSource continent value.
emailstring | nullWork email when available.
phonestring | nullMobile or direct phone when available.
companyobject | nullNested normalized company object using the company fields above.

Returned employer snapshot fields

These fields can appear inside results[].company from Find People.

FieldTypeDescription
company.linkedin_urlstring | nullCurrent employer LinkedIn company URL.
company.namestring | nullCurrent employer display name.
company.headlinestring | nullCurrent employer headline when available.
company.aboutstring | nullCurrent employer description when available.
company.industrystring | nullCurrent employer industry label returned from the contact index.
company.typestring | nullCurrent employer entity type.
company.sizestring | number | nullCurrent employer size bucket when available.
company.employees_on_linkedininteger | nullEmployee count represented on LinkedIn.
company.founded_yearinteger | nullYear the employer was founded.
company.domainstring | nullCurrent employer primary domain.
company.websitestring | nullCurrent employer website URL.
company.logostring | nullCurrent employer logo image URL.

Examples

People search request

curl -X POST "https://moltsetz.com/v2/search/people" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "company": {
    "domain": {
      "include": [
        "openai.com"
      ]
    }
  },
  "people": {
    "job_title": {
      "include": [
        "CEO"
      ]
    }
  },
  "max_results": 2
}'

Observed normalized fields from a live response:

{
  "job_function": "General Business & Management",
  "job_level": "C-Team",
  "location": {
    "country_code": "US"
  },
  "company": {
    "name": "OpenAI",
    "domain": "openai.com",
    "about": "AI research and deployment company.",
    "industry": "Software Development"
  }
}

Unsupported Find People filters

Do not use these fields as Find People filters until the API maps them in the contacts query.

  • company.industry, company.employee_range, and company.sales_region.
  • company.hq.*, revenue, funding, NAICS, SIC, traffic, ad spend, technologies, and open roles.
  • people.education, people.skills, people.certifications, and people.languages.

Troubleshooting

ProblemWhat to check
No results for a domain filterUse the bare hostname in company.domain, then retry without protocol, path, query, or www.
No results for role filtersStart with a broader keyword, inspect returned job_title, then reuse the returned value.
Country or region filters miss recordsUse uppercase country codes such as US and exact sales regions such as NORAM.
Unexpected 422 validation errorConfirm at least one supported filter is present and max_results is between 1 and 100.
moltsetz - B2B data infrastructure