Career Signals API — AI 기반 이력서 및 역할 적합성 분석 엔진

발행: (2025년 12월 13일 오전 05:01 GMT+9)
6 min read
원문: Dev.to

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 응답 보기

스크린샷

Bullet Suggestions UI

Role Fit Workflow

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.
Back to Blog

관련 글

더 보기 »

바이브 코딩 패러독스

내가 Nudges에 보낸 마지막 PR은 +96 −312였고, 38개의 파일을 건드렸으며, 약 90 %가 vibe‑coded였다. 나는 그것에 자신 있다. 내가 Hyrule을 활공하고 있을 때, 두 개의 다른 AI…

인쇄 가능한 플래시카드 생성기

소개 시각 학습자이신가요? 이미지 기반 플래시카드를 사용하여 단어나 개념을 더 효과적으로 암기한 적이 있나요? 그렇다면, 이 프로...