104.com.tw Jobs Search MCP

Por meio do MCP, permite que assistentes de IA operem diretamente o 104 Banco de Talentos, possibilitando busca, leitura de vagas e auxílio na candidatura (Hit-in-the-loop) como ferramenta de automação de procura de emprego.

Documentação

104 Job Hunter MCP

Através do MCP (Model Context Protocol), permite que a IA opere diretamente no 104 Job Bank. Automatiza busca, comparação e candidatura a vagas. 🤖 Aplicação avançada: use AGENTS.md para iniciar perguntas e respostas, criando um "avatar virtual do candidato" (MY_PROFILE.md) diretamente do seu currículo existente, mirando com precisão as vagas.

TypeScript Playwright MCP SDK


[!IMPORTANT] 🤖 Princípio máximo para Agentes de IA (System Prompt for AI)

Se você é uma IA assumindo este projeto, seu próximo passo é ler imediatamente o AGENTS.md na raiz do projeto. Lá estão os roteiros padrão para criar o "avatar virtual", filtrar vagas e se candidatar. Antes de ler, é proibido executar qualquer ferramenta de busca.


✨ Funcionalidades principais (Features)

  • 🔍 Busca por interceptação de API: intercepta diretamente a API JSON do backend do 104, contornando os mecanismos anti-bot do frontend.
  • 📄 Leitura de detalhes da vaga: usa Chrome real para extrair descrição do cargo, requisitos e benefícios.
  • 🛡️ Mecanismo de segurança Hit-in-the-loop: a ferramenta de candidatura apenas preenche a carta de apresentação, nunca envia por você.
  • 🍪 Login persistente: cookies salvos em um perfil Chrome dedicado, sem necessidade de login repetido.
  • 🤖 Regras de comportamento do agente: o AGENTS.md integrado fornece roteiros automatizados de busca de emprego.

🔒 Privacidade e Segurança (Privacy & Security)

Esta ferramenta usa uma arquitetura Local-First (prioridade local) para garantir a segurança da sua conta:

  1. 100% execução local: o servidor MCP roda apenas no seu computador, sem enviar senhas ou dados de login.
  2. Sem manipulação de senha: ao fazer login, um Chrome local é aberto e você mesmo faz login na página oficial do 104.
  3. Isolamento seguro de cookies: armazenados criptografados localmente em .chrome-profile/. Essa pasta está listada no .gitignore e não será enviada ao GitHub.

🚀 Instalação e Execução (Setup)

1. Clone o projeto e faça o build

git clone https://github.com/YuJunWang/104-job-hunter-mcp.git
cd 104-job-hunter-mcp
npm install
npm run build

(Pré-requisitos: Node.js 18+, Google Chrome)

2. Faça login na sua conta 104 (apenas uma vez)

npx tsx src/login.ts

Após executar, uma janela do Chrome será aberta. Faça login manualmente no 104 e feche a janela ao concluir.

3. Monte o servidor MCP

Cole a configuração abaixo no arquivo de configuração do cliente MCP (como mcp_config.json do Antigravity ou config.json do Claude Desktop):

{
  "mcpServers": {
    "104-job-hunter": {
      "command": "node",
      "args": ["/絕對路徑/104-job-hunter-mcp/build/index.js"]
    }
  }
}

(Usuários Windows: atenção ao escape de barras invertidas no caminho: C:\\Users\\你的帳號\\...\\build\\index.js)

Reinicie o cliente de IA e as ferramentas estarão prontas.

4. Configure o "cérebro" da IA (Regras do agente)

  1. Copie o MY_PROFILE.example.md da raiz e renomeie para MY_PROFILE.md.
  2. Preencha suas preferências de emprego e requisitos indispensáveis.
  3. Faça a IA ler o AGENTS.md:
    • Antigravity: coloque o AGENTS.md no .agents/rules/, ou salve como Skill global (~/.gemini/config/skills/104-hunter/SKILL.md).
    • Cursor: cole o conteúdo de AGENTS.md no .cursorrules.
    • Claude Desktop: cole no System Prompt.
    • Direto: diga "Leia o MY_PROFILE.md e o AGENTS.md do projeto e me ajude a encontrar emprego seguindo o fluxo".

🤖 Manual de Desenvolvimento e Operação para Agentes de IA

Instruções de entrega de configuração do ambiente para IA

Se você é uma IA responsável por instalar o MCP para um humano, execute os seguintes passos:

  1. Rode git clone, npm install e npm run build.
  2. Peça ao humano para rodar npx tsx src/login.ts e fazer login manualmente.
  3. Ajude o humano a escrever o caminho absoluto do MCP no arquivo de configuração.
  4. Leia o AGENTS.md para entender o roteiro de operação.
  5. Com base no AGENTS.md, oriente o humano a criar o MY_PROFILE.md.

Lista de ferramentas (MCP Tools)

job104_check_session

  • Função: verifica o status do login.
  • Momento: no início do fluxo de busca de emprego, garante que os cookies não expiraram.

job104_search

  • Parâmetros obrigatórios: keyword (ex.: AI 全端工程師 Python)
  • Parâmetros opcionais: location (ex.: 台北市), page (padrão 1)
  • Atenção: a IA deve comparar os resultados em segundo plano e mostrar apenas os Top 3–5 ao humano.

job104_get_details

  • Parâmetros obrigatórios: job_url
  • Função: obtém descrição do cargo, requisitos e benefícios. Essencial antes de redigir a carta de recomendação.

job104_get_cover_letters

  • Parâmetros opcionais: job_url
  • Função: lê todos os modelos de carta de apresentação (Cover Letter) salvos na conta 104, incluindo título e conteúdo completo. Pode ser usado como base para personalização e refinamento pela IA.

job104_prepare_application (Hit-in-the-loop)

  • Parâmetros obrigatórios: job_url
  • Parâmetros opcionais: template_title (nome do modelo a usar), cover_letter_text (conteúdo personalizado da carta), dry_run (padrão false)
  • Atenção: apenas abre a página de confirmação de candidatura e preenche a carta. Após executar, a IA deve lembrar o humano: "Clique manualmente para confirmar o envio".

job104_search_companies

  • Parâmetros obrigatórios: keyword (nome da empresa)
  • Parâmetros opcionais: page, pageSize

job104_get_company_detail

  • Parâmetros obrigatórios: companyInput (código ou URL)
  • Função: obtém benefícios da empresa, produtos e lista de vagas abertas.

job104_save_job

  • Parâmetros obrigatórios: jobInput (código ou URL)
  • Função: adiciona a vaga aos favoritos no 104.

job104_save_company

  • Parâmetros obrigatórios: companyInput (código ou URL)
  • Função: segue a empresa.

job104_reload_server

  • Função: reinicia o servidor MCP de forma elegante para carregar código recém-compilado, evitando travamentos de processo ou interrupção do pipe stdio.

📁 Estrutura do projeto

104-job-hunter-mcp/
├── src/
│   ├── index.ts          # MCP 主程式,工具註冊入口
│   ├── browser.ts        # Playwright 瀏覽器單例管理 (含 Stealth Plugin)
│   ├── login.ts          # 登入輔助腳本
│   ├── utils/
│   │   └── url.ts        # 職缺/公司 URL 與代碼解析模組
│   ├── __tests__/
│   │   └── url.test.ts   # URL 單元測試
│   └── tools/
│       ├── search.ts     # job104_search
│       ├── details.ts    # job104_get_details
│       ├── letters.ts    # job104_get_cover_letters
│       ├── apply.ts      # job104_prepare_application
│       ├── company.ts    # job104_search_companies, job104_get_company_detail
│       ├── save.ts       # job104_save_job, job104_save_company
│       └── session.ts    # job104_check_session
├── examples/
│   └── client.ts         # 本地測試客戶端範例
├── build/                # npm run build 輸出 (不進 git)
├── .chrome-profile/      # Cookie 儲存目錄 (不進 git)
├── AGENTS.md             # AI 操作劇本
├── MY_PROFILE.example.md # 虛擬分身範本
├── package.json
└── tsconfig.json