Career Signals API — AI 기반 이력서 및 역할 적합성 분석 엔진
Source: Dev.to
내가 만든 것
Career Signals API는 이력서, 직무 설명, 후보자 프로필을 분석하여 구조화되고 설명 가능한 커리어 인사이트를 제공하는 프로덕션 수준의 공개 API입니다.
프로필 분석
- 스킬 폭·깊이 점수
- 5가지 차원의 리더십 점수 (people, technical, delivery, cross‑functional, mentorship)
- 커리어 위험 신호 (잦은 이직, 공백, 정체, 버즈워드 밀도)
- 내러티브 테마 (예: “Builder”, “Coach”, “Scaler”)
역할 적합도 분석
- 가중된 역할 적합도 점수 (0–100)
- 매치된 스킬과 누락된 스킬, 영향 수준 표시
- 시니어리티 및 도메인 정렬
- 레드/그린 플래그 + 실행 가능한 이력서 및 면접 추천
이력서 Bullet 생성
- 실제 경험에 기반한 Bullet (환각 없음)
- 직무 설명에 맞춤화
- 시니어리티에 따라 조정된 톤 (IC → Manager → Director → VP)
- UI 필터링을 위한 포커스‑태그 메타데이터
- 후보자가 자격 미달일 경우 불일치 경고
API는 깔끔하고 일관된 JSON 응답을 반환하므로 이력서 빌더, 구직 도구, HR 플랫폼, ATS 시스템 등에 바로 연결할 수 있습니다.
API 문서
Base URL
https://x8ki-letl-twmt.n7.xano.io/api:career_signals
Swagger / API Explorer
https://x8ki-letl-twmt.n7.xano.io/api:career_signals
GitHub Repository
https://github.com/Tawe/careersignals
인증
모든 엔드포인트는 Bearer 토큰이 필요합니다:
Authorization: Bearer <your-token>
테스트용으로는 JSON 본문에 테스트 키를 전달할 수도 있습니다:
{ "test_api_key": "test-key-123" }
속도 제한
- 분당 60 요청 (기본)
- 클라이언트별로 Xano 테이블을 통해 설정 가능
- 제한 초과 시
429반환
엔드포인트
POST /v1/analyze/profile
이력서/프로필 텍스트를 분석하고 스킬 점수, 리더십 신호, 위험 신호, 내러티브 테마를 반환합니다.
POST /v1/analyze/role-fit
프로필을 직무 설명과 비교하여 매치된/누락된 스킬, 레드/그린 플래그, 역할 적합도 점수를 출력합니다.
POST /v1/suggest/bullets
후보자의 실제 경험에 기반한 비환각 이력서 Bullet을 생성합니다.
모든 엔드포인트는 다음을 제공합니다:
- 스키마 검증된 JSON
- 환각 방지 보호장치
- 근거 기반 점수
- 일관된 응답 포맷
데모
마이크로사이트
데모 마이크로사이트는 다음을 지원합니다:
- 이력서 붙여넣기
- 직무 설명 붙여넣기
- 각 API 엔드포인트 호출
- 구조화된 JSON 응답 보기
스크린샷
API 호출 예시
프로필 분석
curl -X POST "https://x8ki-letl-twmt.n7.xano.io/api:career_signals/v1/analyze/profile" \
-H "Authorization: Bearer test-key-123" \
-H "Content-Type: application/json" \
-d '{
"profile_text": "Senior Software Engineer with 10+ years building scalable systems...",
"locale": "en-US",
"options": {"include_leadership_signals": true}
}'
역할 적합도
curl -X POST "https://x8ki-letl-twmt.n7.xano.io/api:career_signals/v1/analyze/role-fit" \
-H "Authorization: Bearer test-key-123" \
-H "Content-Type: application/json" \
-d '{
"profile_text": "Engineering Manager leading backend teams...",
"job_description": "Director of Engineering role...",
"locale": "en-US"
}'
Bullet 제안
curl -X POST "https://x8ki-letl-twmt.n7.xano.io/api:career_signals/v1/suggest/bullets" \
-H "Authorization: Bearer test-key-123" \
-H "Content-Type: application/json" \
-d '{
"profile_text": "...",
"job_description": "...",
"role_title": "Director of Engineering",
"max_bullets": 6
}'
내가 사용한 AI 프롬프트
프로필 분석 프롬프트 (발췌)
You are a career analysis engine. Analyze resumes and career profiles to extract structured career signals. Always respond with valid JSON only, no prose outside JSON.
LEADERSHIP SCORING (REQUIRED when include_leadership_signals is true): Output a leadership_evidence object with these EXACT fields (all integers 0–100):
- people_leadership_score
- technical_leadership_score
- delivery_ownership_score
- cross_functional_collab_score
- mentorship_coaching_score
- explanation (string with evidence citations)
SCORING RULES:
- Only assign scores above 50 when the profile explicitly shows leadership responsibilities such as: managing people or teams (with team sizes), mentoring, owning delivery of major programs, leading architecture decisions, incident response leadership, or acting as EM/Tech Lead.
- Weak or buzzword‑only evidence (e.g., "provided leadership", "cross‑functional teamwork") must score 0–30.
- If there is no leadership evidence, scores must be 0–10 and the explanation must state that no leadership responsibilities were found.
- DO NOT infer potential leadership. Only score based on demonstrated experience.
SKILL SIGNALS:
Return skill_breadth_score, skill_depth_score, seniority_band, specialization_archetype, primary_domains, and explanation.
RISK SIGNALS:
Return: job_hopping_risk, tech_stagnation_risk, buzzword_density_score, and any career_gap_flags.
NARRATIVE:
Generate narrative themes summarizing the candidate.
역할 적합도 프롬프트 (발췌)
You are a career analysis engine specializing in role matching. Always respond using valid JSON only.
Analyze how well the candidate's profile matches the job description.
Return a JSON object with the following fields:
skills_alignment: {
score (0–100),
matched_skills: [{ skill, strength }],
missing_skills: [{ skill, impact }]
},
domain_alignment: {
score (0–100),
explanation
},
seniority_alignment: {
score (0–100),
explanation
},
leadership_alignment: {
score (0–100),
explanation
},
green_flags: [],
red_flags: [],
recommendations: {
resume_focus: [],
interview_talking_points: []
}
SCORING RULES:
- Leadership alignment must reflect demonstrated leadership from the profile.
- Seniority alignment must not be inflated; underqualification should reduce the score.
- Missing skills must include an "impact" rating: Low, Medium, or High.
- Provide clear, concise explanations. 
