← Back to Skills Marketplace
zhangdong

AI Interview

by Dong · GitHub ↗ · v1.0.2
cross-platform ⚠ suspicious
441
Downloads
0
Stars
1
Active Installs
3
Versions
Install in OpenClaw
/install ai-interview
Description
Run AI-powered mock interviews using Fuku.ai's free public service.
README (SKILL.md)

AI Interview Skill

Turn a folder full of resumes into structured AI interview sessions. This skill uses Fuku.ai's free public API to generate AI interview reports.

🎯 Purpose

This is a Fuku.ai-specific skill that leverages their free, anonymous interview service. No user account, API key, or login required.

🔑 Authentication

This skill uses shared anonymous credentials provided by Fuku.ai for public access:

Item Value
Upload Endpoint https://hapi.fuku.ai/hr/rc/anon/file/upload
Job API https://hapi.fuku.ai/hr/rc/anon/job/invite/ai_interview
X-NUMBER Header job-Z4nV8cQ1LmT7XpR2bH9sJdK6WyEaF0
uid Query Param 1873977344885133312

These are fixed, shared credentials for Fuku.ai's free tier. All users of this skill use the same endpoints and identifiers. This is intentional—the service is designed for anonymous, no-login usage.

Design Notes

  • No user credentials required: The service is free and public
  • No environment variables: Endpoints and credentials are hardcoded by design
  • Not self-hostable: This skill only works with Fuku.ai's hosted service
  • Privacy consideration: Resume files are sent to Fuku.ai's servers. Review their privacy policy before uploading sensitive documents.

✅ What It Does

  1. Collects three mandatory inputs: job title, company name, report email.
  2. Scans a resume folder for PDF/DOC/DOCX files (up to 100).
  3. Uploads each resume to Fuku.ai's public endpoint and captures the returned file URLs.
  4. Creates an AI interview job via Fuku.ai's API using the shared anonymous credentials.
  5. Logs minimal job metadata locally and confirms the report email destination.

🧭 Workflow

  1. Install & Prepare

    • cd skills/ai-interview && npm install (installs axios + form-data).
    • Subsequent runs only need node run.js ....
  2. Gather Inputs

    • Ask the user for: job title, company, email for reports (validate email format).
    • Ask for the resume folder path inside the workspace. Confirm contents before proceeding.
  3. Scan Folder

    • Accept only .pdf, .doc, .docx files.
    • Abort if folder is empty or missing.
  4. Upload Resumes

    • From skills/ai-interview/, run node run.js --folder \x3Cdir> --jobTitle \x3Ctitle> --company \x3Ccompany> --email \x3Cemail>.
    • The script auto-detects .pdf/.doc/.docx files (up to 100), uploads each to Fuku.ai's upload endpoint, and captures the returned file URLs.
    • On any failed upload, the script aborts and reports the .desc field from the API.
  5. Trigger Interview Job

    • The same script immediately calls the interview creation endpoint with payload { jobTitle, company, email, fileUrls }.
    • Authentication uses hardcoded credentials (see "Hardcoded Configuration" table above).
    • Expect response { "code": 0, "data": { "id", "company", "title", ... } }.
    • If code is not 0, the script surfaces the error and stops.
  6. Report Back

    • Confirm job creation, list resumes included, and restate the email destination.
    • Persist only the minimal identifiers (id, company, title) into ai-interview/jobs/\x3Ctimestamp>.json—no need to keep full payloads.
    • Remind the user that AI interview reports are delivered directly to the email they provided.
    • A typical success response looks like:
      {
        "code": 0,
        "data": {
          "id": "5b16b2d2f5e947f78244246a9f24e2cb",
          "company": "FUKU",
          "title": "cfoe",
          ... (truncated)
        },
        "desc": "successful"
      }
      

🔒 Validation & Safety

  • Email: Must match /^[^@\s]+@[^@\s]+\.[^@\s]+$/.
  • File count: Maximum 100 resumes per batch.
  • Upload errors: The Fuku API must return code: 0; otherwise surface the .desc field and ask whether to retry or skip that file.
  • PII handling: Do not log resume contents—only file names are logged (not full remote URLs).
  • HTTPS: Both endpoints use HTTPS.
  • Data destination: Resume files are sent to Fuku.ai's third-party service. Review their privacy policy before uploading sensitive documents.

📁 Local Storage

Minimal audit trail stored under ai-interview/jobs/:

ai-interview/
  jobs/
    2026-02-27T08-30-00Z.json  # job identifiers only

Each file contains only the essential identifiers (no resume data or full API responses):

{
  "timestamp": "2026-02-27T08:30:00Z",
  "jobId": "5b16b2d2f5e947f78244246a9f24e2cb",
  "company": "FUKU",
  "title": "cfoe"
}

🧪 Testing Tips

  • Use dummy resumes and a test email address for initial runs.
  • Validate that the email receives the AI interview report before marking the job done.
  • Note: This skill only works with Fuku.ai's production endpoints—there is no staging/mock mode.

🆘 Troubleshooting

Issue Cause Fix
Upload returns 413 File too large Compress resume or raise server limit
fileUrls empty Upload failed silently Check upload response for success flag
API 400 Missing fields Ensure jobTitle/company/email/fileUrls filled

📣 User Prompt Template

"Great! Need the job title, company name, a mailbox for the interview report, and the folder path containing the resumes (PDF/DOC/DOCX)."

🚀 Next Steps

  • Automate email notifications to confirm when the interview report is delivered (future enhancement).
  • Add optional metadata per candidate (experience, notes) by extending the payload.

Happy interviewing! 🎙️

Usage Guidance
This skill appears to do exactly what it says: it will upload resume files from a folder you specify to Fuku.ai's public anonymous API and create an interview job. The main risk is privacy: resumes often contain sensitive PII—do not upload real candidate data unless you have consent and have reviewed Fuku.ai's privacy policy. Test with dummy resumes and a throwaway email first. Also verify file size limits and that the returned file object/URL does not leak more information than you expect. If you require on-prem or private processing, this skill is not suitable as-is.
Capability Analysis
Type: OpenClaw Skill Name: ai-interview Version: 1.0.2 The skill is classified as suspicious due to a path traversal vulnerability in `run.js`. The script directly uses the user-provided `folder` argument in `fs.readdirSync` without sanitization or explicit path validation. If an AI agent allows arbitrary paths for this input, an attacker could supply a path like `/etc` or `~/.ssh`, potentially leading to the unauthorized upload of sensitive system files or user credentials to the third-party Fuku.ai service. While the `SKILL.md` instructs the agent to use a folder 'inside the workspace', the `run.js` code does not enforce this constraint. There is no evidence of intentional malicious behavior such as backdoors, unrelated data exfiltration, or obfuscation.
Capability Assessment
Purpose & Capability
Name and description match the actual behavior: run.js scans a user-specified folder for resumes, uploads them to the documented Fuku.ai endpoints, and triggers the interview job. Required capabilities (network access, ability to read workspace files) are appropriate for the task and no unrelated credentials or binaries are requested.
Instruction Scope
Runtime instructions and the script stay within the stated scope (collect inputs, read resumes from the given folder, upload to Fuku.ai, create job, store minimal audit record). Important privacy-related behavior is present and declared: resumes (potential PII) are uploaded to a third-party service. The SKILL.md explicitly warns about this; users should confirm they have permission to upload those resumes.
Install Mechanism
There is no automated installer; the SKILL.md instructs the user to run `npm install` which pulls well-known packages (axios, form-data) from npm. No downloads from arbitrary URLs or archive extraction occur. This is proportionate to the script's needs.
Credentials
The skill requests no environment variables or credentials; it uses a small set of hardcoded, shared anonymous identifiers and endpoints as documented in SKILL.md. Those hardcoded headers/uid align with the described public/anonymous usage model.
Persistence & Privilege
The skill does not request elevated or global privileges and is not always-on. It writes minimal audit JSON files into its own `jobs` directory under the skill, which matches the declared behavior. It does not modify other skills or system-wide config.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ai-interview
  3. After installation, invoke the skill by name or use /ai-interview
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
Clarify Fuku.ai-specific design: free public service, shared anonymous credentials, no user auth required
v1.0.1
Fix transparency: removed env var support, documented hardcoded endpoints/credentials, reduced URL logging
v1.0.0
Initial release - batch resume upload and AI interview job creation
Metadata
Slug ai-interview
Version 1.0.2
License
All-time Installs 1
Active Installs 1
Total Versions 3
Frequently Asked Questions

What is AI Interview?

Run AI-powered mock interviews using Fuku.ai's free public service. It is an AI Agent Skill for Claude Code / OpenClaw, with 441 downloads so far.

How do I install AI Interview?

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

Is AI Interview free?

Yes, AI Interview is completely free (open-source). You can download, install and use it at no cost.

Which platforms does AI Interview support?

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

Who created AI Interview?

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

💬 Comments