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 (installs axios + 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.
Scan Folder
- Accept only
.pdf, .doc, .docx files.
- Abort if folder is empty or missing.
Upload Resumes
- From
skills/ai-interview/, run node run.js --folder <dir> --jobTitle <title> --company <company> --email <email>.
- 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.
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.
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/<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 .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! 🎙️
1---2name: ai-interview3description: Run AI-powered mock interviews using Fuku.ai's free public service.4---56# AI Interview Skill78Turn a folder full of resumes into structured AI interview sessions. This skill uses **Fuku.ai's free public API** to generate AI interview reports.910## 🎯 Purpose1112This is a **Fuku.ai-specific skill** that leverages their free, anonymous interview service. No user account, API key, or login required.1314## 🔑 Authentication1516This skill uses **shared anonymous credentials** provided by Fuku.ai for public access:1718| Item | Value |19|------|-------|20| **Upload Endpoint** | `https://hapi.fuku.ai/hr/rc/anon/file/upload` |21| **Job API** | `https://hapi.fuku.ai/hr/rc/anon/job/invite/ai_interview` |22| **X-NUMBER Header** | `job-Z4nV8cQ1LmT7XpR2bH9sJdK6WyEaF0` |23| **uid Query Param** | `1873977344885133312` |2425These 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.2627### Design Notes2829- **No user credentials required**: The service is free and public30- **No environment variables**: Endpoints and credentials are hardcoded by design31- **Not self-hostable**: This skill only works with Fuku.ai's hosted service32- **Privacy consideration**: Resume files are sent to Fuku.ai's servers. Review their privacy policy before uploading sensitive documents.3334## ✅ What It Does35361. Collects three mandatory inputs: **job title**, **company name**, **report email**.372. Scans a resume folder for PDF/DOC/DOCX files (up to 100).383. Uploads each resume to Fuku.ai's public endpoint and captures the returned file URLs.394. Creates an AI interview job via Fuku.ai's API using the shared anonymous credentials.405. Logs minimal job metadata locally and confirms the report email destination.4142## 🧭 Workflow43440. **Install & Prepare**45 - `cd skills/ai-interview && npm install` (installs `axios` + `form-data`).46 - Subsequent runs only need `node run.js ...`.47481. **Gather Inputs**49 - Ask the user for: `job title`, `company`, `email for reports` (validate email format).50 - Ask for the **resume folder path** inside the workspace. Confirm contents before proceeding.51522. **Scan Folder**53 - Accept only `.pdf`, `.doc`, `.docx` files.54 - Abort if folder is empty or missing.55563. **Upload Resumes**57 - From `skills/ai-interview/`, run `node run.js --folder <dir> --jobTitle <title> --company <company> --email <email>`.58 - 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.59 - On any failed upload, the script aborts and reports the `.desc` field from the API.60614. **Trigger Interview Job**62 - The same script immediately calls the interview creation endpoint with payload `{ jobTitle, company, email, fileUrls }`.63 - Authentication uses hardcoded credentials (see "Hardcoded Configuration" table above).64 - Expect response `{ "code": 0, "data": { "id", "company", "title", ... } }`.65 - If `code` is not 0, the script surfaces the error and stops.66675. **Report Back**68 - Confirm job creation, list resumes included, and restate the email destination.69 - Persist only the minimal identifiers (`id`, `company`, `title`) into `ai-interview/jobs/<timestamp>.json`—no need to keep full payloads.70 - Remind the user that AI interview reports are delivered directly to the email they provided.71 - A typical success response looks like:72 ```json73 {74 "code": 0,75 "data": {76 "id": "5b16b2d2f5e947f78244246a9f24e2cb",77 "company": "FUKU",78 "title": "cfoe",79 ... (truncated)80 },81 "desc": "successful"82 }83 ```8485## 🔒 Validation & Safety8687- **Email**: Must match `/^[^@\s]+@[^@\s]+\.[^@\s]+$/`.88- **File count**: Maximum 100 resumes per batch.89- **Upload errors**: The Fuku API must return `code: 0`; otherwise surface the `.desc` field and ask whether to retry or skip that file.90- **PII handling**: Do not log resume contents—only file names are logged (not full remote URLs).91- **HTTPS**: Both endpoints use HTTPS.92- **Data destination**: Resume files are sent to Fuku.ai's third-party service. Review their privacy policy before uploading sensitive documents.9394## 📁 Local Storage9596Minimal audit trail stored under `ai-interview/jobs/`:9798```99ai-interview/100 jobs/101 2026-02-27T08-30-00Z.json # job identifiers only102```103104Each file contains only the essential identifiers (no resume data or full API responses):105106```json107{108 "timestamp": "2026-02-27T08:30:00Z",109 "jobId": "5b16b2d2f5e947f78244246a9f24e2cb",110 "company": "FUKU",111 "title": "cfoe"112}113```114115## 🧪 Testing Tips116117- Use dummy resumes and a test email address for initial runs.118- Validate that the email receives the AI interview report before marking the job done.119- Note: This skill only works with Fuku.ai's production endpoints—there is no staging/mock mode.120121## 🆘 Troubleshooting122123| Issue | Cause | Fix |124|-------|-------|-----|125| Upload returns 413 | File too large | Compress resume or raise server limit |126| `fileUrls` empty | Upload failed silently | Check upload response for `success` flag |127| API 400 | Missing fields | Ensure jobTitle/company/email/fileUrls filled |128129## 📣 User Prompt Template130131> "Great! Need the job title, company name, a mailbox for the interview report, and the folder path containing the resumes (PDF/DOC/DOCX)."132133## 🚀 Next Steps134135- Automate email notifications to confirm when the interview report is delivered (future enhancement).136- Add optional metadata per candidate (experience, notes) by extending the payload.137138Happy interviewing! 🎙️