Install
openclaw skills install placed-interview-coachThis skill should be used when the user wants to "practice interview", "mock interview", "prepare for interview", "system design interview", "behavioral inte...
openclaw skills install placed-interview-coachAI-powered interview preparation via the Placed API. No MCP server required — all calls are made directly with curl.
Load the key from ~/.config/placed/credentials, falling back to the environment:
if [ -z "$PLACED_API_KEY" ] && [ -f "$HOME/.config/placed/credentials" ]; then
source "$HOME/.config/placed/credentials"
fi
If PLACED_API_KEY is still not set, ask the user:
"Please provide your Placed API key (get it at https://placed.exidian.tech/settings/api)"
Then save it for future sessions:
mkdir -p "$HOME/.config/placed"
echo "export PLACED_API_KEY=<key_provided_by_user>" > "$HOME/.config/placed/credentials"
export PLACED_API_KEY=<key_provided_by_user>
placed_call() {
local tool=$1
local args=${2:-'{}'}
curl -s -X POST https://placed.exidian.tech/api/mcp \
-H "Authorization: Bearer $PLACED_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"$tool\",\"arguments\":$args}}" \
| python3 -c "import sys,json; d=json.load(sys.stdin); print(d['result']['content'][0]['text'])"
}
| Tool | Description |
|---|---|
start_interview_session | Begin a mock interview for a specific role |
continue_interview_session | Submit your answer and get the next question |
get_interview_feedback | Get full performance analysis for a session |
list_interview_cases | Browse system design cases |
start_system_design | Start a system design interview |
get_behavioral_questions | Get STAR-format behavioral questions |
save_story_to_bank | Save a STAR story for reuse |
get_interview_questions | Generate likely questions for a role/company |
Start a mock interview:
placed_call "start_interview_session" '{
"resume_id": "res_abc123",
"job_title": "Senior Software Engineer",
"difficulty": "hard",
"company": "Google"
}'
# Returns: session_id + first question
Answer a question:
placed_call "continue_interview_session" '{
"session_id": "sess_abc123",
"user_answer": "I would approach this by first clarifying requirements..."
}'
# Returns: feedback on your answer + next question
Get session feedback:
placed_call "get_interview_feedback" '{"session_id":"sess_abc123"}'
List system design cases:
placed_call "list_interview_cases"
# Returns: Design Twitter, Design URL Shortener, Design Netflix, Design Uber, etc.
Start a system design interview:
placed_call "start_system_design" '{"case_id":"design-twitter","difficulty":"senior"}'
Get behavioral questions:
placed_call "get_behavioral_questions" '{
"target_role": "Engineering Manager",
"focus_categories": ["leadership", "conflict-resolution", "failure"]
}'
Save a STAR story:
placed_call "save_story_to_bank" '{
"situation": "Led team through major refactor",
"task": "Reduce technical debt while shipping features",
"action": "Created phased plan, mentored junior devs, set clear milestones",
"result": "30% faster deployments, reduced bugs by 25%",
"category": "leadership"
}'
easy, medium, hardFramework: Requirements → High-Level Architecture → Database Design → Scalability → Fault Tolerance → Trade-offs
Use the STAR method for every answer: