CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

bullhorn

Bullhorn integration. Manage Persons, Organizations, Deals, Leads, Projects, Users and more. Use when the user wants to interact with Bullhorn data.

Quality

66%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/bullhorn/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

56%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 delivers a genuinely actionable CLI workflow with executable commands and a well-handled connection state machine, including polling feedback loops. Its weaknesses are token efficiency — a huge redundant entity list and a filler sentence — and progressive disclosure, since bulk reference material is inlined rather than split into a separate file.

Suggestions

Move the 70-line entity catalog and the popular-actions table into a references/ file (e.g. references/entities.md), keeping SKILL.md to the connect/discover/run workflow.

Delete the filler line "Use action names and parameters as needed" and replace the static entity list with a pointer to the `membrane action list --intent` search that already provides this dynamically.

Fix the dangling "skip to **Step 2**" reference (no Step 2 heading exists) and add one worked example that resolves CONNECTION_ID/QUERY placeholders, e.g. searching candidates end-to-end with a sample `--input` payload.

DimensionReasoningScore

Conciseness

A ~70-line flat bullet dump of entity names ("Candidate… TimeUnit… Currency…") capped by the filler sentence "Use action names and parameters as needed" pads the file, and the intro paragraph explains what Bullhorn is. The dynamic `membrane action list --intent` search makes the static entity list largely redundant, matching anchor 2 (noticeably verbose with padded sections) rather than anchor 3's mostly-efficient profile.

2 / 5

Actionability

Commands throughout are concrete and executable: `npm install -g @membranehq/cli@latest`, `membrane login complete <code>`, `membrane action run <actionId> --input '{"key": "value"}'`, and a proxy flags table. Minor gaps keep it at anchor 4: `membrane connection ensure "" --json` shows a literal empty-string argument without explanation, and no worked end-to-end example resolves the CONNECTION_ID/QUERY placeholders.

4 / 5

Workflow Clarity

The sequence (install → login → connect → poll → discover → run → proxy fallback) is clear and includes a real feedback loop: poll with `--wait`, act on `clientAction` for `CLIENT_ACTION_REQUIRED`, re-poll after the user authenticates, and check `error` on `CONFIGURATION_ERROR`. Minor gaps: the "skip to **Step 2**" reference points at no labeled Step 2, and there is no error-handling guidance after `action run` — anchor 4, short of anchor 5's fully closed validation loops.

4 / 5

Progressive Disclosure

The single file has decent section headers, but roughly 40% of the body — the 70-line entity catalog and the 20-row popular-actions table — is reference material inlined in SKILL.md that clearly belongs in a separate file, matching anchor 3 (content that should be separate is inline). No bundle files exist to reference, so anchor 4's well-placed references cannot apply.

3 / 5

Total

13

/

20

Passed

Description

62%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 clearly identifies its niche (Bullhorn CRM/ATS) and follows the good what-plus-when structure, with an explicit "Use when..." trigger clause. Its main weaknesses are the single generic action verb "Manage" with vague "and more" padding, and thin natural-language trigger coverage missing terms like candidates, placements, staffing, or recruiting.

Suggestions

Replace the generic "Manage ... and more" with 2-3 concrete actions, e.g. "Search and create candidates, job orders, placements, and client corporations in Bullhorn".

Add natural trigger vocabulary to the when-clause: "Use when the user mentions Bullhorn, candidates, placements, job orders, or staffing/recruiting CRM data".

Cut "and more" — vague open-ended padding invites over-claims without adding trigger value.

DimensionReasoningScore

Specificity

"Manage Persons, Organizations, Deals, Leads, Projects, Users and more" enumerates concrete entities, but the only action verb is the generic "Manage" and "and more" is vague padding. It sits above anchor 2 (bare domain naming) because of the entity list, but lacks the 1-2 truly concrete actions anchor 3 describes, and is far from the multi-action coverage of anchor 4.

3 / 5

Completeness

Both parts are explicitly present: what ("Manage Persons, Organizations, Deals, Leads, Projects, Users") and when ("Use when the user wants to interact with Bullhorn data"), matching anchor 4's form. It is not a 5 because the when-clause lacks concrete trigger phrases and the what-clause trails off with "and more" instead of comprehensive action coverage.

4 / 5

Trigger Term Quality

"Bullhorn" and "Bullhorn data" are natural trigger terms and entity names (Leads, Deals, Persons) double as user vocabulary, but common variations are missing — no "candidates", "placements", "job orders", "CRM", "staffing", or "recruiting". This matches anchor 3 (some relevant keywords, missing common variations); anchor 4 would require broader natural-term coverage.

3 / 5

Distinctiveness Conflict Risk

"Bullhorn" is a distinct niche product name that gates the when-clause, keeping conflict risk low. However, the generic CRM vocabulary in the description ("Persons", "Organizations", "Deals", "Leads") creates minor overlap risk with other CRM/ATS skills when the product name is not mentioned — anchor 4, not the minimal-conflict niche of anchor 5.

4 / 5

Total

14

/

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

membranedev/application-skills

Path

skills/bullhorn/SKILL.md

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.