Skip to main content
Glama
esinecan

instaffo-mcp-server

by esinecan

instaffo-mcp-server

AI 어시스턴트가 자신의 브라우저 세션으로 인증된 Instaffo 후보자 계정에 접근할 수 있게 해주는 MCP 서버입니다. 개인 구직 도구입니다. 완전히 로컬에서 실행됩니다.

Instaffo는 양방향 채용 마켓플레이스입니다(후보자와 기업이 매칭됨). 이 서버는 후보자 측면을 노출합니다: MCP 클라이언트에서 프로필과 구직 제안을 읽고, 대화를 읽으며, 되돌릴 수 있는 쓰기 작업을 수행합니다.

작동 방식

Instaffo에는 공개 후보자 API가 없으므로, 서버는 실제 로그인된 세션으로 인증합니다. 후보자 웹 앱은 app.instaffo.com/candidate/api/v1/* 아래의 깔끔한 JSON API와 통신하며, 세션 쿠키로만 인증됩니다(베어러 토큰 없음). 따라서 서버는 스크래퍼가 아닌, 얇은 쿠키 인증 httpx 클라이언트입니다. 브라우저(patchright 사용)는 로그인 시 세션을 생성하기 위해 한 번만 사용됩니다.

MCP client ── stdio ──> instaffo-mcp-server ──cookie──> app.instaffo.com JSON API
                              │
                     storage-state.json  (cookies, written 0600, git-ignored)
                              ▲
                     instaffo-mcp --login  (one-time browser sign-in)

Related MCP server: Chrome MCP Server

설정

uv sync
uv run patchright install chromium     # one-time, for login only
uv run instaffo-mcp --login            # opens a browser; sign in once
uv run instaffo-mcp --auth-status      # confirm the session is stored

MCP 클라이언트(stdio)에 등록하세요:

{
  "command": "uv",
  "args": ["run", "--directory", "/path/to/instaffo-mcp-server", "instaffo-mcp"]
}

도구

읽기(부작용 없음):

도구

반환 내용

instaffo_whoami

신원 정보(이름, 이메일, 직함)

instaffo_get_profile

프로필: 경력, 위치, 기술, 이력서 요약

instaffo_list_job_suggestions

현재 매칭 결과와 카운터

instaffo_get_job_suggestion

한 건의 역할 상세: 설명, 요구사항, 연봉, 스크리닝 질문

instaffo_list_conversations

기업 요청(인바운드 관심) 및 지원 내역

instaffo_auth_status

세션 존재 여부(--deep은 실시간 검증)

instaffo_search_skills

Instaffo의 폐쇄형 어휘에서 기술 UUID 조회

쓰기(모든 쓰기 도구는 confirm을 받습니다; 없으면 네트워크 호출 없이 전송될 정확한 페이로드가 반환됩니다):

도구

효과

엔드포인트

instaffo_save_job / instaffo_unsave_job

제안 북마크

POST|DELETE .../job_suggestions/{uuid}/favorite

instaffo_set_about

자기소개 텍스트 교체

POST .../profile/about

instaffo_set_skills

기술 세트 교체

POST .../profile/skills

instaffo_set_languages

언어 목록 교체

POST .../profile/languages

instaffo_set_industries

업계 경험 교체

POST .../profile/industries

instaffo_set_links

소셜 링크 교체

POST .../profile/links

instaffo_set_seniority

업무 경력 수준 설정

POST .../profile/professional_background

instaffo_set_salary

연봉 기대치

PATCH .../factors/salary

instaffo_set_job_roles

목표 역할(매칭에 영향)

PATCH .../factors/job_roles

instaffo_set_job_seeking_activity

활성/수동 상태

PATCH .../factors/job_seeking_activity

instaffo_add_cv_station

경력 또는 학력 항목 추가

POST .../cv

instaffo_update_cv_station

항목 수정

PATCH .../cv/{uuid}

instaffo_delete_cv_station

항목 삭제(되돌릴 수 없음)

DELETE .../cv/{uuid}

instaffo_set_skill_experience

기술별 경력 연수

POST .../experience_durations/bulk_save

모든 엔드포인트는 추측이 아닌 관찰을 기반으로 합니다. 이들이 구축된 계약은 docs/API.md에 있으며, 기록된 캡처에서 파생되었습니다.

모든 쓰기 작업이 다시 읽는 이유

이 API는 모든 쓰기 작업에 대해 {"success": true}만 반환하며, 부분적으로만 검증합니다 — 필수 필드가 누락되거나 잘못된 타입의 값이 있는 PATCH{"success": true}를 반환합니다. 따라서 응답만으로는 무엇이 저장되었는지 알 수 없습니다. 각 쓰기 도구는 GET /profile을 다시 읽고 verifiedvalue_now를 보고합니다; 응답이 아닌 이 값을 신뢰하세요.

호출 전에 알아야 할 두 가지 필드 함정:

  • instaffo_set_skills는 서버 측에서 topSkills를 다시 파생합니다. 보낼 topSkills 필드나 UI 컨트롤이 없습니다. 기술 세트가 변경되지 않은 저장도 상위 세 개를 이동시켰습니다.

  • 기술은 23개로 제한됩니다 (skills 20개 + topSkills 3개). 초과 시 "maximum is 20 characters"가 반환됩니다 — 메시지는 문자라고 하지만 단위는 항목입니다.

의도적으로 감독됨: 지원 및 메시지

두 가지 작업은 의도적으로 실행 후 망각형 도구로 구현되지 않았습니다: 구직 지원과 채용 담당자에게 메시지 보내기.

지원은 단일 요청이 아닙니다. 제출 전에 실제 프로필에 지속적인 자기 표현을 작성하는 여러 단계의 마법사입니다:

  1. 기술 자기 평가(필요 기술별 연도 슬라이더, 예: 0-5) - experience_durations/bulk_save를 통해 프로필에 자동 저장됨,

  2. 연봉 기대치(프로필에서 미리 채워짐),

  3. "사용하는 AI 도구" 및 "AI 기술" 다중 선택,

  4. 지원서를 생성하고 채용 담당자와의 채팅을 여는 최종 제출.

이는 자신을 표현하는 실제 대외적인 선택이며, 최종 제출 엔드포인트는 전체 흐름이 완료된 후에만 나타나므로, 지원 및 메시지 도구는 계정 소유자가 입력을 승인하는 감독 세션을 위해 남겨둡니다. 추측된 엔드포인트를 기반으로 구축되지 않았습니다. 관찰된 하위 단계와 마법사 형태는 빠른 세션을 위해 여기에 기록되어 있습니다.

명령어

instaffo-mcp                 # run the MCP server (stdio)
instaffo-mcp --login         # headed manual login, persist the session
instaffo-mcp --capture       # record app API traffic to a JSONL (diagnostics)
instaffo-mcp --auth-status [--deep]

보안 및 개인정보

  • 세션 자료(profile/, storage-state.json, captures/, .env)는 ~/.instaffo-mcp에 위치하며, 0600 권한으로 작성되고 git에서 무시됩니다. 절대 커밋되지 않습니다.

  • 쓰기 도구는 확인 게이트가 있으며 되돌릴 수 있는 부분만 다룹니다.

  • 이는 개인 계정을 위한 개인 로컬 도구입니다. 다른 사람의 데이터를 저장하지 않으며 자신의 세션으로만 Instaffo와 통신합니다.

선행 기술

세션 캡처 및 브라우저 패턴은 정신적으로 stickerdaniel/linkedin-mcp-server (Apache-2.0)에서 차용했으며, 동일한 방식으로 개인 LinkedIn 세션을 인증합니다.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to control and automate your Chrome browser directly, leveraging existing login states and configurations for tasks like content analysis, semantic search across tabs, screenshots, network monitoring, and interactive operations.
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets AI assistants control your real Chrome browser to perform web tasks like reading pages, taking screenshots, clicking, and typing, using your existing logged-in sessions.
    131
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to access and search local browser history, bookmarks, open tabs, and downloads for personalized context.
    MIT

View all related MCP servers

Related MCP Connectors

  • Give AI agents the LinkedIn tools to find, qualify, engage, and follow up with prospects.

  • Run LinkedIn outreach from your AI chat: find leads, launch campaigns, send, and reply.

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/esinecan/instaffo-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server