OEE CRM Intelligence

ReviewAudited by ClawScan on May 1, 2026.

Overview

The skill matches its CRM-filtering purpose, but it uses an Anthropic API key, sends contact details to Claude, and keeps a local learning file of rejected contacts.

Before installing, confirm you are comfortable sharing selected CRM contact fields with Anthropic, protect the API key, and review learning.json periodically so contacts are not incorrectly filtered in future runs.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

CRM contact details and email subject snippets may leave the local machine when Stage 2 scoring runs.

Why it was flagged

The code sends contact email, name, subject snippets, and engagement metadata to Anthropic for AI classification.

Skill content
- Email: {contact.get('email', 'unknown')} ... - Name: {contact.get('name', 'unknown')} ... - Sample subjects: {contact.get('subjects', [])} ... client.messages.create(model="claude-3-5-haiku-latest"
Recommendation

Use this only with contact data you are comfortable sending to Anthropic, and consider redacting sensitive subject lines before filtering.

What this means

Use of the skill may consume Anthropic API quota or incur charges under the configured key.

Why it was flagged

The skill requires a provider API credential for its AI scoring stage; this is expected for the stated integration but is still sensitive account access.

Skill content
`ANTHROPIC_API_KEY` environment variable (for Stage 2 AI scoring)
Recommendation

Use a dedicated or limited API key where possible, keep it out of shared files, and monitor provider usage.

What this means

A contact rejected once may continue to be filtered out later unless the learning file is reviewed or edited.

Why it was flagged

Rejected contact emails are kept in memory and can be written back to learning.json, affecting future filtering decisions.

Skill content
self._rejected.add(email) ... self.config["rejected_contacts"] = sorted(self._rejected)
Recommendation

Periodically inspect learning.json, especially the rejected_contacts list, and remove entries that should not be permanently filtered.

What this means

A crafted subject line could influence the AI classification and potentially affect which contacts are prioritized.

Why it was flagged

Untrusted email subject text is inserted directly into the LLM prompt used to decide whether a contact is approved or rejected.

Skill content
Sample subjects: {contact.get('subjects', [])} ... Respond with exactly one line: APPROVE or REJECT
Recommendation

Treat contact fields as data, not instructions; add clear delimiters and prompt guidance to ignore instructions inside subject lines before relying on automated decisions.

What this means

The installed SDK version may vary depending on when and where the command is run.

Why it was flagged

The README documents a manual, unpinned dependency install for the Anthropic SDK. This is expected for the AI feature and is not auto-executed by the skill.

Skill content
pip install anthropic
Recommendation

Install from the official package source and pin a known-good version if using this in a repeatable or production workflow.