account-enrichment
Skill74 starsChanged 3 months agoMITView on GitHub
Fills a CRM record for a company from its domain: firmographics, current leadership, tech stack and funding, every field cited or left empty, using the Nimble `account-enrichment` agent template on live web data. Use when the user says "enrich these domains", "fill my CRM", "firmographics for", "enrich this account list", "what tech stack does", or "company data for". Do NOT use to find who holds a specific role (use decision-maker-identification) or for a meeting brief (use account-brief).
- Reads credentials
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- elicitly/demostheir own version, first seen Oct 17, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- elicitly/demos★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository25 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- account-briefSkill
- account-discoverySkill
- account-signalsSkill
- brand-mention-monitorSkill
- company-deep-diveSkill
- competitor-intelSkill
- competitor-positioningSkill
- credit-riskSkill
- deal-sourcingSkill
- decision-maker-identificationSkill
- due-diligenceSkill
- healthcare-providers-enrichSkill
- healthcare-providers-extractSkill
- healthcare-providers-verifySkill
- kyc-screeningSkill
- launch-monitorSkill
- local-placesSkill
- market-finderSkill
- meeting-prepSkill
- nimble-databricks-data-productsSkill
- nimble-web-expertSkill
- portfolio-monitoringSkill
- seo-intelSkill
- talent-sourcingSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 17 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈17
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 55
Run the agent and show the result.
- Very specific: line 58
Ask every question with the host's question UI, never as plain text: AskUserQuestion in Claude Code, ChatGPT's interactive question form …
- Distinctive: line 68
Ask the required inputs first, in table order, one question at a time.
- Distinctive: line 71
If you cannot guess likely answers, such as a company name or an industry, still use the tool and offer two or three examples as options, …
- Distinctive: line 73
Use single-select only. For a range, such as a size or a date, offer a few options that do not overlap.
- Distinctive: line 75
Do not ask about effort.
- Distinctive: line 90
Do this after the interview.
- Very specific: line 92
Check the connection. If a Nimble tool is listed in this session, call nimble_agents_list.
- Distinctive: line 99
If you can't show a card and a check returned an authorization link, show that link to the user.
- Distinctive: line 102
Ask with the question tool, with the options "I've connected Nimble" and "Not now".
- Distinctive: line 108
Do not comment on the connection check or on creating or reusing the agent.
- Very specific: line 110
Create the agent from the template: nimble_agents_create(template="account-enrichment", agent_name="account-enrichment").
- Very specific: line 112
Start the run: nimble_agents_run(agent_name="account-enrichment", input="<the input>", effort="<the effort the user asked for, otherwise …
- Distinctive: line 122
Start with one line saying what was found, for example the count or the risk call.
- Distinctive: line 124
Put each source next to the claim it supports, as a link.
- Distinctive: line 125
Use the agent's wording and numbers.
- Distinctive: line 128
If it finishes with an empty result, say so, show the sources it checked, and do not retry.
- Distinctive: line 132
Write the result first, then, in the same turn, ask what to do next with the host's question tool:
- Distinctive: line 135
Enrich another company: Ask the questions again, and keep the answers the user does not want to change.
- Distinctive: line 145
Never invent values. Show missing fields as missing.
- Distinctive: line 146
Never print or log an API key.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Account enrichment
Fills a CRM record for a company from its domain: firmographics, current leadership, tech stack and funding, every field cited or left empty.
What the user gets
One record per company: legal name, HQ, founded, employees, industry, ownership, leadership, tech stack and funding. Each field has a source, or is left empty with a reason.
Agent template
This skill runs the Nimble gallery template account-enrichment. The agent's instructions, sources and output schema live in the template. Do not rewrite them in the run.
Effort: this skill runs the template at medium effort (about 1-3 minutes), even when the template's default effort is different. That is on purpose. If the user asks for a specific effort (low, medium, high or x-high), run that one instead.
Flow
- Interview the user.
- Connect Nimble if it is not connected already.
- Run the agent and show the result.
- Offer next steps.
Ask every question with the host's question UI, never as plain text: AskUserQuestion in Claude Code, ChatGPT's interactive question form (clickable choices and a Submit button) in ChatGPT.
Get the inputs
| Input | Required | Ask for | If skipped |
| Company | yes | Its domain | - |
| Extra fields | no | Anything beyond the default fields, for example "SOC 2 status" or "uses Salesforce" | standard fields only |
- Skip anything the user already said in this conversation or in their request, and ask only for what is missing. Do not fill in answers from earlier conversations, with one exception: a stable fact about the user, such as what they sell, may be offered as the first option, labeled "(from before)". Never carry over the subject of the request, dates or rules from an earlier conversation.
- Ask the required inputs first, in table order, one question at a time. Then ask the optional ones together, in one question-tool call, as many as the tool takes per call (a second call for the rest).
- Put the whole question in the question tool, once. Never restate or introduce a question in text. Between questions, acknowledge the answer in a few words, and before the first question, at most one short sentence that acknowledges your role (the user's, if they named one), such as "Sure, I'll use Nimble to be your CRM enrichment assistant." Talk in plain, friendly words: never say "input", "required" or "optional", and use no field names. Use plain text only if the host has no question tool, in one short line.
- Write 2-3 likely answers as options, based on what the user has already said. Fixed examples in the table are a guide to what the answer contains, not a list to copy. Offer only answers Nimble can act on with public web data, never ones that need the user's own data, such as their customers or CRM.
- If you cannot guess likely answers, such as a company name or an industry, still use the tool and offer two or three examples as options, written as answers the user could really give. If the user picks one, use it as their answer.
- Every question must let the user type their own answer, optional ones too. Claude's question UI adds its own free-text choice ("Something else" in Claude, "Other" in Claude Code), so add none there. ChatGPT's form does not, so add "Other" as the last option of every question, even one whose options look complete, opening a text field with a placeholder. In any other host, add "Other" unless you know its UI already has a free-text choice. Keep Skip and Other, when you add them, even if you must drop an answer to fit the option limit.
- Use single-select only. For a range, such as a size or a date, offer a few options that do not overlap.
- Optional questions can be skipped, and a skipped answer uses the "If skipped" value. Claude's question UI has its own Skip button, so add no Skip option there. In other hosts, include a Skip option that states the default in its label, for example "Skip (any location)", not in the question. When you acknowledge a skipped question, say the default you will use, for example "Any location.", not that it was skipped. Do not offer a "skip all" option. If the user asks to skip the remaining questions, use the "If skipped" values for all of them.
- Do not ask about effort.
Build the agent input from this pattern:
Enrich the company at <domain>Example: Enrich the company at attio.com
- One company at a time. If the user names several, run the first and offer the rest next.
- Extra fields go in the input as one line each, for example: "Also return: SOC 2 status (yes/no, with source)."
Connect Nimble
Do this after the interview. Until the questions are done, say nothing about connecting Nimble.
Check the connection. If a Nimble tool is listed in this session, call nimble_agents_list. If the CLI is available, run nimble --client-source nimble-agent-skills agents list. A normal response from either, even an empty list, means the user is connected: say nothing and go on.
If neither check succeeds (no tool is listed and the CLI is missing or fails, or a check returns an auth error or an authorization link), connect it in these steps. Your message is only these steps: no summary of what the user told you, no mention of the skill, the template or the workflow, and no plan for what happens after connecting (that belongs in the run notice).
- Tell the user, in two short sentences at most: "Nimble searches the live web and links where every answer came from. Connecting takes one approval, and if you're new to Nimble you start with a free trial."
- Connect it in the first of these ways that works, and stop at the first one that does:
- Show the host's card to connect or install Nimble from nimbleway.com: the Connect card for the connector in Claude, the install card for the plugin in ChatGPT.
- If you can't show a card and a check returned an authorization link, show that link to the user.
- If you can do neither but can run commands, follow https://docs.nimbleway.com/agent-onboarding.md and involve the user only for the sign-up and the approval. With only the CLI and no
NIMBLE_API_KEY, an approval is not enough: follow the page's API key fallback and have the user set the key in their environment, never in the chat. That page is written for you: never link it or its steps to the user. - If none of these works, tell the user how to find Nimble in this app, with the clicks: in ChatGPT, open Plugins in the sidebar, search for Nimble, pick the one described as "Expert web search for agents" and install it; in Claude, open Customize, then Connectors, then Nimble, then Connect. Never send the user to nimbleway.com for this.
- Ask with the question tool, with the options "I've connected Nimble" and "Not now". If the host has no question tool, end the message by asking them to reply "connected", and add nothing after that.
Never ask the user to paste an API key into the chat. When they confirm, check the connection again and go on without comment. If it is still not connected, say so in one line and ask again. If they pick "Not now", say the skill needs Nimble and stop. Show no research until Nimble is connected, not from your own search and not from memory.
Run the agent
Do not comment on the connection check or on creating or reusing the agent. The first thing the user hears is step 2.
- Create the agent from the template:
nimble_agents_create(template="account-enrichment", agent_name="account-enrichment"). A 409 "already exists" means it was created before, so go on. If the template is not found, tell the user it is unavailable and stop. Do not substitute another template. - Tell the user once, in one line, what you are researching and how long it takes at the effort you will use: "Researching <the request in a few words, with any limits>. Expected to take
<time>." The time is 10-30 seconds for low, 1-3 minutes for medium, 5-15 minutes for high and 15-30 minutes for x-high. - Start the run:
nimble_agents_run(agent_name="account-enrichment", input="<the input>", effort="<the effort the user asked for, otherwise medium>"). Leave schema and skill to the template. - Poll with
nimble_agents_run_statusuntil the run finishes. On MCP each call waits up to about 45 seconds and returns "still running" if the run is not done: that is not an error, so call it again right away. Otherwise poll every 20-30 seconds. If a call fails with a transient error (timeout, server error, lost connection), retry only that call, once, and never sendnimble_agents_runagain. If starting the run fails with a transient error, checknimble_agents_runs_listfor a run you already started before starting another. If a call fails again, say so and stop. - Keep track of how long the run has been going: the time since you started it or, on MCP, about 45 seconds per status call. When it passes the top of its range (30 seconds for low, 3 minutes for medium, 15 minutes for high, 30 minutes for x-high), write one line to the user saying it is taking longer than usual, but that this is OK and you are still waiting for the result, then keep polling.
With only the CLI, the same calls are under nimble agents and nimble agents:runs. Add --client-source nimble-agent-skills as a global flag before the subcommand on every call, as in nimble --client-source nimble-agent-skills agents list, and run --help for the other flags.
Show the result
When the run finishes, get nimble_agents_run_result and write the result out in your message. The user cannot see tool output, so copy what matters into the chat. Do this even when the result is one row or empty: a short result is still a result. Never go straight to the next question.
- Start with one line saying what was found, for example the count or the risk call.
- Then the result in the shape that fits: a table for lists, people and events, one row each; short sections for briefs and memos; a field, value and source table for a single record. Show the whole list.
- Put each source next to the claim it supports, as a link.
- Use the agent's wording and numbers. Add nothing from your own knowledge, and show no raw JSON or field names.
- End with one line on what a deeper run may be able to find, such as empty fields or thin areas. If the run was already high, say what the sources did not cover.
If it finishes with an empty result, say so, show the sources it checked, and do not retry.
Next steps
Write the result first, then, in the same turn, ask what to do next with the host's question tool:
- Go deeper. A high-effort run reads more sources and fills more fields. It is expected to take 5-15 minutes. Offer it only if the last run was below high, and start it only on a yes:
nimble_agents_run(agent_name="account-enrichment", input="<the same input>", effort="high"). When it finishes, lead with what it added or corrected, then give the full result. - Enrich another company. Ask the questions again, and keep the answers the user does not want to change.
- Make it recurring. As a scheduled task in the host, or as code that calls Nimble. For a scheduled task, pass the last run date as the new since date where the input has one. For code, the agent is saved as
account-enrichment: give a short Python or TypeScript snippet that runs it by name.
Pitfalls
- Tech stack means tools the company uses, not tools it sells.
- A missing CFO or CRO is often real. Check missing_fields before calling it a gap.
Rules
- Never invent values. Show missing fields as missing.
- Never print or log an API key.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

