---
name: moltsets-attio-campaign-segment-builder
description: Turn a targeting brief like "VP+ Fintech, 200-1000 employees" into an Attio list, matching existing records first and topping up with net-new people from MoltSets.
---

# Attio Campaign Segment Builder

## Triggers

- "Build a campaign list of VP+ Fintech contacts at 200-1000 employee companies, top up from MoltSets if needed"
- "I need 500 Director+ Marketing contacts at mid-market SaaS companies for a campaign"

## What this skill does

Builds a campaign-ready list against a plain-English brief. It translates the brief into title, seniority, industry, and company size filters, matches against your existing Attio person records first, and only pulls net-new people from MoltSets to make up the shortfall to your target list size. Existing records are never duplicated, and the output is a single Attio list sized to the brief.

## Chain

```
Targeting brief (title / seniority / industry / size / target count)
  to attio/query-records                (existing people matching the brief)
  to compare match count against target list size
  to MoltSets:
      search_people                     (title/seniority/department + industry + employee_range, if shortfall)
  to dedupe candidates against existing Attio records
  to linkedin_to_best_email             (fill email gaps on net-new candidates)
  to attio/create-record                (create net-new person records)
  to attio/add-list-entry               (add existing + net-new records to the target list)
```

## Inputs

- **Targeting brief** - title/seniority, department, industry, employee range, and any other firmographic filter
- **Target list size** - how many total records the campaign needs
- **Existing-record priority** - whether to use existing Attio records first, always, or only above a certain match quality
- **List name** - the Attio list the result should be saved to

## How it works

1. Parses the brief into structured filters: title or seniority, department, industry, and employee range
2. Searches existing Attio person records against those filters first
3. If the existing match count falls short of the target list size, runs `search_people` in MoltSets with the same filters to source net-new candidates
4. Dedupes the candidates against existing Attio records by email and domain plus name
5. Runs `linkedin_to_best_email` on any net-new candidate missing an email
6. Creates the net-new person records in Attio and adds both existing and net-new records to the named list

## Output

| Name | Company | Title | Seniority | Industry | Source | Existing/Net-New | Added to List |
| --- | --- | --- | --- | --- | --- | --- | --- |

```
Target list size:            X
Existing matches used:       X
Net-new candidates sourced:  X
Net-new added to Attio:      X
Final list size:             X
MoltSets tokens used:        X
```

## Tips

- Requires the Attio MCP (mcp.attio.com) and the MoltSets MCP connected in the same client
- Prioritising existing Attio records first keeps token spend down and avoids working an account you already have a relationship with
- If the brief is vague on seniority, run a small sample first and confirm the mapping before sourcing the full shortfall
- A per-company cap keeps a single large account from dominating the list at the expense of coverage
- Attio lists can hold a mix of standard and custom object records, so this works for non-person target lists too if your brief calls for it
