Skip to main content

Get Resume Detail

Fetches detailed information about a specific resume, including complete analysis history with all scores and suggestions, parsed text content, and associated interview sessions.

Endpoint

GET /api/resumes/{id}/detail

Authentication

This endpoint requires authentication. Include your authentication token in the request headers.

Path Parameters

id
long
required
The unique identifier of the resume to retrieve

Response

code
integer
Status code. 200 indicates success.
message
string
Response message
data
object
Detailed resume information

Examples

curl -X GET https://api.example.com/api/resumes/12345/detail \
  -H "Authorization: Bearer YOUR_TOKEN"

Response Example

Success Response

{
  "code": 200,
  "message": "success",
  "data": {
    "id": 12345,
    "filename": "john_doe_resume.pdf",
    "fileSize": 245680,
    "contentType": "application/pdf",
    "storageUrl": "https://storage.example.com/resumes/2026/03/10/abc123.pdf",
    "uploadedAt": "2026-03-10T14:30:00",
    "accessCount": 5,
    "resumeText": "John Doe\nSenior Software Engineer\n\nEXPERIENCE\nTech Corp (2020-Present)\n- Led development of microservices architecture...\n\nSKILLS\nJava, Spring Boot, Docker, Kubernetes...",
    "analyzeStatus": "COMPLETED",
    "analyzeError": null,
    "analyses": [
      {
        "id": 567,
        "overallScore": 85,
        "contentScore": 88,
        "structureScore": 82,
        "skillMatchScore": 87,
        "expressionScore": 84,
        "projectScore": 86,
        "summary": "这是一份优秀的简历,展现了丰富的全栈开发经验和扎实的技术能力。候选人在项目描述中展示了清晰的技术架构思维和问题解决能力。",
        "analyzedAt": "2026-03-10T14:31:25",
        "strengths": [
          "丰富的微服务架构经验,包含完整的设计和实施案例",
          "清晰的项目成果量化展示,如性能提升30%",
          "技术栈覆盖广泛,涵盖后端、容器化、CI/CD等",
          "表达简洁专业,条理清晰"
        ],
        "suggestions": [
          {
            "category": "内容优化",
            "description": "建议增加具体的业务影响数据,如用户增长、成本节约等"
          },
          {
            "category": "结构改进",
            "description": "可以考虑添加技术亮点或创新点的专门章节"
          },
          {
            "category": "技能展示",
            "description": "建议补充云平台相关经验(AWS/Azure/GCP)"
          }
        ]
      }
    ],
    "interviews": [
      {
        "sessionId": "interview_abc123",
        "createdAt": "2026-03-10T15:00:00",
        "status": "COMPLETED",
        "questionCount": 5
      },
      {
        "sessionId": "interview_xyz789",
        "createdAt": "2026-03-09T10:30:00",
        "status": "COMPLETED",
        "questionCount": 3
      }
    ]
  }
}

Response with Analysis Pending

{
  "code": 200,
  "message": "success",
  "data": {
    "id": 12346,
    "filename": "new_resume.pdf",
    "fileSize": 189234,
    "contentType": "application/pdf",
    "storageUrl": "https://storage.example.com/resumes/2026/03/10/def456.pdf",
    "uploadedAt": "2026-03-10T16:00:00",
    "accessCount": 1,
    "resumeText": "Jane Smith\nProduct Manager\n...",
    "analyzeStatus": "PENDING",
    "analyzeError": null,
    "analyses": [],
    "interviews": []
  }
}

Response with Analysis Failed

{
  "code": 200,
  "message": "success",
  "data": {
    "id": 12347,
    "filename": "corrupted_resume.pdf",
    "fileSize": 98765,
    "contentType": "application/pdf",
    "storageUrl": "https://storage.example.com/resumes/2026/03/10/ghi789.pdf",
    "uploadedAt": "2026-03-10T17:00:00",
    "accessCount": 2,
    "resumeText": "...",
    "analyzeStatus": "FAILED",
    "analyzeError": "AI服务响应超时,请稍后重试",
    "analyses": [],
    "interviews": []
  }
}

Understanding Analysis Scores

Weighted average of all individual scores, representing the overall resume quality:
  • 90-100: Exceptional - Ready for senior positions
  • 80-89: Excellent - Competitive for most roles
  • 70-79: Good - Solid foundation with room for improvement
  • 60-69: Average - Several areas need enhancement
  • Below 60: Needs significant revision
Evaluates the quality and relevance of resume content:
  • Relevance of work experience
  • Quality of project descriptions
  • Clarity of achievements
  • Professional accomplishments
Assesses the organization and formatting:
  • Logical section arrangement
  • Consistent formatting
  • Visual hierarchy
  • Readability and white space usage
Measures skill relevance and keyword optimization:
  • Technical skills coverage
  • Industry-relevant keywords
  • Tool and technology mentions
  • Certifications and qualifications
Evaluates language quality and communication:
  • Grammar and spelling
  • Professional tone
  • Concise expression
  • Action verb usage
Assesses the quality of project experience descriptions:
  • Project complexity and scale
  • Role and responsibilities clarity
  • Measurable outcomes
  • Technical challenges addressed

Error Responses

Error Codes
object

Error Response Example

{
  "code": 2001,
  "message": "简历不存在",
  "data": null
}

Use Cases

  1. Resume Review: Display comprehensive analysis results to users
  2. Progress Tracking: Check if asynchronous analysis has completed
  3. History Viewing: Show analysis evolution over time if resume was re-analyzed
  4. Interview Preparation: Access full resume content and analysis before mock interviews
  5. Export Preparation: Gather data before generating PDF reports

Polling for Analysis Completion

When a resume is uploaded, analysis runs asynchronously. Implement polling to check completion:
async function pollForAnalysis(resumeId) {
  const maxAttempts = 30;
  const interval = 2000; // 2 seconds
  
  for (let i = 0; i < maxAttempts; i++) {
    const response = await fetch(`/api/resumes/${resumeId}/detail`);
    const data = await response.json();
    
    if (data.data.analyzeStatus === 'COMPLETED') {
      return data.data;
    }
    
    if (data.data.analyzeStatus === 'FAILED') {
      throw new Error(data.data.analyzeError);
    }
    
    await new Promise(resolve => setTimeout(resolve, interval));
  }
  
  throw new Error('Analysis timeout');
}

Build docs developers (and LLMs) love