← Back to Skills Marketplace
hotwheelsbo

articuler

by hotwheelsBo · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ✓ Security Clean
182
Downloads
0
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install articuler
Description
AI-powered professional networking assistant. Generate personalized cold emails and outreach playbooks to accelerate career growth and business development.
README (SKILL.md)

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": "[email protected]",
  "type": 1
}'

Parameters

Field Type Description
email string The user's email address
type integer Verification 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": "[email protected]",
  "captcha": "xxxxxx",
  "linkedin_url": "https://www.linkedin.com/in/your-profile/"
}'

Parameters

Field Type Description
email string The user's email address
captcha string The verification code received in the user's inbox (from Step 1)
linkedin_url string The 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

Field Type Description
token string Auth token obtained from Step 2
target_linkedin_url string The target contact's LinkedIn profile URL
objective string The 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

Field Type Description
sess_id string The 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

Field Type Description
token string Auth token obtained from Step 2
target_linkedin_url string The target contact's LinkedIn profile URL
objective string The 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

Field Type Description
sess_id string The 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],\
\
I 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

Tool Description
generate_cold_email Generate a personalized cold email given two LinkedIn profiles and an objective
generate_playbook Generate 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:

Intent Keywords
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

Usage Guidance
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.
Capability Analysis
Type: OpenClaw Skill Name: articuler Version: 1.0.2 The 'articuler' skill is a legitimate integration for a professional networking assistant service. It facilitates a multi-step workflow including email verification, user login via LinkedIn profile, and asynchronous generation of outreach playbooks and cold emails through the api.articuler.ai domain. The instructions in SKILL.md are well-structured, require explicit user involvement for authentication (captcha), and include safety guidelines such as requiring user review before sending any generated content.
Capability Assessment
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.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install articuler
  3. After installation, invoke the skill by name or use /articuler
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
**Summary:** This release introduces a two-step authentication and a new async API workflow for playbook generation. - Added a mandatory login step: users must submit a verification code received by email, then log in to receive a `token` for all business API calls. - Changed the playbook generation API to an asynchronous process; now returns a `sessionId` and requires polling for completion. - Updated API parameters: all main functions now require a `token` instead of raw email/captcha. - Clarified user flow: steps must be performed in order—verification, login, submit job, then poll for results. - Updated documentation to match the new authentication and async job design.
v1.0.1
- Updated API usage documentation to use --data instead of --data-raw in curl examples. - No functional or feature changes; documentation improvements only.
v1.0.0
Initial release of Articuler—an AI-powered professional networking assistant. - Generates personalized cold emails tailored to LinkedIn profiles and objectives. - Builds structured multi-step outreach playbooks with timing and follow-up details. - Requires email verification (captcha) before use. - Supports both REST API and MCP server interface. - Includes intent detection based on objective keywords for more relevant messaging.
Metadata
Slug articuler
Version 1.0.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is articuler?

AI-powered professional networking assistant. Generate personalized cold emails and outreach playbooks to accelerate career growth and business development. It is an AI Agent Skill for Claude Code / OpenClaw, with 182 downloads so far.

How do I install articuler?

Run "/install articuler" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is articuler free?

Yes, articuler is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does articuler support?

articuler is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created articuler?

It is built and maintained by hotwheelsBo (@hotwheelsbo); the current version is v1.0.2.

💬 Comments