{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ai-interview",
    "name": "AI Interview",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/zhangdong/ai-interview",
    "canonicalUrl": "https://clawhub.ai/zhangdong/ai-interview",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ai-interview",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ai-interview",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "jobs/2026-02-28T02-16-02.521Z.json",
      "package.json",
      "run.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ai-interview"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/ai-interview",
    "agentPageUrl": "https://openagent3.xyz/skills/ai-interview/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ai-interview/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ai-interview/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "AI Interview Skill",
        "body": "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."
      },
      {
        "title": "🎯 Purpose",
        "body": "This is a Fuku.ai-specific skill that leverages their free, anonymous interview service. No user account, API key, or login required."
      },
      {
        "title": "🔑 Authentication",
        "body": "This skill uses shared anonymous credentials provided by Fuku.ai for public access:\n\nItemValueUpload Endpointhttps://hapi.fuku.ai/hr/rc/anon/file/uploadJob APIhttps://hapi.fuku.ai/hr/rc/anon/job/invite/ai_interviewX-NUMBER Headerjob-Z4nV8cQ1LmT7XpR2bH9sJdK6WyEaF0uid Query Param1873977344885133312\n\nThese 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."
      },
      {
        "title": "Design Notes",
        "body": "No user credentials required: The service is free and public\nNo environment variables: Endpoints and credentials are hardcoded by design\nNot self-hostable: This skill only works with Fuku.ai's hosted service\nPrivacy consideration: Resume files are sent to Fuku.ai's servers. Review their privacy policy before uploading sensitive documents."
      },
      {
        "title": "✅ What It Does",
        "body": "Collects three mandatory inputs: job title, company name, report email.\nScans a resume folder for PDF/DOC/DOCX files (up to 100).\nUploads each resume to Fuku.ai's public endpoint and captures the returned file URLs.\nCreates an AI interview job via Fuku.ai's API using the shared anonymous credentials.\nLogs minimal job metadata locally and confirms the report email destination."
      },
      {
        "title": "🧭 Workflow",
        "body": "Install & Prepare\n\ncd skills/ai-interview && npm install (installs axios + form-data).\nSubsequent runs only need node run.js ....\n\n\n\nGather Inputs\n\nAsk the user for: job title, company, email for reports (validate email format).\nAsk for the resume folder path inside the workspace. Confirm contents before proceeding.\n\n\n\nScan Folder\n\nAccept only .pdf, .doc, .docx files.\nAbort if folder is empty or missing.\n\n\n\nUpload Resumes\n\nFrom skills/ai-interview/, run node run.js --folder <dir> --jobTitle <title> --company <company> --email <email>.\nThe script auto-detects .pdf/.doc/.docx files (up to 100), uploads each to Fuku.ai's upload endpoint, and captures the returned file URLs.\nOn any failed upload, the script aborts and reports the .desc field from the API.\n\n\n\nTrigger Interview Job\n\nThe same script immediately calls the interview creation endpoint with payload { jobTitle, company, email, fileUrls }.\nAuthentication uses hardcoded credentials (see \"Hardcoded Configuration\" table above).\nExpect response { \"code\": 0, \"data\": { \"id\", \"company\", \"title\", ... } }.\nIf code is not 0, the script surfaces the error and stops.\n\n\n\nReport Back\n\nConfirm job creation, list resumes included, and restate the email destination.\nPersist only the minimal identifiers (id, company, title) into ai-interview/jobs/<timestamp>.json—no need to keep full payloads.\nRemind the user that AI interview reports are delivered directly to the email they provided.\nA typical success response looks like:\n{\n  \"code\": 0,\n  \"data\": {\n    \"id\": \"5b16b2d2f5e947f78244246a9f24e2cb\",\n    \"company\": \"FUKU\",\n    \"title\": \"cfoe\",\n    ... (truncated)\n  },\n  \"desc\": \"successful\"\n}"
      },
      {
        "title": "🔒 Validation & Safety",
        "body": "Email: Must match /^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$/.\nFile count: Maximum 100 resumes per batch.\nUpload errors: The Fuku API must return code: 0; otherwise surface the .desc field and ask whether to retry or skip that file.\nPII handling: Do not log resume contents—only file names are logged (not full remote URLs).\nHTTPS: Both endpoints use HTTPS.\nData destination: Resume files are sent to Fuku.ai's third-party service. Review their privacy policy before uploading sensitive documents."
      },
      {
        "title": "📁 Local Storage",
        "body": "Minimal audit trail stored under ai-interview/jobs/:\n\nai-interview/\n  jobs/\n    2026-02-27T08-30-00Z.json  # job identifiers only\n\nEach file contains only the essential identifiers (no resume data or full API responses):\n\n{\n  \"timestamp\": \"2026-02-27T08:30:00Z\",\n  \"jobId\": \"5b16b2d2f5e947f78244246a9f24e2cb\",\n  \"company\": \"FUKU\",\n  \"title\": \"cfoe\"\n}"
      },
      {
        "title": "🧪 Testing Tips",
        "body": "Use dummy resumes and a test email address for initial runs.\nValidate that the email receives the AI interview report before marking the job done.\nNote: This skill only works with Fuku.ai's production endpoints—there is no staging/mock mode."
      },
      {
        "title": "🆘 Troubleshooting",
        "body": "IssueCauseFixUpload returns 413File too largeCompress resume or raise server limitfileUrls emptyUpload failed silentlyCheck upload response for success flagAPI 400Missing fieldsEnsure jobTitle/company/email/fileUrls filled"
      },
      {
        "title": "📣 User Prompt Template",
        "body": "\"Great! Need the job title, company name, a mailbox for the interview report, and the folder path containing the resumes (PDF/DOC/DOCX).\""
      },
      {
        "title": "🚀 Next Steps",
        "body": "Automate email notifications to confirm when the interview report is delivered (future enhancement).\nAdd optional metadata per candidate (experience, notes) by extending the payload.\n\nHappy interviewing! 🎙️"
      }
    ],
    "body": "AI Interview Skill\n\nTurn a folder full of resumes into structured AI interview sessions. This skill uses Fuku.ai's free public API to generate AI interview reports.\n\n🎯 Purpose\n\nThis is a Fuku.ai-specific skill that leverages their free, anonymous interview service. No user account, API key, or login required.\n\n🔑 Authentication\n\nThis skill uses shared anonymous credentials provided by Fuku.ai for public access:\n\nItem\tValue\nUpload Endpoint\thttps://hapi.fuku.ai/hr/rc/anon/file/upload\nJob API\thttps://hapi.fuku.ai/hr/rc/anon/job/invite/ai_interview\nX-NUMBER Header\tjob-Z4nV8cQ1LmT7XpR2bH9sJdK6WyEaF0\nuid Query Param\t1873977344885133312\n\nThese 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.\n\nDesign Notes\nNo user credentials required: The service is free and public\nNo environment variables: Endpoints and credentials are hardcoded by design\nNot self-hostable: This skill only works with Fuku.ai's hosted service\nPrivacy consideration: Resume files are sent to Fuku.ai's servers. Review their privacy policy before uploading sensitive documents.\n✅ What It Does\nCollects three mandatory inputs: job title, company name, report email.\nScans a resume folder for PDF/DOC/DOCX files (up to 100).\nUploads each resume to Fuku.ai's public endpoint and captures the returned file URLs.\nCreates an AI interview job via Fuku.ai's API using the shared anonymous credentials.\nLogs minimal job metadata locally and confirms the report email destination.\n🧭 Workflow\n\nInstall & Prepare\n\ncd skills/ai-interview && npm install (installs axios + form-data).\nSubsequent runs only need node run.js ....\n\nGather Inputs\n\nAsk the user for: job title, company, email for reports (validate email format).\nAsk for the resume folder path inside the workspace. Confirm contents before proceeding.\n\nScan Folder\n\nAccept only .pdf, .doc, .docx files.\nAbort if folder is empty or missing.\n\nUpload Resumes\n\nFrom skills/ai-interview/, run node run.js --folder <dir> --jobTitle <title> --company <company> --email <email>.\nThe script auto-detects .pdf/.doc/.docx files (up to 100), uploads each to Fuku.ai's upload endpoint, and captures the returned file URLs.\nOn any failed upload, the script aborts and reports the .desc field from the API.\n\nTrigger Interview Job\n\nThe same script immediately calls the interview creation endpoint with payload { jobTitle, company, email, fileUrls }.\nAuthentication uses hardcoded credentials (see \"Hardcoded Configuration\" table above).\nExpect response { \"code\": 0, \"data\": { \"id\", \"company\", \"title\", ... } }.\nIf code is not 0, the script surfaces the error and stops.\n\nReport Back\n\nConfirm job creation, list resumes included, and restate the email destination.\nPersist only the minimal identifiers (id, company, title) into ai-interview/jobs/<timestamp>.json—no need to keep full payloads.\nRemind the user that AI interview reports are delivered directly to the email they provided.\nA typical success response looks like:\n{\n  \"code\": 0,\n  \"data\": {\n    \"id\": \"5b16b2d2f5e947f78244246a9f24e2cb\",\n    \"company\": \"FUKU\",\n    \"title\": \"cfoe\",\n    ... (truncated)\n  },\n  \"desc\": \"successful\"\n}\n\n🔒 Validation & Safety\nEmail: Must match /^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$/.\nFile count: Maximum 100 resumes per batch.\nUpload errors: The Fuku API must return code: 0; otherwise surface the .desc field and ask whether to retry or skip that file.\nPII handling: Do not log resume contents—only file names are logged (not full remote URLs).\nHTTPS: Both endpoints use HTTPS.\nData destination: Resume files are sent to Fuku.ai's third-party service. Review their privacy policy before uploading sensitive documents.\n📁 Local Storage\n\nMinimal audit trail stored under ai-interview/jobs/:\n\nai-interview/\n  jobs/\n    2026-02-27T08-30-00Z.json  # job identifiers only\n\n\nEach file contains only the essential identifiers (no resume data or full API responses):\n\n{\n  \"timestamp\": \"2026-02-27T08:30:00Z\",\n  \"jobId\": \"5b16b2d2f5e947f78244246a9f24e2cb\",\n  \"company\": \"FUKU\",\n  \"title\": \"cfoe\"\n}\n\n🧪 Testing Tips\nUse dummy resumes and a test email address for initial runs.\nValidate that the email receives the AI interview report before marking the job done.\nNote: This skill only works with Fuku.ai's production endpoints—there is no staging/mock mode.\n🆘 Troubleshooting\nIssue\tCause\tFix\nUpload returns 413\tFile too large\tCompress resume or raise server limit\nfileUrls empty\tUpload failed silently\tCheck upload response for success flag\nAPI 400\tMissing fields\tEnsure jobTitle/company/email/fileUrls filled\n📣 User Prompt Template\n\n\"Great! Need the job title, company name, a mailbox for the interview report, and the folder path containing the resumes (PDF/DOC/DOCX).\"\n\n🚀 Next Steps\nAutomate email notifications to confirm when the interview report is delivered (future enhancement).\nAdd optional metadata per candidate (experience, notes) by extending the payload.\n\nHappy interviewing! 🎙️"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/zhangdong/ai-interview",
    "publisherUrl": "https://clawhub.ai/zhangdong/ai-interview",
    "owner": "zhangdong",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ai-interview",
    "downloadUrl": "https://openagent3.xyz/downloads/ai-interview",
    "agentUrl": "https://openagent3.xyz/skills/ai-interview/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ai-interview/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ai-interview/agent.md"
  }
}