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
- Collects three mandatory inputs: job title, company name, report email.
- Scans a resume folder for PDF/DOC/DOCX files (up to 100).
- Uploads each resume to Fuku.ai's public endpoint and captures the returned file URLs.
- Creates an AI interview job via Fuku.ai's API using the shared anonymous credentials.
- Logs minimal job metadata locally and confirms the report email destination.
🧭 Workflow
-
Install & Prepare
cd skills/ai-interview && npm install(installsaxios+form-data).- Subsequent runs only need
node run.js ....
-
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.
- Ask the user for:
-
Scan Folder
- Accept only
.pdf,.doc,.docxfiles. - Abort if folder is empty or missing.
- Accept only
-
Upload Resumes
- From
skills/ai-interview/, runnode run.js --folder <dir> --jobTitle <title> --company <company> --email <email>. - The script auto-detects
.pdf/.doc/.docxfiles (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
.descfield from the API.
- From
-
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
codeis not 0, the script surfaces the error and stops.
- The same script immediately calls the interview creation endpoint with payload
-
Report Back
- Confirm job creation, list resumes included, and restate the email destination.
- Persist only the minimal identifiers (
id,company,title) intoai-interview/jobs/<timestamp>.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.descfield 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! 🎙️