Career Signals API — An AI-Powered Resume & Role-Fit Analysis Engine
Source: Dev.to
What I Built
Career Signals API is a production‑ready public API that analyzes resumes, job descriptions, and candidate profiles to generate structured, explainable career insights.
Profile Analysis
- Skill breadth & depth scoring
- Five‑dimension leadership scoring (people, technical, delivery, cross‑functional, mentorship)
- Career risk signals (job‑hopping, gaps, stagnation, buzzword density)
- Narrative themes (e.g., “Builder”, “Coach”, “Scaler”)
Role Fit Analysis
- Weighted role‑fit score (0–100)
- Matched vs. missing skills with impact levels
- Seniority and domain alignment
- Red/green flags + actionable resume and interview recommendations
Resume Bullet Generation
- Bullets grounded in actual experience (no hallucinations)
- Tailored to job descriptions
- Seniority‑adjusted tone (IC → Manager → Director → VP)
- Focus‑tag metadata for UI filtering
- Mismatch warnings when the candidate is underqualified
The API returns clean, consistent JSON responses that can be plugged into resume builders, job‑search tools, HR platforms, and ATS systems.
API Documentation
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
Authentication
All endpoints require a Bearer token:
Authorization: Bearer <your-token>
For testing you can also pass a JSON body with a test key:
{ "test_api_key": "test-key-123" }
Rate Limits
- 60 requests per minute (default)
- Configurable per client via Xano table
- Returns
429when the limit is exceeded
Endpoints
POST /v1/analyze/profile
Analyzes resume/profile text and returns skill scores, leadership signals, risk signals, and narrative themes.
POST /v1/analyze/role-fit
Compares a profile to a job description and outputs matched/missing skills, red/green flags, and role‑fit scoring.
POST /v1/suggest/bullets
Generates non‑hallucinated resume bullets grounded in the candidate’s real experience.
All endpoints provide:
- Schema‑validated JSON
- Anti‑hallucination safeguards
- Evidence‑based scoring
- Consistent response formatting
Demo
Microsite
The demo microsite supports:
- Pasting a resume
- Pasting a job description
- Calling each API endpoint
- Viewing structured JSON responses
Screenshots
Example API Calls
Profile Analysis
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}
}'
Role Fit
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 Suggestions
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
}'
The AI Prompt I Used
Profile Analysis Prompt (excerpt)
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.
Role Fit Prompt (excerpt)
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. 
