contact-classification
Classify contacts by department, seniority and role from their job title, and route them to the right persona.
Skill by mambalabsdev
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mambalabsdev-contact-classification
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/contact-classification
What's inside
- Skill name
contact-classification- Description
- Classify contacts by department, seniority and role from their job title, and route them to the right persona. Use when a contact list has messy titles, when routing by persona, or when deciding who in a company to actually contact.
- License
- MIT
- Compatibility
- Claude Code, Claude Desktop, Codex CLI, Cursor, Gemini CLI, and other agents that read SKILL.md. Live data steps need only what the Requirements section of the skill lists.
- Metadata
- tags: clay_operator, identity_enrichment, signal_based_selling · title: Contact Classification · version: 2.1.0 · category: identity-enrichment · keywords: identity, classify these job titles, route contacts by persona, who should i contact at this company, messy title data, seniority filtering · requirements: Needs an Apify token (usage billed to your Apify account); Node.js 18+.
- Instructions
- 128 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (9)
- .mcp.json
- LICENSE
- SKILL.md
- cases.json · evals/
- listing.json · listing/
- logo.png · listing/
- logo.svg · listing/
- check-output.py · scripts/
- output-contract.json · scripts/
SKILL.md (first lines)
# Contact Classification
## What this does
Job titles are unstandardized across companies and countries, and title matching by keyword sends the wrong message to the wrong person at scale. This skill classifies to department and seniority rather than matching strings, handles the ambiguous titles explicitly, and routes each contact to a persona with a stated confidence.
## Requirements
Check these before you run the skill. Nothing outside this table is needed.
| Requirement | Needed | Used for | What it costs you |
| --- | --- | --- | --- |
| Apify account and API token (`APIFY_TOKEN`) | Required | Runs the live data actors | A free Apify account works. Each run bills your own Apify account at the actor's Store price: contact-classifier 0.003 USD per contact. |
| Node.js 18 or newer | Required | The MCP tool calls | Free. It starts the Mamba Labs MCP server with `npx`. |
**Missing a required item?** Stop before the live steps and tell the user which item is
missing and what it is for. Do not run the step without it and do not present an empty
result as an answer. Keys are read from the environment at run time and are never
written into a file, a prompt or the output.
## When to use it
- classify these job titles
- route contacts by persona
- who should I contact at this company
- messy title data
- seniority filtering
## Inputs
- **contacts**: names and titles, with company domain where available
- **personas**: your personas and what distinguishes them
- **routing**: what each persona should receive
## Shared context this skill reads
Before doing anything else, read whichever of these exist at the project root and
use them instead of asking the user to repeat themselves:
- `ICP.md`
If none exist, do the work from what the user gives you, then offer to write the
missing file so the next skill in the pack starts warmer.
## Tool connection
Classification runs per title with optional position verification, so a title that is out of date can be caught rather than routed on.
This skill calls live data through the Mamba Labs MCP server, which runs the
actors on Apify with your own Apify token (https://console.apify.com/account/integrations).
- Installed as a plugin: the server is already wired, and the plugin asks for the token once.
- Installed by hand: copy `.mcp.json` from this folder into your project root and set
`APIFY_TOKEN` in your environment, or run:
```
claude mcp add mamba-gtm-suite -e APIFY_TOKEN=<your token> -- npx -y @mambalabsdev/mcp-gtm-suite@1.12.0
```
| Actor | MCP tool | Used for | Store page |
| --- | --- | --- | --- |
| Contact Classifier | `classify_contact` | department, seniority and role classification from a job title | https://apify.com/mambalabs/contact-classifier |
Runnable example input, matched to the live tool schema:
`classify_contact`:
```json
{
"job_title": "Vice President, Revenue Operations",
"company_domain": "example.com",
"verify_position": true
}
```
**Cost line.** Before any live call, state how many calls you plan and which actors
they bill. After the run, report the calls made, the calls that failed, and the Apify
usage where the tool reports it. Each actor bills the user's own Apify account at its
Store price.
**No token, no live data.** If no Apify token is available, say so and stop the live
steps. Never fill a live section from memory and present it as live.
## Method
1. Classify to department and seniority first, and only then to persona. Persona is a business concept and it changes; department and seniority do not.
2. Handle the ambiguous families explicitly rather than letting them fall to a default: founder titles at small companies that cover several departments, regional titles that look senior and are not, and consultant or advisor titles that indicate no authority at all.
3. Verify position where the list is old. A title that was right two years ago routes a message to someone who left.
4. Set the seniority floor per persona and state what happens to contacts below it: dropped, or kept as a coach rather than a buyer.
5. Report the unclassifiable share. A high share means the titles need a different source, not a better classifier.
6. Attach a confidence and route low confidence contacts to a generic sequence rather than a persona specific one, because a wrong persona message is worse than a general one.
7. Check the output with `scripts/check-output.py` before you return it.
## Approval stop
This skill does not send email or write to a CRM. If the user asks it to, stop first:
show what would be sent or written and wait for an explicit yes.
## Output
The classified table with department, seniority, persona, confidence and route; the ambiguous families flagged; and the unclassifiable share.
## Check the output before you return it
Save the output to a file and run `python3 scripts/check-output.py <file>`. The
contract it checks is `scripts/output-contract.json`.
- Exit 0, `COMPLETE`: return the output.
- Exit 2, `INCOMPLETE`: do not present the output as finished. Fill what you can, run
the check again, and if parts stay missing, return the output under the heading
`Incomplete` with every reason the check printed.
## Quality bar
- Department and seniority are derived before persona
- Ambiguous title families are handled explicitly, not defaulted
- The unclassifiable share is reported
- Low confidence contacts route to a generic sequenceFrom mambalabsdev/mamba-labs-skills, MIT.
More from mambalabsdev/mamba-labs-skills
- 0.570score
agent-readability-audit
mambalabsdev
Check whether a website can be read and used by AI agents, and fix what blocks them.
SkillAFreshness: AClaude Code +9 - 0.570score
ai-adoption-signal-reader
mambalabsdev
Detect whether a company has shipped AI features or adopted AI vendors, and read that as a budget and priority signal.
SkillAFreshness: AClaude Code +9 - 0.570score
bounce-and-catchall-policy
mambalabsdev
Decide what to do with catch all domains, role addresses and soft bounces before they cost you a domain.
SkillAFreshness: AClaude Code +9 - 0.570score
cash-runway-snapshot
mambalabsdev
Work out how many months of cash are left and what actually changes it.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-actor-column-wiring
mambalabsdev
Wire an external actor or API into a Clay column so the types survive the round trip.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-conditional-gates
mambalabsdev
Write the run conditions that stop expensive Clay columns from firing on rows that will never qualify.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-cost-audit
mambalabsdev
Price a Clay table before it runs and find the columns that are burning credits for no return.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-credit-forecast
mambalabsdev
Forecast how far a Clay credit balance goes across a month of planned builds, and say which build to cut when it does not reach.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-dedupe-and-merge
mambalabsdev
Deduplicate and merge people or company rows across Clay tables without losing enrichment or double counting a person.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-failure-triage
mambalabsdev
Diagnose a Clay column that returns null, zero rows, or the wrong shape, by symptom rather than by guesswork.
SkillAFreshness: AClaude Code +9 - 0.570score
company-identity-resolution
mambalabsdev
Resolve a messy company name to the right domain and canonical record, and say how confident the match is.
SkillAFreshness: AClaude Code +9 - 0.570score
comparison-page-builder
mambalabsdev
Write a comparison or alternatives page that a reader trusts and a competitor cannot get taken down.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 12, 2026 (17 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 2.1.0
- License
- MIT
- Website
- mambabuilt.com/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from mambalabsdev
- 0.570score
ai-adoption-signal-reader
mambalabsdev
Detect whether a company has shipped AI features or adopted AI vendors, and read that as a budget and priority signal.
SkillAFreshness: AClaude Code +9 - 0.570score
bounce-and-catchall-policy
mambalabsdev
Decide what to do with catch all domains, role addresses and soft bounces before they cost you a domain.
SkillAFreshness: AClaude Code +9 - 0.570score
cash-runway-snapshot
mambalabsdev
Work out how many months of cash are left and what actually changes it.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-actor-column-wiring
mambalabsdev
Wire an external actor or API into a Clay column so the types survive the round trip.
SkillAFreshness: AClaude Code +9 - 0.570score
clay-conditional-gates
mambalabsdev
Write the run conditions that stop expensive Clay columns from firing on rows that will never qualify.
SkillAFreshness: AClaude Code +9 - 0.570score
agent-readability-audit
mambalabsdev
Check whether a website can be read and used by AI agents, and fix what blocks them.
SkillAFreshness: AClaude Code +9
Cite this page
contact-classification skill. Agent Mart. https://agentmart.dev/skills/mambalabsdev-contact-classification (last updated 2026-10-24)