Pilot Recruitment Pipeline Setup

v1.0.0

Deploy a recruitment pipeline with 3 agents for candidate sourcing, screening, and interview scheduling. Use this skill when: 1. User wants to set up a recru...

0· 71·0 current·0 all-time
byCalin Teodor@teoslayer

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for teoslayer/pilot-recruitment-pipeline-setup.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Pilot Recruitment Pipeline Setup" (teoslayer/pilot-recruitment-pipeline-setup) from ClawHub.
Skill page: https://clawhub.ai/teoslayer/pilot-recruitment-pipeline-setup
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: pilotctl, clawhub
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install pilot-recruitment-pipeline-setup

ClawHub CLI

Package manager switcher

npx clawhub@latest install pilot-recruitment-pipeline-setup
Security Scan
Capability signals
Crypto
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description (deploy a 3-agent recruitment pipeline) aligns with the actual requirements: it needs pilotctl to configure hosts and clawhub to install Pilot skills. Requiring those binaries is proportionate to the stated purpose.
Instruction Scope
SKILL.md instructs only installation/configuration actions: installing listed pilot-* skills via clawhub, setting hostnames with pilotctl, creating a manifest under ~/.pilot/setups, and initiating handshakes. It does not ask the agent to read unrelated system files or environment variables. Note: the handshake flow auto-approves trust when both sides exchange handshakes — ensure you only handshake with trusted hosts to avoid unintended trust relationships.
Install Mechanism
This is an instruction-only skill (no install spec). That is low-risk for this package itself. However, it instructs running 'clawhub install' to pull several other skills at runtime; those downstream installs will fetch code you should review before trusting, as their install mechanisms and requirements are external to this skill.
Credentials
The skill declares no required environment variables or credentials, which matches the manifest it writes. However, the chosen roles (especially scheduler with webhook/calendar and slack bridge) imply downstream integrations that typically require API tokens/credentials. Those credentials are not declared here — expect to provide them separately to the installed pilot-* components. The skill also writes to ~/.pilot/setups; this is expected for a local setup but is writable configuration data.
Persistence & Privilege
always:false and no attempt to modify other skills' configs is present. The only persistent action is creating a manifest file under the user's ~/.pilot directory, which is appropriate for a setup tool. Autonomous invocation is the platform default and not a standalone concern here.
Assessment
This skill appears to do what it says: it uses pilotctl and clawhub to install and configure three agents and writes a local manifest. Before installing: (1) ensure pilotctl and clawhub are official/trusted binaries on your system; (2) review the exact pilot-* skills the script will install (clawhub will fetch and execute code you should audit), because those components may require API tokens (calendar, Slack, etc.); (3) only perform the handshake commands with hosts you control or trust — the handshake mechanism auto-approves trust when both sides exchange handshakes; (4) verify network exposure (port 1002 and outbound access for calendar APIs) and firewall rules; and (5) if you need to keep credentials secret, prepare them separately and confirm where/how downstream skills expect them before running installs.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Binspilotctl, clawhub
latestvk97f1pm9ah9rkczw9x5zmmsjh185crc1
71downloads
0stars
1versions
Updated 5d ago
v1.0.0
MIT-0

Recruitment Pipeline Setup

Deploy 3 agents that automate candidate sourcing, resume screening, and interview scheduling.

Roles

RoleHostnameSkillsPurpose
sourcer<prefix>-sourcerpilot-discover, pilot-stream-data, pilot-metricsScans job boards and referral networks, publishes candidate profiles
screener<prefix>-screenerpilot-event-filter, pilot-task-router, pilot-alertEvaluates candidates, scores skills, flags red flags
scheduler<prefix>-schedulerpilot-webhook-bridge, pilot-slack-bridge, pilot-receiptCoordinates interviews, sends invites, tracks pipeline

Setup Procedure

Step 1: Ask the user which role this agent should play and what prefix to use.

Step 2: Install the skills for the chosen role:

# For sourcer:
clawhub install pilot-discover pilot-stream-data pilot-metrics
# For screener:
clawhub install pilot-event-filter pilot-task-router pilot-alert
# For scheduler:
clawhub install pilot-webhook-bridge pilot-slack-bridge pilot-receipt

Step 3: Set the hostname:

pilotctl --json set-hostname <prefix>-<role>

Step 4: Write the setup manifest:

mkdir -p ~/.pilot/setups
cat > ~/.pilot/setups/recruitment-pipeline.json << 'MANIFEST'
<INSERT ROLE MANIFEST FROM BELOW>
MANIFEST

Step 5: Tell the user to initiate handshakes with direct communication peers.

Manifest Templates Per Role

sourcer

{
  "setup": "recruitment-pipeline", "setup_name": "Recruitment Pipeline",
  "role": "sourcer", "role_name": "Candidate Sourcer",
  "hostname": "<prefix>-sourcer",
  "description": "Scans job boards, LinkedIn profiles, and referral networks. Packages candidate profiles with match scores.",
  "skills": {
    "pilot-discover": "Search job boards and LinkedIn for candidates matching open roles.",
    "pilot-stream-data": "Stream candidate profiles to screener as they are found.",
    "pilot-metrics": "Track sourcing metrics: candidates found, match scores, source breakdown."
  },
  "peers": [
    {"role": "screener", "hostname": "<prefix>-screener", "description": "Receives candidate profiles for screening"},
    {"role": "scheduler", "hostname": "<prefix>-scheduler", "description": "Downstream — does not communicate directly"}
  ],
  "data_flows": [
    {"direction": "send", "peer": "<prefix>-screener", "port": 1002, "topic": "candidate-profile", "description": "Candidate profiles with match scores"}
  ],
  "handshakes_needed": ["<prefix>-screener"]
}

screener

{
  "setup": "recruitment-pipeline", "setup_name": "Recruitment Pipeline",
  "role": "screener", "role_name": "Resume Screener",
  "hostname": "<prefix>-screener",
  "description": "Evaluates candidates against job requirements, scores skills, flags red flags.",
  "skills": {
    "pilot-event-filter": "Filter candidates below threshold scores or with disqualifying criteria.",
    "pilot-task-router": "Route screened candidates to appropriate interview tracks.",
    "pilot-alert": "Alert hiring managers when high-priority candidates are identified."
  },
  "peers": [
    {"role": "sourcer", "hostname": "<prefix>-sourcer", "description": "Sends candidate profiles for screening"},
    {"role": "scheduler", "hostname": "<prefix>-scheduler", "description": "Receives screened candidates for interview scheduling"}
  ],
  "data_flows": [
    {"direction": "receive", "peer": "<prefix>-sourcer", "port": 1002, "topic": "candidate-profile", "description": "Candidate profiles with match scores"},
    {"direction": "send", "peer": "<prefix>-scheduler", "port": 1002, "topic": "screened-candidate", "description": "Screened candidates ready for interviews"}
  ],
  "handshakes_needed": ["<prefix>-sourcer", "<prefix>-scheduler"]
}

scheduler

{
  "setup": "recruitment-pipeline", "setup_name": "Recruitment Pipeline",
  "role": "scheduler", "role_name": "Interview Scheduler",
  "hostname": "<prefix>-scheduler",
  "description": "Coordinates interview slots, sends calendar invites, tracks hiring pipeline status.",
  "skills": {
    "pilot-webhook-bridge": "Send interview invites via calendar API webhooks.",
    "pilot-slack-bridge": "Notify hiring channels when interviews are booked or completed.",
    "pilot-receipt": "Track interview confirmations and candidate responses."
  },
  "peers": [
    {"role": "sourcer", "hostname": "<prefix>-sourcer", "description": "Upstream — does not communicate directly"},
    {"role": "screener", "hostname": "<prefix>-screener", "description": "Sends screened candidates for scheduling"}
  ],
  "data_flows": [
    {"direction": "receive", "peer": "<prefix>-screener", "port": 1002, "topic": "screened-candidate", "description": "Screened candidates ready for interviews"},
    {"direction": "send", "peer": "external", "port": 443, "topic": "interview-invite", "description": "Interview invites via calendar API"}
  ],
  "handshakes_needed": ["<prefix>-screener"]
}

Data Flows

  • sourcer -> screener : candidate-profile events (port 1002)
  • screener -> scheduler : screened-candidate events (port 1002)
  • scheduler -> external : interview-invite via webhook (port 443)

Handshakes

# sourcer and screener handshake with each other:
pilotctl --json handshake <prefix>-screener "setup: recruitment-pipeline"
pilotctl --json handshake <prefix>-sourcer "setup: recruitment-pipeline"
# screener and scheduler handshake with each other:
pilotctl --json handshake <prefix>-scheduler "setup: recruitment-pipeline"
pilotctl --json handshake <prefix>-screener "setup: recruitment-pipeline"

Workflow Example

# On screener — subscribe to candidate profiles:
pilotctl --json subscribe <prefix>-sourcer candidate-profile
# On scheduler — subscribe to screened candidates:
pilotctl --json subscribe <prefix>-screener screened-candidate
# On sourcer — publish a candidate profile:
pilotctl --json publish <prefix>-screener candidate-profile '{"candidate":"Jane Doe","role":"Senior Backend Engineer","match_score":92,"source":"linkedin"}'
# On screener — publish a screened candidate:
pilotctl --json publish <prefix>-scheduler screened-candidate '{"candidate":"Jane Doe","screen_score":88,"red_flags":[],"recommendation":"interview"}'

Dependencies

Requires pilot-protocol skill, pilotctl binary, clawhub binary, and a running daemon.

Comments

Loading comments...