articuler

v1.0.2

AI-powered professional networking assistant. Generate personalized cold emails and outreach playbooks to accelerate career growth and business development.

0· 180·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for hotwheelsbo/articuler.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "articuler" (hotwheelsbo/articuler) from ClawHub.
Skill page: https://clawhub.ai/hotwheelsbo/articuler
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: curl
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 articuler

ClawHub CLI

Package manager switcher

npx clawhub@latest install articuler
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (cold emails + outreach playbooks) align with the required tooling and endpoints. Requiring curl and calling api.articuler.ai is expected for a hosted web API service.
Instruction Scope
SKILL.md instructs the agent to send a verification code to the user's email, ask the user for the captcha code from their inbox, log in with that code and the user's LinkedIn URL to obtain a token, then submit a playbook job and poll for results. All network calls target api.articuler.ai and the steps are bounded to the stated purpose. Note: the token returned is sensitive and the skill asks to "save the token" — callers should treat it as a secret and not leak it to other tools or logs.
Install Mechanism
No install spec and no code files — instruction-only. This minimizes on-disk code risk. Only runtime requirement is curl, which is reasonable for the provided curl examples.
Credentials
The skill declares no environment variables, no config paths, and only requires user-provided email/captcha and LinkedIn URL. Requested inputs are proportional to the stated functionality.
Persistence & Privilege
always is false and the skill does not request persistent platform privileges or modify other skills. It does instruct saving a per-session token for API calls; this is reasonable but the token should be handled securely.
Assessment
This skill appears coherent with its purpose, but before you use it: (1) only provide your email address and the verification code if you trust https://api.articuler.ai / articuler.ai and understand their privacy policy; the verification code and returned token are sensitive — avoid pasting them into other tools or public chats; (2) the skill requires your LinkedIn profile URL and will send that to articuler.ai — consider whether you are comfortable sharing that profile; (3) because the SKILL.md uses curl from the agent, the agent will make network requests from your environment — ensure you trust the remote service; (4) if you want stronger assurance, ask the publisher for source code or an explicit privacy/data-retention statement. If you are unsure about trusting articuler.ai or you see unexpected endpoints or extra credential requests, do not proceed.

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

Runtime requirements

🤖 Clawdis
Binscurl
latestvk979mxh6gzwwx20cv5t1z8vwx1837xgn
180downloads
0stars
3versions
Updated 1mo ago
v1.0.2
MIT-0

Articuler Skill

Craft the perfect cold email and build a structured outreach playbook — all driven by your specific professional goal and LinkedIn profile.

What This Skill Does

  1. Generate cold emails — Write personalized outreach emails tailored to each contact's background
  2. Build a playbook — Create a structured outreach strategy with timing, talking points, and follow-up cadence

Usage

Note: Steps 1 and 2 are required before calling any business API. Complete them in order to obtain a token.


Step 1 — Email Check (Required)

Send a verification code to the user's email address.

curl --location --request POST 'https://api.articuler.ai/user/send-check' \
--header 'Content-Type: application/json' \
--data '{
  "email": "your@email.com",
  "type": 1
}'

Parameters

FieldTypeDescription
emailstringThe user's email address
typeintegerVerification type, use 1 for standard check

The verification code will be sent to the user's inbox. Ask the user to provide the captcha code before proceeding to Step 2.


Step 2 — Login (Required)

Log in with the user's email, captcha code, and LinkedIn profile URL. Returns a token required for all subsequent API calls.

curl --location --request POST 'https://api.articuler.ai/user/artclaw/login' \
--header 'Content-Type: application/json' \
--data '{
  "email": "your@email.com",
  "captcha": "xxxxxx",
  "linkedin_url": "https://www.linkedin.com/in/your-profile/"
}'

Parameters

FieldTypeDescription
emailstringThe user's email address
captchastringThe verification code received in the user's inbox (from Step 1)
linkedin_urlstringThe user's own LinkedIn profile URL

Response

{
  "token": "xxxxxx"
}

Save the token — it is required for all subsequent API calls.


Step 3 — Generate Playbook (Async)

Submit a playbook generation job for the current user and a target contact. This is an async API — it returns a sessionId immediately. Use Step 4 to poll for the result.

curl --location --request POST 'https://api.articuler.ai/user/artclaw/playbook' \
--header 'Content-Type: application/json' \
--data '{
    "token": "xxx",
    "target_linkedin_url": "https://www.linkedin.com/in/your-target-profile/",
    "objective": "Want to be a partner"
}'

Parameters

FieldTypeDescription
tokenstringAuth token obtained from Step 2
target_linkedin_urlstringThe target contact's LinkedIn profile URL
objectivestringThe goal of this outreach (e.g. "Want to be a partner")

Response

{
    "code": 0,
    "msg": "",
    "data": {
        "sessionId": "31ee76d4-ab7e-4d5f-8196-f4507ef779b9",
        "status": "searching"
    }
}

Save the sessionId — it is used to poll for the result in Step 4.


Step 4 — Poll Playbook Result

Poll this endpoint repeatedly until status is "done". When done, read the playbook content from the response.

curl --location --request GET 'https://api.articuler.ai/user/artclaw/playbook/info?sess_id=xxx' \
--header 'Content-Type: application/json'

Parameters

FieldTypeDescription
sess_idstringThe sessionId returned from Step 3

Polling Logic

  • Poll every 3 seconds
  • Stop polling when data.status === "done"
  • If status remains "searching" after 300 seconds, inform the user that generation is taking longer than expected and ask whether to keep waiting

Response — In Progress

{
    "code": 0,
    "msg": "",
    "data": {
        "sessionId": "31ee76d4-ab7e-4d5f-8196-f4507ef779b9",
        "status": "searching",
        "objective": "Want to be a partner",
        "playbook": { "subtopics": null },
        "doOrNot": { "do": null, "doNot": null }
    }
}

Response — Completed

{
    "code": 0,
    "msg": "",
    "data": {
        "sessionId": "31ee76d4-ab7e-4d5f-8196-f4507ef779b9",
        "status": "done",
        "objective": "Want to be a partner",
        "playbook": {
            "subtopics": [
                {
                "subtopicName": "Absence of Personal Information for Mason Brown",
                "insights": [
                    {
                    "insight": {
                        "title": "No Verified Personal Background or Professional Activities Available for Mason Brown",
                        "content": "Despite extensive search, no confirmed profiles...",
                        "referenceLinks": []
                    }
                    }
                ]
                },
                {
                "subtopicName": "Monroe Street Partners' Strategic Differentiators",
                "insights": [
                    {
                    "insight": {
                        "title": "Non-Traditional Private Equity Model Focused on Long-Term Value",
                        "content": "Monroe Street Partners (MSP), founded in ...",
                        "referenceLinks": [
                        "https://www.monroestreet-partners.com/aboutmsp",
                        "https://static1.squarespace.com/static/6218510..."
                        ]
                    }
                    }
                ]
                }
            ]
        },
        "doOrNot": {
            "do": [
                {
                "title": "Discuss Monroe Street Partners' Unique PE Model and Financing Needs",
                "contentList": [
                    "Leverage intelligence about MSP being ..."
                ]
                },
                {
                "title": "Explore Synergies Between Mason's DCM Experience and MSP's Lower Middle-Market Focus",
                "contentList": [
                    "Mason's background in Debt Capital Markets at PNC..."
                ]
                },
                {
                "title": "Address Current Private Credit Market Trends Relevant to MSP's Strategy",
                "contentList": [
                    "The industry context shows private credit doubling..."
                ]
                }
            ],
            "doNot": [
                {
                "title": "Avoid Pushing a Generic \"Off-the-Shelf\" Lending Solution",
                "contentList": [
                    "Monroe Street Partners explicitly differentiates ..."
                ]
                },
                {
                "title": "Refrain from Unsubstantiated Assumptions about Mason's Booth Studies or Long-Term Career Plans",
                "contentList": [
                    "While Mason is attending Booth, his specific degree..."
                ]
                },
                {
                "title": "Do Not Undervalue Mason's Role as a Summer Associate",
                "contentList": [
                    "Although a Private Equity Summer Associate role is ..."
                ]
                }
            ]
        }
    }
}

Present the playbook.subtopics, doOrNot.do, and doOrNot.doNot to the user in a readable format.


Step 5 — Generate Cold Email (Async)

Submit a cold email generation job. Same async pattern as Steps 3–4: returns a sessionId immediately, use Step 6 to poll for the result.

curl --location --request POST 'https://api.articuler.ai/user/artclaw/coldemail' \
--header 'Content-Type: application/json' \
--data '{
    "token": "xxx",
    "target_linkedin_url": "https://www.linkedin.com/in/your-target-profile/",
    "objective": "Want to be a partner"
}'

Parameters

FieldTypeDescription
tokenstringAuth token obtained from Step 2
target_linkedin_urlstringThe target contact's LinkedIn profile URL
objectivestringThe goal of this cold email (e.g. "Explore investment opportunities")

Response

{
    "code": 0,
    "msg": "",
    "data": {
        "sessionId": "2c6ae07f-bde7-4f6a-8cc6-944a99d742fd",
        "status": "searching"
    }
}

Save the sessionId — it is used to poll for the result in Step 6.


Step 6 — Poll Cold Email Result

Poll this endpoint repeatedly until status is "done". When done, read the email content from the response.

curl --location --request GET 'https://api.articuler.ai/user/artclaw/coldemail?sess_id=xxx' \
--header 'Content-Type: application/json'

Parameters

FieldTypeDescription
sess_idstringThe sessionId returned from Step 5

Polling Logic

  • Poll every 3 seconds
  • Stop polling when data.status === "done"
  • If status remains "searching" after 300 seconds, inform the user that generation is taking longer than expected and ask whether to keep waiting

Response — In Progress

{
    "code": 0,
    "msg": "",
    "data": {
        "sessionId": "2c6ae07f-bde7-4f6a-8cc6-944a99d742fd",
        "status": "searching",
        "objective": "Want to be a partner",
        "subject": "",
        "coldEmail": ""
    }
}

Response — Completed

{
    "code": 0,
    "msg": "",
    "data": {
        "sessionId": "2c6ae07f-bde7-4f6a-8cc6-944a99d742fd",
        "status": "done",
        "objective": "Want to be a partner",
        "subject": "Exploring a potential partnership",
        "coldEmail": "Hi [Name],\n\nI came across your work on..."
    }
}

Always show the subject and coldEmail to the user for review before sending. Never auto-send.


MCP Server

Articuler provides an MCP server as an alternative to the REST API above.

Endpoint: https://www.articuler.ai/mcp

ToolDescription
generate_cold_emailGenerate a personalized cold email given two LinkedIn profiles and an objective
generate_playbookGenerate a multi-step outreach playbook given two LinkedIn profiles and an objective

Intent Detection

Detect the user's networking intent from their objective to set the right tone and structure:

IntentKeywords
fundraising融资、投资人、VC、pre-seed
hiring招聘、合伙人、CTO、团队
partnership合作、BD、渠道、资源置换
research了解行业、调研、趋势
sales客户、企业采购、demo

Tips

  • Complete Steps 1 and 2 before calling any business API
  • For cold emails, always show the draft to the user for review — never auto-send
  • Playbooks work best when both LinkedIn profiles are detailed and up to date
  • The more specific the objective, the more targeted the output

Links

Comments

Loading comments...