CtrlK
BlogDocsLog inGet started
Tessl Logo

hubspot-automation

Automate HubSpot CRM operations (contacts, companies, deals, tickets, properties) via Rube MCP using Composio integration.

74

1.37x
Quality

69%

Does it follow best practices?

Impact

96%

1.37x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./plugins/all-skills/skills/hubspot-automation/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

61%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a dense, well-structured operator's manual for the HubSpot toolkit: concrete tool slugs, parameter shapes, response quirks, and per-workflow sequences with role labels. Its main weaknesses are duplicated pitfall content across three sections, and the absence of post-batch validation or error-recovery feedback loops in batch-create workflows, which caps workflow clarity.

Suggestions

Add validation/feedback loops to the batch workflows: after HUBSPOT_CREATE_CONTACTS, verify the returned IDs (or re-search) to confirm record creation, and add 'if a batch fails or hits the 100-record limit, chunk and retry' guidance.

Deduplicate the pitfalls: keep one canonical 'Known Pitfalls' section (or per-workflow blocks) and drop the verbatim repeats of batch limits, internal property names, pagination, and duplicate-prevention.

Include one complete example payload for the most common call (e.g., a full filterGroups body for HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA with valid operator values) to make the search guidance copy-paste ready.

DimensionReasoningScore

Conciseness

The body is mostly efficient — it assumes CRM/API knowledge and never explains what HubSpot or OAuth is — but the same pitfalls are repeated nearly verbatim across three places: per-workflow 'Pitfalls' blocks ('Max 100 per batch', 'Use paging.next.after'), the 'Known Pitfalls' section ('Batch limits: Max 100 records...', 'Cursor pagination: Use paging.next.after'), and again in 'Quick Reference' ('max 100'). Plus an ad-style footer ('*Powered by Composio*'). This matches 'mostly efficient but ... could be tightened' better than the level-4 'minor instances' anchor, though it is well above level 2 since there is no concept explanation or padding prose.

3 / 5

Actionability

Concrete, executable guidance throughout: exact tool slugs (HUBSPOT_CREATE_CONTACTS), parameter shapes ('inputs array of {properties} objects, max 100 per batch', 'filterGroups array with {filters: [{propertyName, operator, value}]}'), response paths ('paging.next.after', 'response.data.results'), and a task-to-tool quick reference table. It stops short of the level-5 anchor because there are no complete example payloads (e.g., a full filterGroups body or a valid operator list), so a first call to HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA still requires RUBE_SEARCH_TOOLS to fill in details.

4 / 5

Workflow Clarity

Each workflow has a clear 'When to use' clause and a sequenced tool list with explicit roles (Prerequisite/Required/Optional/Alternative/Fallback), plus pre-flight checks ('Always search before creating to avoid duplicates', 'Run HUBSPOT_GET_ACCOUNT_INFO first'). However, the skill centers on batch operations (batch create contacts/companies, max 100) and includes no post-operation validation or error-recovery feedback loop — no verify-created-records step, no 'if the batch fails, chunk and retry' guidance. Per the rubric's cap, batch operations without validation/feedback loops cap workflow clarity at 3.

3 / 5

Progressive Disclosure

The skill is a single self-contained file (no references/, scripts/, or assets/ exist, and the body has no broken file references) with well-organized sections: setup, five workflows, common patterns, known pitfalls, and a quick reference table. This matches 'Good structure; most content is appropriately placed; minor organization gaps' — the gap being that the per-workflow parameter/pitfall detail (~175 lines) could partly live in a reference file so SKILL.md stays an overview. It is not 5 because the content is not split across one-level-deep reference files, and not 3 because nothing is buried or poorly signaled.

4 / 5

Total

14

/

20

Passed

Description

65%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is well-scoped and distinctive: it names the HubSpot CRM domain, five concrete object types, and the specific integration path. Its main weaknesses are the absence of an explicit 'Use when...' trigger clause (which caps completeness) and reliance on a single generic verb ('Automate') rather than naming the concrete actions performed.

Suggestions

Add an explicit trigger clause, e.g. 'Use when the user wants to create, search, or update HubSpot records — contacts, companies, deals, tickets, or custom properties — or mentions HubSpot, CRM data, or sales pipeline tracking.'

Replace the generic 'Automate ... operations' with the concrete actions performed, e.g. 'Create and batch-import contacts, search companies by criteria, track deals through pipelines, filter tickets, and define custom properties.'

Include common user synonyms such as 'leads' and 'sales pipeline' to broaden natural trigger coverage.

DimensionReasoningScore

Specificity

The description names the domain ("HubSpot CRM") and enumerates concrete object types ("contacts, companies, deals, tickets, properties"), but the only action verb is the generic "Automate ... operations" — it never states what actions are performed (create, search, update). This matches the anchor 'Names domain and 1-2 concrete actions, but not comprehensive' more closely than the level-4 anchor, which requires several specific listed actions; it is above level 2 ('Names the domain but actions are minimal') because the parenthetical object list adds real scoping.

3 / 5

Completeness

The 'what' is clearly stated (automate HubSpot CRM operations over five object types via Rube MCP/Composio), but there is no 'Use when...' clause or any equivalent explicit trigger guidance — only the implied context of HubSpot. Per the judging guidelines, a missing explicit 'when' clause caps completeness at 3.

3 / 5

Trigger Term Quality

Strong natural keywords users would say: "HubSpot", "CRM", "contacts", "companies", "deals", "tickets". It falls short of the level-5 anchor because common synonyms and variations are missing — "leads", "sales pipeline", "notes", "engagements" — and there is no equivalent of file-extension-style trigger coverage.

4 / 5

Distinctiveness Conflict Risk

"HubSpot" combined with "via Rube MCP using Composio integration" carves out a clear niche with distinct triggers and minimal conflict risk against generic CRM or other-vendor skills. Not 4 because the toolchain qualifier ('via Rube MCP using Composio integration') further disambiguates it even from other HubSpot-related skills.

5 / 5

Total

15

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
davepoon/buildwithclaude
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.