Search, enrich from Claude & push to HubSpot

Search, enrich from Claude & push to HubSpot

Claude

the skill listens in the background. The moment FullEnrich returns contacts (from a search, an enrich, or a bulk job), the skill grabs the results and upserts them into your HubSpot Contacts object using email as the unique key. New emails create new contacts, existing emails update the existing record. Every contact is then added to the static list you picked at setup, and HubSpot's native company-association kicks in automatically (each contact gets linked to the right company by email domain). You do not need to mention HubSpot in your message, the skill knows where to send them.

1. Connect both MCPs to Claude

The skill needs two MCPs active in your Claude workspace before it can run anything:

  • FullEnrich MCP at https://mcp.fullenrich.com/mcp

  • HubSpot MCP (the official HubSpot MCP server)

New to MCPs? Follow the FullEnrich MCP setup guide, the HubSpot one works the same way.

2. Install the skill in Claude

Click Download Skill above to grab the skill .zip file, then install it in Claude:

  • Open Customize in Claude

  • Click Create new skill

  • Click the + button at the top

  • Choose Create Skill

  • Pick Upload a skill and select the .zip you just downloaded


3. Answer 2 setup questions (one time only)

The first time FullEnrich returns results, the skill stops to ask 2 quick questions and then saves your answers in Claude's memory for every future conversation:

  • Which HubSpot static list? Paste the URL or type the name (e.g. "Inbound Leads", "Sales Pipeline"). It must be a static list, not an active list. Active lists are rule-based and HubSpot does not allow adding contacts manually to them. If you do not have a static list yet, create one in HubSpot first (Contacts, Lists, Create list, Static).

  • Auto-push or confirm each time? Pick "auto" to never be asked again, or "confirm" to get a one-line prompt before every push.

The destination object is always Contacts, so you do not pick an object. There is no property-mapping step either, the skill adapts to your contact properties by itself (see step 5).

4. Use FullEnrich normally in chat

From now on, just talk to Claude as usual: "find me 50 VPs of Sales at fintech US", "enrich this list of LinkedIn URLs", "look up this email". As soon as FullEnrich returns contacts, the skill kicks in and prepares the push. You do not need to say "send to HubSpot", the skill already knows where they go.

5. The skill adapts to your contact properties automatically

Before pushing, the skill reads your Contacts object's properties and maps FullEnrich fields to standard HubSpot property names first, then falls back to fuzzy matching for custom properties:

  • email, phone, firstname, lastname, company, jobtitle, industry, city, country get filled when the property exists

  • hs_linkedin_url picks up the LinkedIn URL on workspaces that have it; otherwise the skill matches a custom field named LinkedIn, Profile, etc.

  • Whatever properties you have get filled, the rest is silently skipped

The skill never adds properties, never auto-creates enumeration options, and never sets lifecyclestage or hubspot_owner_id (those properties trigger workflows and routing rules, the skill leaves them alone on purpose).

6. Auto-push or confirm before each push

Depending on the mode you picked at setup:

  • Auto, the skill upserts the contacts, adds them to the list, lets HubSpot auto-associate companies, and posts a one-line recap with a link to the list.

  • Confirm, the skill ends its message with "Push these N contacts to [list name] in HubSpot?" and waits for a yes before sending.

Want to switch modes or change the destination list later? Tell Claude "change the HubSpot list", "switch to confirm mode", or run /setup. To turn auto-push off entirely: "stop pushing to HubSpot".

Built-in dedup & company linking: every push uses HubSpot's native upsert with email as the unique key, so the same contact never lands twice. Companies are linked automatically thanks to HubSpot's default Contact, Company association by email domain (a contact created with jane@acme.com gets linked to the acme.com company, or a new company record is created if none exists). The skill never sets lifecyclestage or contact owner, so it never triggers your workflows or routing rules by accident.

Troubleshooting

Claude says an MCP is not connected

Open Claude settings and connect the missing MCP using its URL above. The skill resumes on the next message.

"That looks like an active list"

HubSpot active lists are rule-based and the skill cannot add contacts manually. Create a static list in HubSpot (Contacts, Lists, Create list, Static), then run /setup.

Some contacts fell back to create only (no upsert)

Those contacts had no email, so dedup was impossible. The skill still added them with the data available. Re-enrich them later when you have an email.

A property did not get filled

The fuzzy matcher could not align that property to a FullEnrich field. Use a more standard internal name (e.g. email, phone, jobtitle) and the next push picks it up.

Enumeration field came up empty

FullEnrich returned a value (e.g. Fintech) but the enum option does not exist on that property. Add it manually in HubSpot, or use a free-text property instead.

Contacts are not getting linked to companies

HubSpot's automatic company association may be disabled in your account. Check Settings, Objects, Companies, and re-enable "Automatically create and associate companies with contacts".

Clay