> For the complete documentation index, see [llms.txt](https://api-docs.roundhr.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-docs.roundhr.com/round-api/api-reference/candidates/memos.md).

# 지원자 메모

## 메모 목록 조회

<mark style="color:green;">`GET`</mark> `https://api.roundhr.com/v1/candidates/{candidate_code}/memos`

지원자의 메모 목록을 반환합니다.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Path Parameters**

| Name            | Type   | 필수         | Description |
| --------------- | ------ | ---------- | ----------- |
| candidate\_code | string | `required` | 지원자 고유 코드   |

**응답 예제**

{% tabs %}
{% tab title="200" %}

```json
{
   "collection": [
      {
         "id": 123,
         "parent_id": null,
         "content": "1차 면접 통과, 기술 역량 우수함",
         "accessible_role": "job_manager",
         "file_url": null,
         "mentions": ["user_code_123"],
         "pinned": true,
         "fixed_at": "2024-09-02T18:56:37+09:00",
         "created_at": "2024-09-02T18:56:37+09:00",
         "updated_at": "2024-09-02T18:56:37+09:00",
         "user": {
            "code": "code_user123",
            "name": "김채용",
            "email": "recruiter@company.com"
         },
         "replies": [
            {
               "id": 124,
               "parent_id": 123,
               "content": "동의합니다. 2차 면접 진행하죠.",
               "accessible_role": "job_manager",
               "file_url": null,
               "mentions": [],
               "pinned": false,
               "fixed_at": null,
               "created_at": "2024-09-03T10:30:00+09:00",
               "updated_at": "2024-09-03T10:30:00+09:00",
               "user": {
                  "code": "code_user456",
                  "name": "이면접",
                  "email": "interviewer@company.com"
               }
            }
         ]
      }
   ]
}
```

{% endtab %}
{% endtabs %}

***

## 메모 상세 조회

<mark style="color:green;">`GET`</mark> `https://api.roundhr.com/v1/candidates/{candidate_code}/memos/{id}`

메모 상세 정보를 반환합니다.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Path Parameters**

| Name            | Type    | 필수         | Description |
| --------------- | ------- | ---------- | ----------- |
| candidate\_code | string  | `required` | 지원자 고유 코드   |
| id              | integer | `required` | 메모 ID       |

**응답 예제**

{% tabs %}
{% tab title="200" %}

```json
{
   "resource": {
      "id": 123,
      "parent_id": null,
      "content": "1차 면접 통과, 기술 역량 우수함",
      "accessible_role": "job_manager",
      "file_url": null,
      "mentions": ["user_code_123"],
      "pinned": true,
      "fixed_at": "2024-09-02T18:56:37+09:00",
      "created_at": "2024-09-02T18:56:37+09:00",
      "updated_at": "2024-09-02T18:56:37+09:00",
      "user": {
         "code": "code_user123",
         "name": "김채용",
         "email": "recruiter@company.com"
      }
   }
}
```

{% endtab %}

{% tab title="404" %}

```json
{
   "error": "not_found",
   "message": "Resource not found"
}
```

{% endtab %}
{% endtabs %}

***

## 메모 생성

<mark style="color:yellow;">`POST`</mark> `https://api.roundhr.com/v1/candidates/{candidate_code}/memos`

새로운 메모를 생성합니다.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Path Parameters**

| Name            | Type   | 필수         | Description |
| --------------- | ------ | ---------- | ----------- |
| candidate\_code | string | `required` | 지원자 고유 코드   |

**Body Parameters**

| Name             | Type    | 필수         | Description                              |
| ---------------- | ------- | ---------- | ---------------------------------------- |
| content          | string  | `required` | 메모 내용                                    |
| parent\_id       | integer | `optional` | 부모 메모 ID (대댓글인 경우)                       |
| file\_url        | string  | `optional` | 첨부 파일 URL                                |
| accessible\_role | string  | `optional` | 열람 권한 (job\_admin, job\_manager, member) |
| mentions         | array   | `optional` | 멘션할 사용자 코드 배열                            |

**요청 예제**

```json
{
   "content": "1차 면접 통과, 기술 역량 우수함",
   "accessible_role": "job_manager",
   "mentions": ["user_code_123"]
}
```

**응답 예제**

{% tabs %}
{% tab title="200" %}

```json
{
   "resource": {
      "id": 123,
      "parent_id": null,
      "content": "1차 면접 통과, 기술 역량 우수함",
      "accessible_role": "job_manager",
      "file_url": null,
      "mentions": ["user_code_123"],
      "pinned": false,
      "fixed_at": null,
      "created_at": "2024-09-02T18:56:37+09:00",
      "updated_at": "2024-09-02T18:56:37+09:00",
      "user": {
         "code": "code_user123",
         "name": "김채용",
         "email": "recruiter@company.com"
      }
   }
}
```

{% endtab %}
{% endtabs %}

***

## 메모 수정

<mark style="color:orange;">`PATCH`</mark> `https://api.roundhr.com/v1/candidates/{candidate_code}/memos/{id}`

기존 메모를 수정합니다.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Path Parameters**

| Name            | Type    | 필수         | Description |
| --------------- | ------- | ---------- | ----------- |
| candidate\_code | string  | `required` | 지원자 고유 코드   |
| id              | integer | `required` | 메모 ID       |

**Body Parameters**

| Name             | Type   | 필수         | Description                              |
| ---------------- | ------ | ---------- | ---------------------------------------- |
| content          | string | `optional` | 메모 내용                                    |
| file\_url        | string | `optional` | 첨부 파일 URL                                |
| accessible\_role | string | `optional` | 열람 권한 (job\_admin, job\_manager, member) |
| mentions         | array  | `optional` | 멘션할 사용자 코드 배열                            |

**요청 예제**

```json
{
   "content": "1차 면접 통과, 기술 역량 매우 우수함. 2차 면접 권유"
}
```

**응답 예제**

{% tabs %}
{% tab title="200" %}

```json
{
   "resource": {
      "id": 123,
      "parent_id": null,
      "content": "1차 면접 통과, 기술 역량 매우 우수함. 2차 면접 권유",
      "accessible_role": "job_manager",
      "file_url": null,
      "mentions": ["user_code_123"],
      "pinned": false,
      "fixed_at": null,
      "created_at": "2024-09-02T18:56:37+09:00",
      "updated_at": "2024-09-02T19:30:00+09:00",
      "user": {
         "code": "code_user123",
         "name": "김채용",
         "email": "recruiter@company.com"
      }
   }
}
```

{% endtab %}
{% endtabs %}

***

## 메모 삭제

<mark style="color:red;">`DELETE`</mark> `https://api.roundhr.com/v1/candidates/{candidate_code}/memos/{id}`

메모를 삭제합니다.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Path Parameters**

| Name            | Type    | 필수         | Description |
| --------------- | ------- | ---------- | ----------- |
| candidate\_code | string  | `required` | 지원자 고유 코드   |
| id              | integer | `required` | 메모 ID       |

**응답 예제**

{% tabs %}
{% tab title="200" %}

```json
{
   "resource": {
      "id": 123,
      "parent_id": null,
      "content": "1차 면접 통과, 기술 역량 우수함",
      "accessible_role": "job_manager",
      "file_url": null,
      "mentions": [],
      "pinned": false,
      "fixed_at": null,
      "created_at": "2024-09-02T18:56:37+09:00",
      "updated_at": "2024-09-02T18:56:37+09:00"
   }
}
```

{% endtab %}
{% endtabs %}

***

## 메모 고정/해제

<mark style="color:yellow;">`POST`</mark> `https://api.roundhr.com/v1/candidates/{candidate_code}/memos/{id}/pin`

메모를 상단에 고정하거나 고정을 해제합니다. 이미 고정된 메모는 해제되고, 고정되지 않은 메모는 고정됩니다.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Path Parameters**

| Name            | Type    | 필수         | Description |
| --------------- | ------- | ---------- | ----------- |
| candidate\_code | string  | `required` | 지원자 고유 코드   |
| id              | integer | `required` | 메모 ID       |

**응답 예제**

{% tabs %}
{% tab title="200 - 고정됨" %}

```json
{
   "resource": {
      "id": 123,
      "parent_id": null,
      "content": "중요한 메모입니다",
      "accessible_role": "job_manager",
      "file_url": null,
      "mentions": [],
      "pinned": true,
      "fixed_at": "2024-09-02T18:56:37+09:00",
      "created_at": "2024-09-02T18:56:37+09:00",
      "updated_at": "2024-09-02T18:56:37+09:00",
      "user": {
         "code": "code_user123",
         "name": "김채용",
         "email": "recruiter@company.com"
      }
   }
}
```

{% endtab %}

{% tab title="200 - 고정 해제됨" %}

```json
{
   "resource": {
      "id": 123,
      "parent_id": null,
      "content": "중요한 메모입니다",
      "accessible_role": "job_manager",
      "file_url": null,
      "mentions": [],
      "pinned": false,
      "fixed_at": null,
      "created_at": "2024-09-02T18:56:37+09:00",
      "updated_at": "2024-09-02T18:56:37+09:00",
      "user": {
         "code": "code_user123",
         "name": "김채용",
         "email": "recruiter@company.com"
      }
   }
}
```

{% endtab %}
{% endtabs %}

***

## 응답 필드 설명

| Field            | Type    | Description                              |
| ---------------- | ------- | ---------------------------------------- |
| id               | integer | 메모 고유 ID                                 |
| parent\_id       | integer | 부모 메모 ID (대댓글인 경우)                       |
| content          | string  | 메모 내용                                    |
| accessible\_role | string  | 열람 권한 (job\_admin, job\_manager, member) |
| file\_url        | string  | 첨부 파일 URL                                |
| mentions         | array   | 멘션된 사용자 코드 배열                            |
| pinned           | boolean | 고정 여부                                    |
| fixed\_at        | string  | 고정 일시 (고정되지 않은 경우 null)                  |
| created\_at      | string  | 생성 일시                                    |
| updated\_at      | string  | 수정 일시                                    |
| user             | object  | 작성자 정보                                   |
| replies          | array   | 대댓글 목록 (목록 조회 시)                         |

**accessible\_role 값**

| Value        | Description     |
| ------------ | --------------- |
| job\_admin   | 공고 관리자만 열람 가능   |
| job\_manager | 공고 매니저 이상 열람 가능 |
| member       | 모든 멤버 열람 가능     |
