AI Interview Copilot/User Guide/Agent API Guide

Agent API Guide

How to create an API Key, choose scopes, and call common endpoints.

Agent API Guide

Use the public API with Cursor, local scripts, or other agents. Create an API Key in the dashboard, then add it to the agent as an environment variable or secret.

Basics

Base URL: https://www.gankinterview.cn/api
Authorization: Bearer gank_sk_live_xxx
Content-Type: application/json

API Keys start with gank_sk_live_. The full key is shown only once after creation.

Public API rate limits follow the account plan: Free and Trial users get 60 requests/minute, Professional users get 120 requests/minute, and Ultimate users get 360 requests/minute. Usage-based endpoints, such as interview reviews, still check the matching plan entitlement.

Create an API Key

Create API Keys from Account Settings in the dashboard:

After login → user menu → Dashboard → Account Settings → API Key

Steps:

  1. Open the website and log in.
  2. Open Dashboard from the user menu.
  3. Go to Account Settings, then open API Key.
  4. Click Create Key.
  5. Enter a name, such as Cursor Agent or Local Sync Script.
  6. Select only the scopes this agent needs.
  7. Optionally set an expiration time.
  8. Click Create and Show Key.
  9. Copy the full gank_sk_live_... key from the dialog.

If you forget to copy the full key, create a new one and revoke the old one.

You can list and revoke existing keys on the same page.

Scopes

ScopeCapability
resumes:readRead resume list and details
interviews:readRead interview and exam records
interviews:writeUpload local interview or exam transcripts
interviews:analyzeGenerate interview reviews
recruitment:readRead application progress
recruitment:writeCreate or update application progress
questions:readSearch public question bank
questions:writeSave public questions to the user's question bank
campus:readRead campus postings and resources

Resume endpoints are read-only.

Common Calls

Resumes

curl "https://www.gankinterview.cn/api/v1/resumes?page=1&limit=20" \
  -H "Authorization: Bearer $GANK_API_KEY"
curl "https://www.gankinterview.cn/api/v1/resumes/<resume_id>" \
  -H "Authorization: Bearer $GANK_API_KEY"

Interview Records

curl "https://www.gankinterview.cn/api/v1/interviews?type=interview&page=1&limit=20" \
  -H "Authorization: Bearer $GANK_API_KEY"

Common query parameters:

ParameterDescription
typeinterview or exam
querySearch company, position, or transcript
pagePage number, default 1
limitPage size, default 20, max 100

Upload a local interview transcript:

curl -X POST "https://www.gankinterview.cn/api/v1/interviews" \
  -H "Authorization: Bearer $GANK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "interview",
    "startTime": "2026-07-03T10:00:00.000Z",
    "endTime": "2026-07-03T10:45:00.000Z",
    "company": "Example Inc.",
    "position": "Frontend Engineer",
    "round": "First round",
    "transcript": "Interviewer: Please introduce one project.\nCandidate: ..."
  }'

Fields:

FieldRequiredDescription
transcriptYesLocal interview or exam transcript
typeNointerview or exam, default interview
startTimeNoISO 8601 time; defaults to now
endTimeNoISO 8601 time; defaults to startTime
companyNoCompany name
positionNoPosition name
roundNoInterview round
parentIdNoOnly for type: "exam", links the exam to an interview

Generate an interview review:

curl -X POST "https://www.gankinterview.cn/api/v1/interviews/<record_id>/review" \
  -H "Authorization: Bearer $GANK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "includeRelatedExams": true,
    "language": "en",
    "techStack": "React, TypeScript, Next.js",
    "resumeText": "Resume summary...",
    "jobDescription": "Job description summary...",
    "reviewFocus": "Evaluate project explanation and follow-up answers"
  }'

Application Progress

List records:

curl "https://www.gankinterview.cn/api/v1/recruitment-progress?page=1&limit=20" \
  -H "Authorization: Bearer $GANK_API_KEY"

Create a record:

curl -X POST "https://www.gankinterview.cn/api/v1/recruitment-progress" \
  -H "Authorization: Bearer $GANK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "companyName": "Example Inc.",
    "positionText": "Frontend Engineer",
    "applyUrl": "https://example.com/jobs/123",
    "progressStage": "Applied",
    "progressStatus": "Waiting"
  }'

Update a record:

curl -X PATCH "https://www.gankinterview.cn/api/v1/recruitment-progress/<record_id>" \
  -H "Authorization: Bearer $GANK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "progressStage": "Interview",
    "progressStatus": "Scheduled"
  }'

Question Bank

Search public questions:

curl "https://www.gankinterview.cn/api/v1/question-bank/questions?q=React&pageSize=20" \
  -H "Authorization: Bearer $GANK_API_KEY"

Save a question:

curl -X POST "https://www.gankinterview.cn/api/v1/question-bank/questions/<question_id>/save" \
  -H "Authorization: Bearer $GANK_API_KEY"

Campus Postings and Resources

Search campus postings:

curl "https://www.gankinterview.cn/api/v1/campus?q=frontend&updatedAfter=2026-07-01T00:00:00.000Z&pageSize=20" \
  -H "Authorization: Bearer $GANK_API_KEY"

Common parameters: q, company, industry, type, target, location, updatedAfter, page, and pageSize. updatedAfter uses ISO 8601 time and returns postings updated at or after that time.

Get posting details:

curl "https://www.gankinterview.cn/api/v1/campus/<posting_id>" \
  -H "Authorization: Bearer $GANK_API_KEY"

Search campus resources:

curl "https://www.gankinterview.cn/api/v1/campus-resources?q=interview&pageSize=20" \
  -H "Authorization: Bearer $GANK_API_KEY"

Common Errors

StatusMeaning
401API Key is missing, invalid, expired, or revoked
403The key does not have the required scope
429Too many requests; retry later
404The requested record does not exist