Procesy rekrutacji z MCP łączą narzędzia asystenta wokół konkretnego zadania, na przykład przygotowania odpowiedzi dla kandydata. Każdy krok potrzebuje stałego ID aplikacji, użytecznych pól wyniku i jawnych ograniczeń. Odczyt wątku, przygotowanie szkicu i wysłanie wiadomości to osobne działania. Za końcową ocenę odpowiada wskazana osoba z zespołu.

Kandydat pyta, czy można przesunąć rozmowę na czwartek. Asystent znajduje korespondencję, czyta ją i pisze uprzejmą odpowiedź. Tekst wygląda na gotowy, ale nadal nie wiadomo, której aplikacji dotyczy, czy asystent przeczytał najnowszą wiadomość i czy ktoś sprawdził dostępność w czwartek.

Proces powinien dawać odpowiedzi na te pytania. Szukaj ich w wynikach poszczególnych wywołań, bez proszenia asystenta, żeby odtwarzał przebieg pracy na podstawie własnego podsumowania.

## Czego potrzebuje modułowy proces rekrutacji z MCP?

W modułowym procesie kolejny krok bezpośrednio korzysta z danych potwierdzających wynik poprzedniego. Przy odpowiedzi dla kandydata oznacza to zachowanie ID aplikacji, sprawdzenie wyniku odczytu i przekazanie szkicu do oceny wraz z jego widocznym statusem.

W tekście z 29 września [„You Said No MCP!”](https://earendil.com/posts/you-said-no-mcp/) zespół Earendil Engineering opisuje dodanie obsługi MCP do Pi oraz udostępnienie narzędzi w izolowanym środowisku do orkiestracji w JavaScript. Autorzy wskazują, że łatwość znajdowania narzędzi i formaty wyników wpływają na to, jak łatwo połączyć je ze sobą. Ich przykłady dotyczą narzędzi programistycznych. Zastosowanie tej zasady w rekrutacji wymaga osobnego projektu.

Zacznij od zadania, które zespół może sprawdzić: przygotowania odpowiedzi w istniejącej rozmowie. Zapisz dane wejściowe i oczekiwany wynik, zanim wybierzesz sposób orkiestracji.

| Krok | Dane potrzebne w kolejnym kroku | Widoczny wynik |
| --- | --- | --- |
| Znajdź rozmowę | ID aplikacji, ogłoszenie o pracę, ograniczenia kolejki | Jedna wybrana aplikacja |
| Przeczytaj wątek | Korespondencja, status dostarczenia, ograniczenia odczytu | Kontekst wystarczający do napisania szkicu albo zatrzymanie pracy |
| W razie potrzeby odczytaj kontekst aplikacji | Aktualny etap i istotne informacje od zespołu | Potwierdzone informacje do odpowiedzi |
| Zapisz odpowiedź jako szkic | To samo ID aplikacji i dokładna treść | Szkic oczekujący na zatwierdzenie z bezpośrednim linkiem |
| Sprawdź w Kit | Szkic, najnowsza otrzymana wiadomość, potwierdzone informacje o terminie | Decyzja człowieka: edycja, odrzucenie albo zatwierdzenie |
| Sprawdź dostarczenie | Aktualny status wiadomości | W kolejce, dostarczona albo błąd |

ID aplikacji łączy wywołania. Kandydat mógł zgłosić się na dwa stanowiska, więc samo imię lub adres e-mail nie wskazuje, którego procesu dotyczy odpowiedź. Zachowaj powiązanie wybranej aplikacji z ogłoszeniem o pracę, nawet gdy podsumowanie asystenta wymienia tylko imię kandydata.

Określ też, kiedy zadanie się kończy. Polecenie „Przygotuj szkic do sprawdzenia przez Morgan” daje asystentowi jednoznaczny cel, a Morgan konkretne zadanie. „Obsłuż skrzynkę” pozostawia wybór rozmów, zakres pracy i kryterium zakończenia do interpretacji.

Jeśli dopiero ustalasz, do których zasobów i działań asystent może mieć dostęp, skorzystaj z [checklisty uprawnień do zasobów i działań](/blog/ai-agent-permissions-resource-action-checklist). Tutaj zakładamy, że dostęp jest już skonfigurowany, i skupiamy się na danych przekazywanych między wywołaniami.

## Co dają wyniki narzędzi w formacie strukturalnym?

Wyniki w formacie strukturalnym ułatwiają odczyt i walidację pól. Nie potwierdzają jednak aktualności danych ani tego, że wynik zawiera wszystko, czego potrzeba do odpowiedzi.

[Specyfikacja narzędzi MCP z 25 listopada 2025 r.](https://modelcontextprotocol.io/specification/2025-11-25/server/tools) definiuje `structuredContent` jako obiekt JSON i przewiduje opcjonalny `outputSchema`. Jeśli narzędzie udostępnia taki schemat, wynik strukturalny musi być z nim zgodny, a klient powinien sprawdzić tę zgodność. JSON zapisany w bloku tekstowym również można sparsować, ale na poziomie protokołu jest to inna reprezentacja.

Ta różnica ma znaczenie przy pisaniu adaptera. Sprawdź format wyniku każdego narzędzia, zamiast zakładać, że wszystkie zwracają ten sam rodzaj obiektu. W Kit tylko część narzędzi zwraca typowane odpowiedzi strukturalne. Robią to narzędzia podsumowujące aplikacje, natomiast narzędzie odpowiedzi dla kandydata zwraca tekstową odpowiedź w formacie JSON. [Dokumentacja narzędzi MCP](/docs/integrations/mcp-tools-reference) opisuje narzędzia, które można ze sobą połączyć.

Po sparsowaniu wyniku sprawdź pola wymagane w kolejnym kroku. Brak ID aplikacji powinien zatrzymać proces. Pusta lista notatek może być poprawnym wynikiem. Flaga obcięcia wymaga decyzji, co zrobić z nieprzeczytaną częścią. Sprowadzenie tego do „narzędzie coś zwróciło” zaciera istotne różnice.

### Kiedy warto łączyć wywołania w kodzie?

Kod pomaga, gdy proces musi połączyć wyniki po ID, przefiltrować kolejkę o ograniczonej długości albo zastosować te same kontrole do kilku odczytów. Pojedynczą odpowiedź można też przygotować przez bezpośrednie wywołania narzędzi, jeśli asystent zachowuje potrzebne dane i przestrzega kolejności zależnych działań.

[Artykuł inżynierski Anthropic o wykonywaniu kodu z MCP](https://www.anthropic.com/engineering/code-execution-with-mcp) opisuje ładowanie narzędzi w miarę potrzeb i filtrowanie wyników pośrednich, zanim trafią do modelu. Omawia także dodatkową pracę związaną z izolacją środowiska, limitami zasobów i monitorowaniem. Pokazuje użyteczną opcję projektową, ale nie dowodzi poprawy wydajności w rekrutacji ani nie gwarantuje oszczędności w konkretnej integracji.

Wybierz kod, gdy ułatwia wymuszenie konkretnej zależności. Na przykład wywołanie zapisujące szkic powinno być niedostępne, dopóki odczyt wątku nie przejdzie kontroli kompletności. Niezależne odczyty mogą działać równolegle. Generowanie odpowiedzi wymaga jednak ich zakończonych wyników.

## Jak połączyć kroki przygotowania odpowiedzi dla kandydata?

Oprzyj proces na jednej aplikacji i jednym szkicu, który da się sprawdzić. Poniższy przykład to proponowana kolejność pracy z narzędziami Kit, a nie automatyczny mechanizm orkiestracji dostarczany przez Kit.

Załóżmy, że Alex, fikcyjny kandydat na stanowisko backendowe, pisze: „Czy możemy przesunąć środową rozmowę na czwartek? Pasuje mi po południu”. Za rozmowę odpowiada Morgan. Prosi asystenta o przygotowanie odpowiedzi potwierdzającej otrzymanie prośby, podczas gdy zespół sprawdza kalendarz osoby prowadzącej rozmowę.

### 1. Wybierz rozmowę i zachowaj jej identyfikator

Użyj `hiring_list_conversations` z odpowiednim filtrem odpowiedzi. Kit obsługuje między innymi `needs_reply`, `pending_draft` i `failed`. Wynik zawiera liczby oraz informacje o obcięciu listy. Długość zwracanej kolejki jest ograniczona, więc nie przedstawiaj wybranych wierszy jako całej listy zaległych rozmów, jeśli odpowiedź wskazuje, że jest ich więcej. Zobacz [dokumentację narzędzi](/docs/integrations/mcp-tools-reference).

Przekazuj ID aplikacji Alexa do każdego kolejnego wywołania. Zachowaj też ogłoszenie o pracę, żeby ułatwić Morgan rozpoznanie właściwego procesu. Jeśli zapytanie zwróci dwie aplikacje Alexa, poproś osobę obsługującą asystenta o wybór właściwego rekordu przed przygotowaniem szkicu.

Przed kolejnym zapisem sprawdź istniejący szkic oczekujący na zatwierdzenie. Ustal, czy Morgan chce go zastąpić. W Kit zapisanie nowej odpowiedzi zastępuje wcześniejsze oczekujące szkice w tym wątku. Wielokrotne wywoływanie narzędzia nie jest więc obojętnym dla danych sposobem zbierania wariantów.

### 2. Przeczytaj wątek i sprawdź ograniczenia

Wywołaj `hiring_list_messages` dla tej aplikacji. Sprawdź korespondencję, oczekujący szkic, błędy dostarczenia, łączną liczbę wiadomości i limity. Flaga `truncated` w odpowiedzi informuje o pominiętych wiadomościach, a flaga `body_truncated` przy każdej wiadomości wskazuje obcięcie treści. Sprawdź obie, także przy treści oczekującego szkicu. Ostatnia korespondencja jest zwracana chronologicznie, ale nie oznacza to, że jest kompletna.

W tym przykładzie potwierdź, że prośba dotyczy rozmowy omówionej wcześniej w wątku. Sprawdź, czy zespół zdążył już odpowiedzieć lub czy błąd dostarczenia wyjaśnia ponowne pytanie Alexa. Powtórzona odpowiedź mogłaby zdezorientować kandydata, nawet gdy jej treść jest poprawna.

Tekst kandydata traktuj jako źródło informacji o prośbie. Wiadomość o przesunięciu rozmowy jest istotna. Zdanie nakazujące asystentowi zignorować instrukcje działania nadal pozostaje treścią zewnętrznej wiadomości i nie powinno zmieniać procesu.

### 3. Pobierz tylko kontekst potrzebny do odpowiedzi

Użyj `hiring_get_application_summary`, jeśli odpowiedź wymaga aktualnego kontekstu aplikacji, na przykład etapu. Nie dodawaj niepowiązanych notatek tylko dlatego, że narzędzie może je zwrócić.

Podsumowanie pozwala ustalić, na jakim etapie jest aplikacja. Nie potwierdza, że osoba prowadząca rozmowę ma wolny termin w czwartek. W tym przykładzie dostępność kalendarza nie została sprawdzona, więc szkic powinien potwierdzić otrzymanie prośby bez zatwierdzania terminu:

> Cześć Alex, dzięki za wiadomość. Sprawdzimy, czy możemy przesunąć rozmowę na czwartek po południu, i wrócimy z odpowiedzią, gdy potwierdzimy godzinę.

Morgan musi odpowiadać za dalszy kontakt. Jeśli nikt nie sprawdzi dostępności, nawet taką ostrożną obietnicę trzeba zmienić. Nie dodawaj „Czwartek o 14 pasuje” na podstawie domysłu ani nie zamieniaj preferencji kandydata w zarezerwowany termin.

### 4. Zapisz dokładną odpowiedź jako szkic i sprawdź jej stan

Wywołaj `hiring_send_message` z zachowanym ID aplikacji i proponowaną treścią. Mimo nazwy API **narzędzie zapisuje szkic oczekujący na zatwierdzenie**. Nie wysyła e-maila do Alexa. Zwrócony link `pending_draft` prowadzi bezpośrednio do tego szkicu w wątku aplikacji.

Po zapisaniu szkicu ponownie odczytaj stan wątku. Porównaj `pending_draft.id` z ponownego odczytu z `data.id` wyniku zapisu: kolejne wywołanie może zastąpić twój szkic. Sprawdź, czy pojawiła się nowsza wiadomość od kandydata. Ten odczyt zmniejsza ryzyko przekazania nieaktualnego wyniku, ale wątek może się jeszcze zmienić, zanim Morgan go otworzy.

Komunikat asystenta o zakończeniu pracy powinien być konkretny: „Szkic oczekujący na zatwierdzenie dla aplikacji Alexa na stanowisko backendowe. Otwórz ten szkic w Kit, sprawdź najnowszą wiadomość i potwierdzone informacje o terminie, a następnie użyj **Potwierdź i wyślij**, jeśli akceptujesz treść”. Dodaj zwrócony link do dokładnie tego szkicu. Ogólny link do aplikacji zmusza Morgan do szukania wyniku, którego lokalizacja jest już znana.

Odpowiedź w czacie nie może zatwierdzić wysyłki szkicu. **Potwierdź i wyślij** ponownie sprawdza dostępność skrzynki i odpowiedzi, a potem dodaje wiadomość do kolejki wysyłki. Status dostarczenia w Kit oznacza, że przekazanie do SMTP zakończyło się bez błędu. Nie dowodzi, że wiadomość dotarła do skrzynki Alexa.

## Co zrobić z niekompletnym lub nieaktualnym wynikiem?

Zanim proces przejdzie do kolejnego kroku, trzeba obsłużyć brakujący lub zmieniony kontekst. Ustal reakcję na każdy przypadek już podczas projektowania, żeby asystent nie pisał przekonującej odpowiedzi mimo brakujących danych.

| Sytuacja | Proponowana reakcja |
| --- | --- |
| Kolejka jest obcięta | Podaj sprawdzony zakres; nie twierdź, że obsłużono wszystkie rozmowy |
| Wątek lub treść wiadomości są niekompletne | Odczytaj brakujący kontekst dostępną ścieżką, do której masz uprawnienia, albo przekaż wątek Morgan |
| Skrzynka jest wyłączona lub odpowiedzi są niedostępne | Zatrzymaj przygotowanie szkicu i podaj powód |
| Wcześniejsze dostarczenie się nie powiodło lub jego wynik jest niepewny | Sprawdź stan wiadomości przed przygotowaniem zastępczej odpowiedzi |
| Pojawia się nowa wiadomość od kandydata | Ponownie oceń treść odpowiedzi w świetle nowej prośby |
| Szkic obiecuje niepotwierdzony termin | Usuń obietnicę albo zdobądź potwierdzenie dostępności |

Alex może napisać: „Czwartek już mi nie pasuje. Lepiej w piątek rano”. Wcześniejsza, poprawna odpowiedź dotycząca czwartku staje się wtedy nieaktualna. Proces powinien wrócić do odczytu i przygotowania szkicu, a potem pokazać Morgan zmieniony wynik.

Kit wyświetla ostrzeżenie o nieaktualności, gdy po oczekującym szkicu przychodzi nowsza wiadomość. Ostrzeżenie nie blokuje, nie odświeża ani nie odrzuca szkicu automatycznie. Morgan nadal musi przeczytać najnowszą wiadomość i podjąć decyzję. [Przewodnik po agencie AI i MCP](/docs/managing-jobs/ai-agent-and-mcp) wyjaśnia przekazanie komunikacji z kandydatem do sprawdzenia przez zespół.

Podawaj konkretne przyczyny zatrzymania pracy. „Zatrzymano proces, ponieważ zwrócony wątek był obcięty i nie odczytano wcześniejszych ustaleń dotyczących terminu” wskazuje Morgan, co zrobić dalej. „Coś poszło nie tak” zmusza tę osobę do ponownego sprawdzania tego, co badał asystent.

## Jak przetestować proces przed użyciem?

Przetestuj przygotowanie odpowiedzi na fikcyjnych aplikacjach i korespondencji, zanim użyjesz go w prawdziwych rozmowach. Sprawdź dane pośrednie i końcowy stan, także w przypadkach, gdy poprawnym wynikiem jest zatrzymanie pracy.

W jednym przebiegu skorzystaj z poniższego arkusza odbioru. To proponowana pomoc projektowa, którą zespół może dostosować, a nie standard branżowy ani wbudowany w Kit mechanizm uruchamiania testów.

| Pytanie przy odbiorze | Dane do zapisania |
| --- | --- |
| Jakie dokładnie ID aplikacji jest zachowane w każdym kroku? | Wybrane ID i ogłoszenie o pracę przy każdym zależnym wywołaniu |
| Z których pól korzysta kolejny krok? | Wymagane pola wyniku i wartości sparsowane przez adapter |
| Czy kolejka, wątek lub treść były obcięte? | Flagi odpowiedzi i poszczególnych wiadomości oraz informacja o nieprzeczytanej części |
| Czy to tekst kandydata, czy instrukcja zespołu? | Źródło każdej instrukcji i każdej informacji z wiadomości |
| Czy kolejne wywołanie odczytuje dane, przygotowuje szkic, czy wykonuje działanie? | Zamierzone działanie przed wywołaniem narzędzia |
| Gdzie jest wynik do sprawdzenia i kto za niego odpowiada? | Dokładny link do oczekującego szkicu i wskazany recenzent |
| Co zmieniło się po pierwszym odczycie? | Zgodność ID szkiców, późniejszy stan wątku i poprawiona treść |
| Który stan potwierdza oczekiwany wynik? | Oczekujący szkic, wysyłka w kolejce, dostarczona wiadomość albo błąd |

Zacznij od fikcyjnej prośby o czwartek. Oczekiwanym wynikiem jest jeden szkic potwierdzający otrzymanie prośby. Potem zmieniaj po jednym warunku w każdym przebiegu: dodaj drugą aplikację kandydata o tym samym imieniu, zwróć niekompletny wątek, wyłącz skrzynkę, dodaj istniejący szkic albo wiadomość z prośbą o piątek już po zapisaniu szkicu.

Przy powtórzonym imieniu sukces oznacza zachowanie wybranej aplikacji aż do szkicu. Przy niepełnym kontekście może nim być zatrzymanie bez zapisu. Przy nowej prośbie o piątek trzeba zwrócić uwagę recenzenta na zmianę i nie twierdzić, że odpowiedź dotycząca czwartku nadal jest aktualna.

Oddziel zadanie asystenta od dostarczenia wiadomości. Jeśli Morgan prosi o przygotowanie szkicu, dowodem wykonania jest poprawny oczekujący szkic i link do niego. Jeśli później go zatwierdzi, śledź dostarczenie osobno. Poprawny schemat i udane wywołanie narzędzia nie potwierdzają, że Alex cokolwiek otrzymał.

## Jak Kit udostępnia kroki procesu i przekazanie wyniku?

Kit udostępnia odczyt rozmów, kontekst aplikacji i szkic odpowiedzi dla kandydata, który osoba z zespołu może sprawdzić w wątku. Integracja dostarcza reguły orkiestracji łączące te kroki, w tym kontrole kompletności i reakcje na zmianę danych.

Użyteczny wynik końcowy to bezpośredni link do oczekującego szkicu wraz z jasnym statusem i wskazanym recenzentem. Morgan może otworzyć dokładną treść, porównać ją z najnowszą prośbą kandydata, zmienić lub odrzucić szkic albo użyć **Potwierdź i wyślij**. Po zatwierdzeniu status dostarczenia nadal trzeba sprawdzić osobno.

Ten etap oceny dotyczy omawianych szkiców odpowiedzi dla kandydatów. Inne narzędzia Hiring mogą zapisywać zmiany lub uruchamiać powiadomienia, więc sprawdź działanie każdego narzędzia przed włączeniem go do szerszego procesu. [Przewodnik wdrażania MCP](/blog/deploying-ai-recruiting-agents-mcp) opisuje podłączanie agentów, a [wprowadzenie do MCP w rekrutacji](/blog/mcp-for-hiring) wyjaśnia podstawy protokołu.

Zbuduj jeden proces odpowiedzi, w którym da się prześledzić ID aplikacji, ograniczenia odczytu, szkic i status dostarczenia. Przetestuj go za pomocą arkusza i wskaż osobę odpowiedzialną za sprawdzenie wyniku. Żeby wypróbować to w zespole, [zacznij od Kit](/users/sign_up). Pierwsze zadanie ogranicz do jednej rozmowy i jednego szkicu do oceny.