agentleFS
LeadMagicLeadMagic/leadmagic-claude-plugin/skills/bulk-enrichment/SKILL.md

bulk-enrichment

Skill1 starsChanged 9 days agoMITView on GitHub

Credit-safe CSV and list enrichment with LeadMagic bulk jobs — balance, preview, confirm, submit, watch, export, and recover failed rows. Use when the user has a CSV/JSON/JSONL file, more than 5 rows to enrich, or wants a local-business list built.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    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
  1. Distinctive:

    Use this skill when the user:

    line 9
  2. Very specific:

    If they want to see and iterate on the results in a grid, use the sheets skill instead.

    line 15
  3. Very specific:

    Free first: Call check_credit_balance, then preview_cost once the product and row count are known.

    line 18
  4. Very specific:

    Use bulk, never per-row loops: Never loop single-contact tools (find_work_email, enrich_contact, …) across a file.

    line 19
  5. Distinctive:

    Report actuals: Don't re-run unchanged rows.

    line 21
  6. Distinctive:

    Call again with the same arguments plus the token, only after the user approves.

    line 39
  7. Very specific:

    If you poll get_bulk_job_status directly instead, wait at least 45 seconds between calls.

    line 46

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Bulk enrichment

Trigger

Use this skill when the user:

  • has a CSV/JSON/JSONL file,
  • has more than 5 rows to enrich,
  • asks to queue bulk enrichment, or
  • wants a list of local businesses.

If they want to see and iterate on the results in a grid, use the sheets skill instead.

Spend rules

  1. Free first. Call check_credit_balance, then preview_cost once the product and row count are known. State the projected spend.
  2. Use bulk, never per-row loops. Never loop single-contact tools (find_work_email, enrich_contact, …) across a file.
  3. Confirm with the token. Bulk submits, restarts, and resumes answer first with needs_confirmation, a summary, and a confirmation_token. Nothing has run yet. Show the summary, and repeat the identical call with the token only after the user agrees. Never invent a token.
  4. Report actuals. Don't re-run unchanged rows. Misses are usually free.

Submit

  • A file attached in Claude → process_attached_csv only. The widget uploads and submits on its own, so do not call resolve_bulk_upload_mapping or submit_* after it.
  • Inline CSV, rows, or an HTTPS file_url → submit_detected_bulk_job.
    • Common enrichments: work_email_finder, email_validation, mobile_finder (only when the user asks for phones), job_change, company_firmographics.
    • For profile URL → work email, pick the profile-to-email option from the tool's enrichment list.
    • For larger files, prefer file_url with format: "auto" over pasting CSV text into the call.

Local businesses (find_local_leads)

find_local_leads builds a list of local businesses for business types across cities or US ZIP codes. Example: keywords: ["dentist"], locations: ["Austin, TX", "78704"].

Cost:

  • Each keyword × location pair is one search at 200 credits, charged up front.
  • A run can have at most 100 searches.

Steps:

  1. The first call charges nothing. It resolves the locations and returns the search grid, the cost, and a confirmation_token. Show the user the grid and the cost.
  2. Call again with the same arguments plus the token, only after the user approves.
  3. Results arrive as a bulk job. Watch and read it the same way as any other bulk job (below).

Watch progress

After submitting:

  1. Call get_bulk_job_status once.
  2. Then use watch_bulk_job_progress (timeout_seconds up to 30) instead of blind polling. It returns the latest status and whether the watch timed out; repeat it to keep watching.
  3. If you poll get_bulk_job_status directly instead, wait at least 45 seconds between calls.

For history and diagnostics, use list_bulk_jobs, get_bulk_job_events, and get_bulk_job_logs.

Results

  • Read rows with get_bulk_job_rows: up to 500 rows per page, paged with offset / cursor. Add status: "failed" to see only failures.
  • Error reasons come from get_bulk_job_errors.
  • Export with export_bulk_job, which returns CSV up to 4 MB. For bigger jobs, page get_bulk_job_rows.

Control

  • pause_bulk_job stops processing. It needs no approval.
  • resume_bulk_job processes the remaining rows and charges them, so it needs confirmation. If a job paused because credits ran out, top up (billing), then resume.
  • restart_bulk_job re-queues rows and charges them again, so it needs confirmation.
    • It defaults to mode: "failed_only"; completed results are kept.
    • Restart only after the failed rows' inputs have been fixed.

Output

  • Job id, status, and rows processed / failed
  • Credits: estimate vs actual
  • A summary of row successes and errors, with the top error reasons
  • The next action (fix and restart failures, export, or move the results into a sheet)

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.