---
name: moltsets-attio-title-seniority-normalization
description: Replace blank and messy Attio job titles with canonical title, seniority, and department values from MoltSets, then write a routing-ready seniority attribute back to the CRM.
---

# Attio Title and Seniority Normalisation

## Triggers

- "Clean up blank and messy job titles in Attio and set a routing-ready seniority field"
- "Normalize titles and seniority for this Attio import batch"

## What this skill does

Turns inconsistent Attio job titles into clean, standardised data your team can route and score on. It finds person records with blank or messy titles, pulls a canonical title, seniority, and department from MoltSets, maps those to your Attio select attribute options, and writes them back. The result is a consistent seniority attribute that lead routing and lifecycle scoring can rely on.

## Chain

```
Attio person records
  to attio/query-records                (people with blank or messy job title)
  to resolve identifier per record      (LinkedIn URL, or name + company domain)
  to MoltSets:
      reverse_linkedin_lookup           (LinkedIn URL -> title, seniority, department, industry)
      search_business_profile_by_name   (name + domain fallback -> title + firmographics)
  to map seniority + department to your Attio select attribute options
  to attio/update-record                (write title, seniority, department, routing attribute)
```

## Inputs

- **Attio segment** - which records to target (blank titles, freeform titles, or a specific import batch)
- **Field mapping** - how MoltSets seniority and department values map to your Attio select options
- **Overwrite policy** - fill blanks only, or also standardise existing freeform titles
- **Write-back fields** - job title, seniority, department, and an optional routing attribute

## How it works

1. Pulls person records with blank or freeform job titles from Attio
2. Picks the strongest identifier: LinkedIn URL first, then name plus company domain
3. Runs `reverse_linkedin_lookup` when a LinkedIn URL exists to return title, seniority, department, and industry in one call
4. Falls back to `search_business_profile_by_name` when only a name and domain are available, returning title and firmographics
5. Maps the MoltSets seniority value (Intern, Entry, Senior, Manager, Director, VP, Head, C Suite, Owner, Partner) and department value (Operations, Sales, Information Technology, Engineering, Finance, Marketing, Human Resources, and so on) to your Attio select attribute options
6. Writes the canonical title, seniority, and department back, plus an optional derived routing attribute for sales assignment

## Output

| Name | Company | Old Title | New Title | Seniority | Department | Action |
| --- | --- | --- | --- | --- | --- | --- |

```
Records scanned:         X
Titles cleaned:          X/N (XX%)
Seniority set:           X
Department set:          X
MoltSets tokens used:    X
```

## Tips

- Requires the Attio MCP (mcp.attio.com) and the MoltSets MCP connected in the same client
- Decide your seniority-to-select mapping once and store it in the skill so runs stay consistent across batches
- The MoltSets seniority value is "C Suite" with a space, not a hyphen, so match your select option mapping to that exact string
- Seniority and department are each around 60% filled, so expect some records to return a title without a mapped seniority
- Select attributes in Attio need their options created up front, so confirm the seniority and department options exist before the first write
- Batch writes where possible and stay inside Attio's per-workspace rate limits
