Admin API모집·랭킹 에이전트 API
GET /ai/admin/recruit-agent/campaign/{collabNo}/rankings
후보 결과(랭킹) 조회
후보 결과 (랭킹) 조회
ranking_score(= match_score) 내림차순 후보 리스트를 반환합니다.
HTTP 요청
GET /ai/admin/recruit-agent/campaign/{collabNo}/rankings?topK=20
Authorization: Bearer {access_token}Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
topK | Integer | 아니오 | 상위 N개로 제한. 생략 시 전체 반환. 반환 상한 = 실제 저장된 후보 수 |
응답 (200 OK)
{
"status": 200,
"code": null,
"message": "랭킹 조회 완료",
"data": {
"campaign_id": 1546,
"count": 20,
"group_counts": { "applicants": 0, "recommended": 0, "discovery": 0 },
"rankings": [
{
"rank": 1,
"username": "bbumi0",
"account_id": "3026703111",
"ranking_score": 0.6295,
"account_link": "https://www.instagram.com/bbumi0/",
"follower_count": 37535,
"category_tags": ["BEAUTY"],
"created_at": "2026-06-30T04:00:00",
"score_detail": {
"match_score": 0.6295,
"fit_score": 0.85,
"fit_reason": "육아·건강 콘텐츠를 다루며...",
"strengths": ["구강 건강 제품 리뷰 경험"],
"concerns": ["팔로워 규모가 작아 도달 제한적"],
"source": "existing_pool"
}
}
]
}
}필드 의미
| 필드 | 의미 |
|---|---|
rank | 순위(1부터) |
username / account_link | 인스타 계정 / 프로필 링크 |
ranking_score | 정렬 기준 점수(= match_score, 0~1) |
follower_count | 팔로워 수 |
category_tags | 카테고리 라벨 |
score_detail.match_score | 적합도(벡터 기반, 0~1) |
score_detail.fit_score | LLM 적합도(0~1) — 모집(/recruit) 경로에서만 채워짐 |
score_detail.fit_reason | 추천 사유(왜 적합한가) |
score_detail.strengths / concerns | 강점 / 우려 리스트 |
score_detail.source | 출처 — existing_pool / new_discovery |
현재 구현 주의 (프론트 처리 필요):
match_score·fit_score·fit_reason등은score_detail안에만 있습니다(최상위 필드 아님).group_counts와 항목별display_group은 현재 채워지지 않습니다(전부0/없음). 신청자/추천/발굴 그룹 탭이 필요하면 에이전트(Python) 측 보강이 선행돼야 합니다.account_link·follower_count는 발굴 풀(creator_queue) 조인값이라 가입자/기존풀 후보는null일 수 있습니다.- 재랭킹(
/rank) 경로로 저장된 행은score_detail에 LLMfit_score·fit_reason이 없습니다(정량 지표만).