AI-powered system for automatically matching rejected candidates to alternative open positions.
npx skills add https://github.com/majesteitbart/talentmatcher --skill shadcn-ui-expert使用 CLI 安装这个技能,并在你的工作区中直接复用对应的 SKILL.md 工作流。
AI-powered system for automatically matching rejected candidates to alternative open positions.
When a candidate is rejected for a position, this system automatically:
npm install
supabase-migration.sql in the SQL EditorCopy .env.example to .env.local:
cp .env.example .env.local
Fill in your credentials:
# Supabase
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# Gemini
GEMINI_API_KEY=your-gemini-api-key
# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
NODE_ENV=development
docker-compose up -d
Quick Start (Recommended):
npm run dev:concurrent # Starts all services at once with color-coded output
Individual Services:
# Terminal 1: Next.js server
npm run dev
# Terminal 2: Workflow worker
npm run worker:workflow
# Terminal 3: Job indexing worker
npm run worker:indexing
Visit http://localhost:3000
The project includes comprehensive Claude Code development tools:
# Initialize project management
/pm:init
# List available commands
/pm:help
# Show current development status
/pm:status
For detailed setup, see the Developer Guide.
POST /api/candidates/reject
Content-Type: application/json
{
"candidate_id": "uuid",
"application_id": "uuid",
"rejection_reason": "Not enough experience"
}
GET /api/workflow/status/[workflow_execution_id]
POST /api/jobs/index
Content-Type: application/json
{
"company_id": "uuid",
"job_ids": ["uuid1", "uuid2"] // optional, indexes all active jobs if omitted
}
The matching workflow uses LangGraph for orchestration:
START
↓
Parse CV (Gemini)
↓
├── Retrieve by Skills (parallel)
├── Retrieve by Experience (parallel)
└── Retrieve by Profile (parallel)
↓
Consolidate Matches (weighted scoring)
↓
Generate Analysis (Gemini)
↓
END
Key tables:
companies - Company informationjobs - Job postingsjob_embeddings - Vector embeddings for semantic searchcandidates - Candidate profilesparsed_cvs - Structured CV dataapplications - Job applicationsworkflow_executions - LangGraph workflow runsmatch_results - Matched jobs with scoresThis project includes a comprehensive Claude Code development ecosystem with specialized agents and tools.
# Project Management
/pm:init # Initialize new epic
/pm:status # Show current work status
/pm:next # Get next task
/pm:standup # Generate standup report
# Development Workflow
/review # Code review mode
/testing:run # Run tests with analysis
/commit # Smart commit with validation
/prompt <task> # Get AI assistance
# Get Help
/pm:help # List all available commands
For complex tasks, agents work together automatically:
# Example: Add new feature
Task agent_type="workflow-orchestrator" description="Add user authentication"
This will coordinate multiple agents to:
For complete documentation, see the Developer Guide.
Use the specialized test-runner agent for comprehensive testing:
# Run all tests with analysis
Task agent_type="test-runner" description="Run full test suite"
# Test specific functionality
Task agent_type="test-runner" description="Test authentication endpoints"
To test the workflow manually:
curl -X POST http://localhost:3000/api/jobs/index
-H "Content-Type: application/json"
-d '{"company_id": "00000000-0000-0000-0000-000000000001"}'
Create a candidate and application (via Supabase dashboard or API)
Reject the candidate to trigger matching:
curl -X POST http://localhost:3000/api/candidates/reject
-H "Content-Type: application/json"
-d '{
"candidate_id": "your-candidate-uuid",
"application_id": "your-application-uuid",
"rejection_reason": "Overqualified"
}'
curl http://localhost:3000/api/workflow/status/[workflow_id]
Per candidate workflow:
MIT
We use epic-based development with Claude Code infrastructure:
/pm:init to start new features/commit for validated commitsContributions welcome! Please open an issue or PR.
For questions or issues:
Task agent_type="code-analyzer" description="Investigate issue"/pm:help for command assistance