Quick Start Guide
Learn how to integrate SJM into your project and start matching freelancers in minutes. SJM provides powerful APIs for freelancer matching, skills verification, and AI-powered interviews.
Installation
pip install sjm
1
Basic Usage
from sjm import SJM
# Initialize client with your API key
client = SJM(api_key="your_api_key")
# Check API health
health = client.health()
print(f"API Status: {health['status']}")
# Match freelancers to a project
matches = client.match(
description="Build a modern web application with React and Node.js",
required_skills=["React.js", "Node.js", "TypeScript"],
budget_range=(5000, 10000),
complexity="medium",
timeline=30
)
# Display top matches
for match in matches["matches"][:3]:
freelancer = match["freelancer"]
print(f"Match: {freelancer['name']} ({freelancer['job_title']})")
print(f"Score: {match['score']:.2f}")
print(f"Matching Skills: {match['matching_skills']}")
print(f"Hourly Rate: 85/hr")
print("---")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
AI Interview Example
from sjm import SJM
client = SJM(api_key="your_api_key")
# Generate interview questions
interview = client.interview(
freelancer_id="f123",
project_description="Build a modern web application with React",
required_skills=["React.js", "Node.js", "TypeScript"],
job_title="Full Stack Developer",
mode="ai_questions"
)
# Get session ID and questions
session_id = interview["data"]["session_id"]
questions = interview["data"]["interview_data"]["questions"]
# Display questions to collect answers
answers = []
for i, q in enumerate(questions, 1):
print(f"Q{i}: {q['text']}")
answer = input("Answer: ")
answers.append(answer)
# Submit answers for evaluation
evaluation = client.interview(
freelancer_id="f123",
project_description="Build a modern web application with React",
required_skills=["React.js", "Node.js", "TypeScript"],
job_title="Full Stack Developer",
mode="ai_full",
session_id=session_id,
provided_answers=answers
)
# Display evaluation results
if "evaluation" in evaluation["data"]:
eval_data = evaluation["data"]["evaluation"]
print(f"Overall Score: {eval_data['overall_score']}/100")
print(f"Strengths: {', '.join(eval_data['strengths'])}")
print(f"Areas for Improvement: {', '.join(eval_data['areas_for_improvement'])}")
print(f"Hiring Recommendation: {'Yes' if eval_data['hiring_recommendation'] else 'No'}")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Interactive Demo
Try the Matching Engine
Test the SJM matching engine with sample data
Code Editor
const client = new SJM({ apiKey: "demo_key" });
// Define a project to find freelancers for
const project = {
description: "Building a responsive e-commerce website with React and Node.js",
required_skills: ["React.js", "Node.js", "TypeScript", "MongoDB"],
budget_range: [5000, 15000],
complexity: "medium",
timeline: 45
};
// Find matching freelancers
const result = await client.match(project);
// Display the top 3 matches
const topMatches = result.matches.slice(0, 3);
for (const match of topMatches) {
console.log(`Match: ${match.freelancer.name} (${match.freelancer.job_title})`);
console.log(`Score: ${(match.score * 100).toFixed(1)}%`);
console.log(`Skills: ${match.freelancer.skills.join(', ')}`);
console.log(`Experience: ${match.freelancer.experience} years`);
console.log(`Hourly Rate: $${match.freelancer.hourly_rate}/hr`);
console.log('---');
}
// Return the number of matches found
return { totalMatches: result.matches.length };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27