Agent skill

Find Service Providers

by jeremylongshore in jeremylongshore/tons-of-skills-marketplace

A skill your agent uses whenever the user wants to find, shortlist, vet, enrich, or research US professional-services firms — law, marketing, consulting, accounting, IT services, architecture…

MITAuto-check: notesBusiness, Finance & HR

Install Find Service Providers

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill find-service-providers -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace find-service-providers --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/mcp/servicegraph/skills/find-service-providers .claude/skills/find-service-providers && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
find-service-providers
GitHub stars
2.8k
Token cost
~4.7k tokens
SKILL.md length
1,768 words
Files
1
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses whenever the user wants to find, shortlist, vet, enrich, or research US professional-services firms — law, marketing, consulting, accounting, IT services, architecture…

  • Works in 7 steps: Pick the call path — the ServiceGraph… → GET… → Build the filter (Filter DSL below) and… → …
  • The user wants to find
  • SKILL.md covers Overview, Prerequisites, Instructions and Output, plus 5 more sections
  • Calls curl; reaches api.servicegraph.co and mcp.servicegraph.co; needs SERVICEGRAPH_API_KEY

What it does

Find Service Providers is an agent skill from jeremylongshore/tons-of-skills-marketplace. Use whenever the user wants to find, shortlist, vet, enrich, or research US professional-services firms — law, marketing, consulting, accounting, IT services, architecture, engineering, HR, PR, design, and similar B2B service providers. Triggers on requests like "find me a PPC agency in California", "shortlist three boutique IP law firms", "build a longlist of 50 mid-size IT consultancies", or "here are 12 agency domains — pull contact info and confirm which are US-based", even when the need is described…

Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for Claude Code

It sits in Business, Finance & HR, covering Recruiting and HR, Paid advertising and E-commerce operations. It works with Model Context Protocol. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • The user wants to find
  • Research US professional-services firms — law
  • Similar B2B service providers
  • Requests like find me a PPC agency in California

Example prompts

  • “find me a PPC agency in California”
  • “shortlist three boutique IP law firms”
  • “build a longlist of 50 mid-size IT consultancies”
  • “/find-service-providers”

Requirements

  • A credential in SERVICEGRAPH_API_KEY
  • Compatibility (from SKILL.md): Designed for Claude Code
  • Pre-approved tools (allowed-tools): Bash(curl:*), mcp__servicegraph__list_fields, mcp__servicegraph__list_field_values, mcp__servicegraph__check_filter, mcp__servicegraph__translate_intent, mcp__servicegraph__search_dataset, mcp__servicegraph__get_row, mcp__servicegraph__unlock_rows, mcp__servicegraph__get_credit_balance

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Pick the call path — the ServiceGraph MCP tools if loaded, otherwise the
  2. GET /v1/datasets/pro_services/fields?include_values=1 — confirm the
  3. Build the filter (Filter DSL below) and validate it with
  4. GET /v1/datasets/pro_services/search — present the free brief cards and
  5. Quote the unlock cost (10 credits per row, 30-day TTL) and get an explicit
  6. POST /v1/datasets/pro_services/unlocks with the chosen apexes; report the
  7. GET /v1/me/credits to report the remaining balance when asked.

What it can do on your machine

Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(curl:*)
    • mcp__servicegraph__list_fields
    • mcp__servicegraph__list_field_values
    • mcp__servicegraph__check_filter
    • mcp__servicegraph__translate_intent
    • mcp__servicegraph__search_dataset
    • mcp__servicegraph__get_row
    • mcp__servicegraph__unlock_rows
    • mcp__servicegraph__get_credit_balance

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.servicegraph.co
    • mcp.servicegraph.co

    Also links to:

    • servicegraph.co
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • SERVICEGRAPH_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Find Service Providers loads about 4.7k tokens when it runs. Until then it costs about 260 tokens; SKILL.md has 1,768 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~260
When it runs · the whole SKILL.md, loaded when a task matches
~4.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:47
    ICEGRAPH_API_KEY` in the environment or `.env.local` for the REST
  • NoteMentions a .env fileSKILL.md:114
    - **Never** read `.env`, `.env.local`, or any other credential file
  • NoteMentions a .env fileSKILL.md:123
    he call.** Dispatch via shell, sourcing `.env.local`
  • NoteMentions a .env fileSKILL.md:127
    ( set -a; [ -f .env.local ] && . ./.env.local; set +a;
  • NoteMentions a .env fileSKILL.md:141
    > `SERVICEGRAPH_API_KEY=vk_…` to `.env.local` in this directory.
  • NoteMentions a .env fileSKILL.md:149
    or already in `.env.local`, the very first call will succeed and the

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 1,768 words, ~4,657 tokens.

Download SKILL.mdSave it as .claude/skills/find-service-providers/SKILL.md (or your agent's skills folder).
name
find-service-providers
description
Use whenever the user wants to find, shortlist, vet, enrich, or research US professional-services firms — law, marketing, consulting, accounting, IT services, architecture, engineering, HR, PR, design, and similar B2B service providers. Triggers on requests like "find me a PPC agency in California", "shortlist three boutique IP law firms", "build a longlist of 50 mid-size IT consultancies", or "here are 12 agency domains — pull contact info and confirm which are US-based", even when the need is described indirectly without naming a category. Drives the ServiceGraph API (api.servicegraph.co) — a 100k+ US firm catalog with filters for industry, services, location, size, ratings, and third-party listings. Skip when the user is asking for personal/consumer services for themselves (an individual's own legal, tax, or medical needs), non-US firms, individual freelancers, retail/ecommerce/SaaS-product companies, recruiting-an-employee tasks, or general web research that doesn't need a structured firm directory.
allowed-tools
Bash(curl:*), mcp__servicegraph__list_fields, mcp__servicegraph__list_field_values, mcp__servicegraph__check_filter, mcp__servicegraph__translate_intent, mcp__servicegraph__search_dataset, mcp__servicegraph__get_row, mcp__servicegraph__unlock_rows, mcp__servicegraph__get_credit_balance
compatibility
Designed for Claude Code
version
0.3.0
author
Artur Briugeman <artur@nostr.band>
license
MIT
tags
service-providers, professional-services, lead-generation, b2b, servicegraph
metadata.api_base
https://api.servicegraph.co
metadata.dataset_id
pro_services

find-service-providers

Overview

Drive the ServiceGraph API (https://api.servicegraph.co) to find, shortlist, and enrich US professional-services firms.

The API hosts several datasets behind a uniform per-dataset URL shape (/v1/datasets/:id/…). This skill is for the agencies dataset — dataset id pro_services — which holds 100k+ B2B service firms classified across 22 industries with multi-tag service taxonomies, location, size, and third-party rating signals.

Any HTTP client works (curl, fetch, requests). Examples below use curl.

Prerequisites

  • ServiceGraph access, either:
    • the ServiceGraph MCP server (https://mcp.servicegraph.co) loaded in your harness — this plugin's .mcp.json wires it up; OAuth 2.1 + PKCE keeps credentials in the harness sandbox — or
    • a ServiceGraph API key (vk_…, minted at https://servicegraph.co/profile/api-keys) available as SERVICEGRAPH_API_KEY in the environment or .env.local for the REST path (setup steps under Auth below).
  • An HTTP client for the REST path — the examples use curl.

Instructions

The loop is free-first: discovery, validation, search, and brief reads cost nothing; only unlock after the user confirms the spend.

  1. Pick the call path — the ServiceGraph MCP tools if loaded, otherwise the REST flow (MCP server and Auth sections below).
  2. GET /v1/datasets/pro_services/fields?include_values=1 — confirm the fields and values you plan to filter on exist.
  3. Build the filter (Filter DSL below) and validate it with GET /v1/datasets/pro_services/check — or draft it from plain English via POST /v1/datasets/pro_services/translate-intent.
  4. GET /v1/datasets/pro_services/search — present the free brief cards and let the user pick.
  5. Quote the unlock cost (10 credits per row, 30-day TTL) and get an explicit go-ahead.
  6. POST /v1/datasets/pro_services/unlocks with the chosen apexes; report the revealed detail.
  7. GET /v1/me/credits to report the remaining balance when asked.
MCP server (preferred for authed calls)

If your agent harness has the ServiceGraph MCP server loaded (https://mcp.servicegraph.co) — recognizable by tool names containing servicegraph — prefer those tools over raw HTTP. The MCP server uses OAuth 2.1 + PKCE so the harness handles credentials in its own sandbox and no token value ever enters the LLM context. Otherwise, fall through to the REST flow described below.

API surface

Every endpoint requires the bearer (Authorization: Bearer vk_…). There is no anonymous tier.

EndpointCostUse it for
GET /v1/datasetsfreeDiscover available datasets.
GET /v1/datasets/pro_servicesfreeFull schema for this dataset (brief vs detail fields, allowed filters, unlock price, TTL).
GET /v1/datasets/pro_services/fields[?include_values=1&q=]freeFilter-field catalog + DSL grammar. Call this first per session.
GET /v1/datasets/pro_services/values/:field[?q=&limit=&offset=]freeEnumerate values for one field (e.g. legal industry / state / service_provided values).
GET /v1/datasets/pro_services/check?filter=…freeValidate a filter string. Returns {valid, normalized} or {valid:false, error}.
POST /v1/datasets/pro_services/translate-intentfreeBody {intent, model?}. LLM-translates plain English → DSL filter + sanity-check row count.
GET /v1/datasets/pro_services/search?filter=…&limit=&offset=freeBrief firm cards + per-row unlock hint. No url, no phone, no email.
GET /v1/datasets/pro_services/:apexfreeOne row: always brief; detail block only if caller has an active unlock for (user, dataset, apex). Idempotent, never charges.
POST /v1/datasets/pro_services/unlocks10 credits / firmBody {apexes: [...]}, max 100. Atomic batch — either all uncached apexes unlock, or none do (402 if balance short). Already-unlocked rows return was_cached:true with no extra charge. Detail TTL: 30 days. Returns brief + detail + per-item billing.
GET /v1/me/creditsfreeCurrent credit balance.
GET /v1/me/credits/transactions[?limit=&offset=]freeSpend history; unlock rows carry (dataset_id, apex, expires_at).

Cost model in one paragraph. Discovery, validation, search, and brief reads are free. Detail data (apex, full url, phone, email, social, address, legal name, platforms map) costs 10 credits per firm and lasts 30 days. Re-fetching an unlocked firm within the TTL is free — both the detail GET and the unlock POST honor the cache. Charges are atomic per POST /unlocks call: a 402 leaves balance untouched.

Auth

Tokens are vk_* API keys minted in the dashboard. The user creates them themselves; this skill never sees raw email/password.

Security model — keep the token out of the LLM context.

  • Never read .env, .env.local, or any other credential file into your context. The token's literal value must never appear in the conversation.
  • Every authed call goes through a shell wrapper so the token flows from the user's environment / dotenv file into the Authorization header without round-tripping through the LLM.

First-call resolution:

  1. Just try the call. Dispatch via shell, sourcing .env.local if present:

    bash
    ( set -a; [ -f .env.local ] && . ./.env.local; set +a;
      curl -sS -H "Authorization: Bearer $SERVICEGRAPH_API_KEY" \
           'https://api.servicegraph.co/v1/datasets/pro_services/fields' )
  2. On 401 unauthorized, prompt the user (don't accept the key in chat):

    "I need a ServiceGraph API key. Open https://servicegraph.co/profile/api-keys, sign in, click Create key, and copy the vk_… value.

    Then either export it in your shell — export SERVICEGRAPH_API_KEY=vk_… — or add the line SERVICEGRAPH_API_KEY=vk_… to .env.local in this directory. Tell me when done and I'll retry. Please don't paste the key into chat — keep it out of the LLM context."

  3. After the user signals ready, re-dispatch the same call. If a later call returns 401, the key was revoked or rotated — re-prompt.

For the user's convenience: if SERVICEGRAPH_API_KEY is already set or already in .env.local, the very first call will succeed and the prompt step never happens.

Filter DSL

One query parameter, GitHub-search-style.

filter   := orExpr
orExpr   := andExpr ("OR" andExpr)*
andExpr  := notExpr (("AND")? notExpr)*    # whitespace = implicit AND
notExpr  := ("NOT" | "-") notExpr | atom
atom     := "(" filter ")" | predicate
predicate:= IDENT op valueOrList | bareword
op       := ":" | "=" | ">=" | "<=" | ">" | "<"
valueOrList := value ("," value)*
value    := IDENT | NUMBER | tagAtEvidence
tagAtEvidence := IDENT "@" ("low"|"medium"|"high")
bareword := IDENT | NUMBER          # → keyword:<bareword>

Four rules that bite:

  1. AND binds tighter than OR. a OR b c parses as a OR (b AND c). Use parens.
  2. Comma list = OR within one predicate. state:CA,NY,TX matches any of the three.
  3. Negation is -x or NOT x. Negative literals inside a comma list are not allowed: state:CA,-NY is rejected. Use state:CA -state:NY.
  4. Bareword = keyword search. Any IDENT or NUMBER not followed by an operator becomes a free-text substring across name / brand / title / meta / legal_name. Multiple barewords AND. Wrap multi-word phrases in double quotes: keyword:"foo bar". Punctuation (& ' . ; ! ? * / etc.) is silently dropped outside quotes, and stray commas are treated as ANDs — so paste-friendly inputs like Cox, Castle & Nicholson work without quoting.

Field kinds you'll use most:

  • categorical — industry, state, service_model, geography_served, company_size_signal, pricing_model — op : only.
  • tag_set_with_evidence — service_provided — Map<tag, evidence∈{low,medium,high}>. Op : with optional @evidence.
  • numeric — rating, review_count_total, founded_year, linkedin_employees, etc. — ops =, >=, <=, >, <.
  • presence — has:phone, has:clutch, has:rating, has:linkedin_company, etc.
  • keyword — any bareword in the filter becomes a free-text substring across name / brand / title / meta / legal_name / linkedin company text.

Examples (validate yours with /check):

industry:marketing_agency service_provided:seo
dental industry:marketing_agency
industry:legal state:CA,NY -company_size_signal:solo
industry:management_consulting (service_provided:strategy-consulting@high OR service_provided:operations-consulting@high)
state:CA has:phone has:email
rating>=4 review_count_total>=20 has:clutch
industry:it_services NOT (service_provided:web-development OR service_provided:hosting)
"Cox, Castle & Nicholson"

Don't put kind: in the filter — the dataset URL is authoritative and the API will reject it. Don't use fields outside this dataset's allowed list either; /check will tell you which ones.

Identifying firms — apex

Firms are identified by their apex domain (registered domain only: mckinsey.com, not www.mckinsey.com/about). When the user gives you URLs, strip to the apex before calling /datasets/pro_services/:apex or POST /unlocks. The endpoint accepts any lowercase host-shaped string; a 404 means the firm isn't in this dataset (no charge).

Show full SKILL.md (710 more words)Show less

Output

All responses are JSON.

  • Search returns free brief firm cards — apex, name, location, and rating signals — plus a per-row unlock hint and the match total. Briefs never include url, phone_primary, email_primary, legal_name, address_full, or the full platforms map.
  • Unlock (POST …/unlocks) returns each unlocked firm's detail block — contact fields, address, socials, the platforms map — plus per-item billing; detail stays readable for 30 days.
  • Errors arrive as a JSON envelope {"error": {"code": "…", "message": "…"}} — see Errors below.

Examples

A. Shortlist by industry + state
GET /v1/datasets/pro_services/search?filter=industry:legal+state:CA+-company_size_signal:solo&limit=20
# → 20 brief cards + total + per-row unlock.status; pick top 3 with user

# user agrees → unlocking 3 firms costs 30 credits, 30-day TTL
POST /v1/datasets/pro_services/unlocks
  { "apexes": ["firm-a.com", "firm-b.com", "firm-c.com"] }
# → brief + detail (url, phone, email, social, address) for all 3
B. Multi-tag service intersection

User: "Marketing agency that does both branding and SEO at high evidence."

GET /v1/datasets/pro_services/search?filter=industry:marketing_agency+service_provided:branding@high+service_provided:seo@high&limit=10
C. Quality threshold

User: "Consultancies with at least 4★ and 20+ reviews and a Clutch listing."

GET /v1/datasets/pro_services/search?filter=industry:management_consulting+rating>=4+review_count_total>=20+has:clutch&limit=10
D. Indirect intent — user describes a need without naming the category

User: "I need someone to handle our open enrollment communications for 200 employees."

That's HR/benefits comms. Either translate by hand or hand it to the intent translator:

POST /v1/datasets/pro_services/translate-intent
  { "intent": "open enrollment communications for 200 employees" }
# → {filter: "...", reasoning: "...", valid, normalized, count}

Then validate with /check and run /search. If the breakdown is thin, broaden — drop the service tag, add adjacent industries, or fall back to keyword.

E. Keyword + structured filter

User: "HIPAA-savvy IT consultancies in Texas."

GET /v1/datasets/pro_services/search?filter=hipaa+industry:it_services+state:TX&limit=10

hipaa is a bareword keyword → substring match in firm text.

F. BYO apex list — enrich domains the user already has

User pastes 12 domains. Two-step:

  1. GET /v1/datasets/pro_services/:apex for each — free brief, 404 for not-in-catalog (no charge). Flag misses to the user.
  2. User picks the N they want fully enriched. One POST /v1/datasets/pro_services/unlocks with all of them = 10×N credits, single atomic charge, single response with detail bundles.

Within the 30-day TTL, re-running step 2 is free for the same apexes.

Gotchas

  • looks_not_pro_services / not_in_dataset 404 is not a bug. A firm may exist in another dataset but 404 on /datasets/pro_services/:apex if its kind doesn't include pro_services. Skip and continue; not charged.
  • Briefs from /search do NOT include apex ... wait, they do. Briefs include apex (and name, industry, service_provided, location, ratings). What they DON'T include: url, phone_primary, email_primary, legal_name, address_full, full platforms map. Those require an unlock.
  • Catalog is US-only B2B pro-services. Refuse non-US asks rather than returning misleading partial matches. Refuse consumer-facing legal/financial requests (e.g. "I need a divorce lawyer for personal matters") — the catalog is built for B2B procurement.
  • Always confirm legal field values via /fields?include_values=1. Inventing industry:law instead of industry:legal returns zero results silently — the parser doesn't validate categorical values.
  • Multi-word phrases must be split or quoted. family law parses as two AND'd keywords (family AND law); "family law" parses as a single phrase.
  • Unlock is atomic. POST /unlocks with 5 apexes either charges 50 credits (or less if some were cached) or charges nothing on 402. Plan the batch — don't dribble single-apex calls.
  • Within-TTL re-views are free. Re-running POST /unlocks for an apex that's still inside its 30-day TTL returns was_cached:true and no charge. Re-pagination of /search is free regardless.
  • /translate-intent is a convenience, not a contract. It may return filter:"" if the intent is too vague, or a filter that doesn't match what the user wanted. Always inspect reasoning and the sanity-check count before running /search.

Errors

All errors return JSON: {"error": {"code": "...", "message": "..."}}.

StatusCodeWhat to do
400filter_parse_errorPayload includes position. Fix the filter, re-validate with /check.
400filter_requiredEmpty filter where one is required.
400kind_in_filterThe URL is authoritative — strip any kind: predicate from the filter.
400field_not_in_datasetThe filter references a field this dataset doesn't expose. Drop it or pick a different dataset.
400invalid_apexApex doesn't look like a domain. Re-normalize.
401unauthorized / invalid_audienceKey missing/expired/wrong audience. Re-prompt for a new vk_… from /profile/api-keys.
402insufficient_creditsBalance too low for the unlock batch. Response carries needed and balance. Surface to the user; nothing was charged.
404unknown_datasetWrong dataset id in the URL.
404not_foundApex isn't in the catalog. Not charged. Skip and continue.
404not_in_dataset / apex_not_in_datasetApex exists but its kind doesn't include pro_services. Not charged. Skip.
429rate_limitedHonor Retry-After header.

Authed responses carry X-RateLimit-* headers. GET /me/credits is the source of truth for spend planning.

End-to-end example

User: "Find me three top management-consulting firms in California focused on strategy, with strong third-party ratings."

# 1. Discover fields once per session
GET /v1/datasets/pro_services/fields?include_values=1
# Confirms 'management_consulting', 'strategy-consulting', 'rating' are legal.

# 2. Validate the filter (free)
GET /v1/datasets/pro_services/check?filter=industry:management_consulting+state:CA+service_provided:strategy-consulting@high+rating>=4+review_count_total>=20

# 3. Search briefs (free)
GET /v1/datasets/pro_services/search?filter=...&limit=10
# → 10 brief cards + total + per-row unlock.status:'none'

# 4. Present briefs, get user's pick of 3. Tell them: "Unlocking 3
#    firms costs 30 credits and gives 30 days of detail access."

# 5. Atomic batch unlock (charges 30 credits, returns detail too)
POST /v1/datasets/pro_services/unlocks
  { "apexes": ["firm-a.com", "firm-b.com", "firm-c.com"] }
# → brief + detail (url, phone, email, social, address, platforms) ×3

# 6. (Optional) Confirm remaining balance
GET /v1/me/credits

Resources

© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/mcp/servicegraph/skills/find-service-providers of jeremylongshore/tons-of-skills-marketplace.

Open the folder on GitHubat commit cfae287

Compare with similar skills

Find Service Providers next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Find Service Providers compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Find Service Providers this skilljeremylongshore/tons-of-skills-marketplace2.8k—~4.7kAutomated safety check: NotesMIT
Attribution Reconcileraaron-he-zhu/aaron-marketing-skills2.9k2 repos~3kAutomated safety check: PassApache-2.0
Odoo Agency Fleet Reviewerpipe-org/mcp-odoo421—~699Automated safety check: PassMIT
Travel Expense ReimbursementFoxtailsss-Andy/Anna-Agent147—~812Automated safety check: PassMIT
Odoo Month End Closeerpipe-org/mcp-odoo421—~753Automated safety check: PassMIT
Longbridge Value Investinghelsome/folio2711 repos~1.2kAutomated safety check: PassMIT

Similar skills

  • Attribution Reconciler

    aaron-he-zhu/aaron-marketing-skills

    A skill your agent uses when platform-reported conversions disagree with GA4/ecommerce, when you suspect Meta and Google are double-counting the same sales, or for a standing (monthly)…

    2.9k GitHub starsUsed in 2 repos~3k tokens
    Marketing & SEOAuto-check passed
  • Odoo Agency Fleet Review

    erpipe-org/mcp-odoo

    Review many client Odoo databases at once through odoo-mcp's cross-instance tools — fleet-wide accounting health, per-client aging, partial-failure triage — for agencies and partners managing 5–50…

    421 GitHub stars~699 tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Travel Expense Reimbursement

    Foxtailsss-Andy/Anna-Agent

    Create, validate, submit, and verify employee travel and expense reimbursements through Anna Cowork and MCP.

    147 GitHub stars~812 tokensUpdated 2 days ago
    Business, Finance & HRAuto-check passed
  • Odoo Month End Close

    erpipe-org/mcp-odoo

    Drive a month-end accounting close on Odoo through odoo-mcp — AR/AP aging, open-item and draft-invoice review, reconciliation checklists, and chatter documentation — with human sign-off at every…

    421 GitHub stars~753 tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Value investing analysis using Graham (NCAV/net-net/defensive-investor) and Buffett (economic moat/ROE/FCF) methodologies.

    271 GitHub starsUsed in 1 repo~1.2k tokens
    Business, Finance & HRAuto-check passed
  • MCP Session Lifecycle

    nteract/nteract

    Understand the MCP server session lifecycle: attachment ownership, proxy supervision, daemon reconciliation, explicit notebook routing, readiness, scoped subscriptions, rejoin races, and room…

    180 GitHub stars~3.2k tokensUpdated today
    Business, Finance & HRAuto-check passed

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about Find Service Providers

What does Find Service Providers do?

A skill your agent uses whenever the user wants to find, shortlist, vet, enrich, or research US professional-services firms — law, marketing, consulting, accounting, IT services, architecture…. Find Service Providers is an agent skill from jeremylongshore/tons-of-skills-marketplace. Use whenever the user wants to find, shortlist, vet, enrich, or research US professional-services firms — law, marketing, consulting, accounting, IT services, architecture, engineering, HR, PR, design, and similar B2B service providers.

When should I use Find Service Providers?

Find Service Providers fits situations like: the user wants to find; research US professional-services firms — law; similar B2B service providers; requests like find me a PPC agency in California.

How do I install Find Service Providers in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill find-service-providers -a claude-code`. Or copy the skill folder (plugins/mcp/servicegraph/skills/find-service-providers in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/find-service-providers in your project. Claude Code loads it when a task matches its description.

How do I install Find Service Providers in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill find-service-providers -a codex`. Or copy the skill folder (plugins/mcp/servicegraph/skills/find-service-providers in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/find-service-providers in your project. Codex loads it when a task matches its description.

Can I use Find Service Providers in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill find-service-providers -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/find-service-providers, .gemini/skills/find-service-providers, .github/skills/find-service-providers and .opencode/skills/find-service-providers in your project.

What does Find Service Providers need to run?

Going by SKILL.md and its folder, Find Service Providers needs the command-line tools its instructions call (curl) and credentials named SERVICEGRAPH_API_KEY. Our summary lists: A credential in SERVICEGRAPH_API_KEY. Its frontmatter pre-approves these tools: Bash(curl:*), mcp__servicegraph__list_fields, mcp__servicegraph__list_field_values, mcp__servicegraph__check_filter, mcp__servicegraph__translate_intent, mcp__servicegraph__search_dataset, mcp__servicegraph__get_row, mcp__servicegraph__unlock_rows, mcp__servicegraph__get_credit_balance. Compatibility (from SKILL.md): Designed for Claude Code.

Does Find Service Providers access the network?

SKILL.md names 4 domains. In commands or code: api.servicegraph.co and mcp.servicegraph.co; the agent is likely to contact these when it follows the instructions. As links in the text: servicegraph.co and github.com. This is read from the text; nothing was executed.

Is Find Service Providers safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Find Service Providers use?

Find Service Providers is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Find Service Providers use?

About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Find Service Providers?

Skills that share tags, products or a category with Find Service Providers: Attribution Reconciler (aaron-he-zhu/aaron-marketing-skills, 2.9k stars), Odoo Agency Fleet Review (erpipe-org/mcp-odoo, 421 stars), Travel Expense Reimbursement (Foxtailsss-Andy/Anna-Agent, 147 stars) and Odoo Month End Close (erpipe-org/mcp-odoo, 421 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Find Service Providers?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.