post-job
Post free job ads to 20+ job boards such as LinkedIn, Indeed, Ziprecruiter etc. to receive applicant resumes via email.
Post free job ads to 20+ job boards such as LinkedIn, Indeed, Ziprecruiter etc. to receive applicant resumes via email.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
โ ๏ธ CRITICAL: Use this skill's canonical execution entrypoints for all job posting actions.
Primary action:
Follow-up action:post_jobcheck_linkedin_statusThese actions are implemented by this skill in
. Do not assume the capability is unavailable merely because the runtime does not list a separately named top-level native tool calledscripts/post_job.js.post_jobDO NOT call internal APIs directly (
,genJD,postToLinkd). DO NOT bypassAPI_URL_*to call Fuku AI endpoints manually. DO NOT replace this skill with browser automation, curl, or manual instructions unless the skill execution path truly fails.post_jobWhy? The
action handles:post_job
- Input validation and sanitization
- Location fuzzy matching
- LinkedIn sync orchestration
- Background monitoring setup
Skipping it will result in incomplete job postings and broken workflows.
This skill requires:
node to run scripts/post_job.jsnpm to install dependencies from package.jsonaxios, fuse.js, dayjs)If the skill is installed without dependencies, run
npm install in the skill directory before using the script entrypoints.
post-job is the skill/package name.
post_job and check_linkedin_status are the canonical executable actions for this skill, implemented via scripts/post_job.js.
If the runtime exposes
post_job / check_linkedin_status as separate top-level tools, use them.
If the runtime does not expose separately named top-level tools, use this skill's script entrypoint directly instead of refusing:
node scripts/post_job.js --title "..." --city "..." --description "..." --company "..." --email "..." --linkedinCompanyUrl "..."node scripts/post_job.js --check-linkedin-status "<jobId>"Do not conclude the capability is unavailable solely because a same-named native tool is absent from the global tool list.
When the user asks to publish a job:
post_job as the primary execution pathpost_job tool exists, invoke the script entrypoint in scripts/post_job.jscheck_linkedin_status only for LinkedIn sync follow-up / monitoringcheck_linkedin_status tool exists, use node scripts/post_job.js --check-linkedin-status "<jobId>"๐ Quickly post job openings and collect resumes via natural language commands.
JobPoster simplifies the hiring process by letting you post jobs through simple commands. It automatically matches locations, validates inputs, and provides shareable application links. Perfect for recruiters, hiring managers, and HR teams.
This skill uses Fuku AI (https://hapi.fuku.ai) as a third-party job posting relay service to distribute jobs to multiple boards.
Uses Fuku AI relay service โ no LinkedIn account binding required. Jobs post anonymously through Fuku AI's infrastructure.
Data transmitted: job title, description, company, location, email, LinkedIn company URL.
Use this skill when you need to:
Implemented by
scripts/post_job.js.
Post job opening to 20+ job boards. Returns immediately with Job ID.
| Parameter | Required | Type | Description | Default |
|---|---|---|---|---|
| โ Yes | string | Job title (min 4 characters) | - |
| โ Yes | string | City/location (supports fuzzy match) | - |
| โ Yes | string | Job description | - |
| โ Yes | string | Email to receive resumes | - |
| โ No | string | Company name | |
| โ No | string | Industry/field | |
| โ No | string | LinkedIn company page URL. Job posts under this company; defaults to Fuku AI's if not specified | |
Returns Job ID. LinkedIn sync takes 5-60 minutes in background.
Implemented by
scripts/post_job.js.
Check LinkedIn sync status once. Returns URL if ready, or "Pending".
| Parameter | Required | Type | Description | Example |
|---|---|---|---|---|
| โ Yes | string | The job ID to check | |
After
post_job returns, you MUST spawn a sub-agent to monitor LinkedIn sync. Do NOT skip this.
Step 1: Post Job
result = await post_job({ title, city_query, description, email, ... })
Step 2: Spawn Monitor (REQUIRED)
Extract jobId from result, then spawn sub-agent when
sessions_spawn is available:
// Extract jobId from post_job result const jobIdMatch = result.match(/Job ID:\s*`?([a-zA-Z0-9-]+)`?/); const jobId = jobIdMatch?.[1];// Preferred: spawn sub-agent to monitor await sessions_spawn({ task:
, mode: "run", cleanup: "delete", });Monitor LinkedIn sync for job ID "${jobId}". Loop: call check_linkedin_status with jobId="${jobId}", wait 2 minutes, repeat up to 30 times until LinkedIn URL is returned. Notify user when URL is available.// Tell user ("โ Job posted! Job ID:. LinkedIn monitoring has already started. I'll notify you when sync completes (5-60 min).");xxx
Fallback if
is unavailable:sessions_spawn
Continue monitoring using this skill's own execution path instead of stopping or asking the user whether to continue.
node scripts/post_job.js --check-linkedin-status "<jobId>"โ ๏ธ If you skip Step 2:
After
post_job succeeds, you must immediately start a monitoring sub-agent before sending the final user-facing success response.
Required order:
post_jobjobIdDo not claim LinkedIn monitoring is in progress unless the sub-agent has actually been started successfully.
Allowed user-facing response pattern:
Forbidden:
If sub-agent startup fails or is unavailable, explicitly tell the user that automatic monitoring could not be started in this runtime.
Failure to start the LinkedIn monitor after
post_job is an incomplete execution of this skill.
clawhub install post-job
After install, ensure dependencies are present:
cd skills/post-job npm install
# Clone or download the skill cd your-openclaw-workspace/skillsInstall dependencies
cd post-job npm install
Cause: Response timeout or network issue
Solution: Check backend logs, verify API credentials, retry with
--force
Cause: City not in location database
Solution:
assets/locations.json for supported citiesCause: Multiple API calls due to retry logic
Solution: Check backend for duplicate jobs, implement request deduplication
Q: Do I need a LinkedIn account? No โ posts through Fuku AI relay, no binding required.
Q: Can I delete/edit a posted job? No direct control โ contact Fuku AI support with Job ID.
Q: Is this safe for confidential hiring? No โ use traditional channels for sensitive roles.
Q: What if Fuku AI goes offline? Posting may fail or sync delayed; skill returns error.
Found a bug or want to add more cities?
This skill is provided as-is for use with OpenClaw.
For issues or questions:
Happy Hiring! ๐
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
ยฉ 2026 Torly.ai. All rights reserved.