Search excessionlabs.ai, the site of Excession Labs, a security lab, and request a security test.
- Passed: Handshake
- Passed: Tools listed
- Passed: Updated recently
Median latency 71 ms · Last checked
Explore
Evidence for your next connection.
Independent measurements of remote MCP servers. Every observation has a timestamp.
Read-only probesMCP server · Data access / search
freehire.me: search 3.3M+ IT jobs from 294K company boards, track applications, tailor CVs.
1 failed · 8 not measured
Median of successful probes over 7 days
Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.
Tool definitions returned by this server
Independent monitoring
Outdated check
Last connection measurement is over 24 hours old. Current availability is unknown.
Last checked| Test area | Passed | Failed | Unmeasured |
|---|---|---|---|
ConnectionCan a client connect and discover tools? | 5 | 0 | 0 |
Reliability & speedDoes it respond consistently and quickly? | 0 | 0 | 4 |
Access & authenticationWhat is required to use this server? | 1 | 0 | 2 |
Tool qualityAre the tool definitions usable by an agent? | 3 | 1 | 0 |
Publisher identityCan the publisher be traced to its source? | 4 | 0 | 2 |
Unmeasured means there is not enough evidence to decide. How these checks work
Start using freehire
Choose your client, copy the configuration, then enable the server in your client’s MCP settings.
Run this command in your terminal, then restart Claude Code.
Claude Code
claude mcp add --transport http freehire https://freehire.me/api/v1/mcpCapabilities
Delete one of the person's saved screening answers by the id answer_bank_list shows.
DiscoveredList the person's saved answers to employers' open-ended screening questions ("Why do you want to work here?", "Desired start date?"). Automatic applications reuse them on every form that asks the same question.
DiscoveredSave the person's answer to one screening question an employer's form asks, so automatic applications can send it — use the question's wording from auto_apply_get. The answer is sent to employers in the person's name: pass on what THEY said, never an answer you composed or guessed. Replaces an earlier answer to the same question.
DiscoveredMark a vacancy as applied to. This records the user's own application; it does not submit anything to the employer.
DiscoveredWithdraw an automatic application that has not been submitted. Refused while it is being submitted. Its history is kept.
DiscoveredRead where one automatic application stands: its status, the questions it stopped on, the answers still missing before submission, its full history, and what to do next. Call it again to follow progress — history only grows.
DiscoveredList the person's automatic applications: every live one with its status and when anything last happened to it, and the ones submitted in the last 30 days. Use auto_apply_get for one attempt's questions and history.
DiscoveredRestart an automatic application that stopped — on an unanswered question, after repeated errors, or because the CV could not be tailored — or refresh one awaiting review so newly saved answers are reflected. Answer the open questions with answer_bank_save or screening_answers_set first. Refused for a declined attempt and for one that may already have reached the employer.
DiscoveredRecord the review of an automatic application whose status is pending_review. "approved" lets freehire submit it to the employer with the tailored CV and the answers auto_apply_get shows; "declined" stops it for good. One decision per attempt.
DiscoveredStart applying to a vacancy automatically on the person's behalf. freehire tailors their CV to the vacancy, checks the employer's application form against their saved answers, and waits for a review (auto_apply_review) before submitting. Spends one of today's auto-apply allowance, so it needs a paid plan, and the account's switch letting agents apply. Only vacancies on supported applicant-tracking systems can be started. Follow progress with auto_apply_get.
DiscoveredJoin freehire's interview buddy network under a generated anonymous handle, or rejoin under the old one. Members can book and host 60-minute mock interviews with each other. Returns the membership status.
DiscoveredLeave the interview buddy network. Closes the person's buddy conversations and cancels every upcoming mock interview they host or attend; the other participants are told. Rejoining later restores the same handle.
DiscoveredBook a 60-minute mock interview with a host, the person attending as guest. starts_at must be one of the host's open slots exactly (RFC 3339) and topic one of the topics that host offers. Returns the booked mock with the counterpart's handle and the meeting link. A guest may hold at most 3 upcoming mocks.
DiscoveredCancel one of the person's upcoming mock interviews, by id, before it starts. The other participant is told.
DiscoveredMembers of the buddy network the person could book a 60-minute mock interview with now, soonest available first: each host's handle, a coarse card (category, seniority, country), the topics they offer, their next open slot and their review rating. Never includes a meeting link.
DiscoveredThe person's own mock interviews, upcoming and past, as host or guest: id, role, the counterpart's handle, times, topic, status, the meeting link while confirmed, whether it can still be cancelled, and the reviews.
DiscoveredAdd one dated override to the person's hosting schedule: on that date they host between start and end (HH:MM) instead of their weekly hours. An equal start and end closes the date. Returns the stored rule with its id.
DiscoveredDelete one rule (weekly or dated override) of the person's hosting schedule, by its id.
DiscoveredThe person's own mock-interview hosting setup: settings (time zone, meeting link, topics offered, paused) or null before they were first saved, and the schedule rules — weekly rules by weekday (0 = Sunday) and dated overrides, each with the id needed to delete it.
DiscoveredReplace the person's whole recurring weekly hosting schedule with these weekday rules (an empty list clears it). Times are HH:MM in their settings' time zone. Dated overrides are kept and are not accepted here.
DiscoveredReplace the person's mock-interview hosting settings as a whole: the time zone their schedule is in, the meeting link guests receive, the topics they offer, and whether hosting is paused. Returns the saved settings.
DiscoveredThe open 60-minute mock-interview slots of one host, by handle, and the topics that host offers. Each slot's starts_at is the exact RFC 3339 instant to book. Covers the next 30 days unless from/to say otherwise, at most 62 days. Never includes a meeting link.
DiscoveredWhether the person is a member of freehire's interview buddy network, and their anonymous handle there. Members are known to each other only by handle. Membership is needed for every mock-interview action.
DiscoveredCheck whether postings are still open, by the slugs search results carry — up to 50 per call. Use before acting on a saved shortlist: each posting answers open, closed or not_found, with when it closed or was last seen live.
DiscoveredList the live filter vocabulary. Without `facet`: every filter's name with how many values it has, plus numeric ranges. With `facet`: that filter's values with a vacancy count each, optionally only those containing `contains`. Filter values are the market's own; an invented one matches nothing.
DiscoveredRead one posting in full by an id search returned: its full text, the employer, the board it came from and whether it still looks live.
DiscoveredRead what freehire holds about one employer by the slug a result carries: what they do, which industries they are in, where they are based, and how many postings they have open.
DiscoveredRead one posting in full by the slug a search result carries: the whole description, the stated requirements, which applicant tracking system handles applications, and whether the posting still looks live — when it was last seen open, a reality class, and any observed signs that it is not being filled. A closed posting carries closed_at.
DiscoveredRead the user's saved job-search profile: the roles and skills they want, the skills they want to avoid, where and how they will work, and their CV (headline, years, experience, education — contacts are not included). Call this before asking the user what they are looking for; only ask about what the profile does not answer. The experience section reports the SHAPE of what they have told us — which roles we know and how much evidence each carries — not the achievements themselves. Takes no arguments.
DiscoveredHow many open postings match a set of filters, and their most common role families, seniorities, skills, work modes, countries and regions. Takes the same filters as a job search.
DiscoveredThe values one job-search filter accepts — skills, categories, seniorities, sources, countries and the rest — each with how many open postings carry it, most common first. A value not listed matches no posting. Use it before filtering on a value you are not sure of.
DiscoveredList the person's job alerts with every setting: id, name, a readable filter summary AND the search as the structured object the alert tools take (query, filters, salary_min/max; `other` holds website-only filters an update keeps), whether it is paused, and each delivery channel with its active flag, pending matches and last delivery. delivery_schedule is the account-wide digest timing every alert shares. Effect: none, read-only.
DiscoveredScore a skill list against the live open-vacancy market for a filtered role: what share of vacancies list at least one of the skills, which must-have skills are held, and which missing skills unlock the most vacancies. Here `skills` is the MEASURED set, not a filter.
DiscoveredList the vacancies the user is tracking — saved, applied, viewed or the whole board — with each one's stage and note.
DiscoveredFile a report on a vacancy that looks fake, spam, a scam, irrelevant, or that never answers. It goes to freehire's moderators, who review it by hand; it does not hide the job or change the user's own board. Only report when the user asks for it, or after you have told them what you will send and they agreed. One open report per job per user.
DiscoveredReport a freehire operation you could not complete, a missing capability, or unexpected behavior for the team to triage. Give concise summaries of the user's goal, expected result, and actual failure. Include a tool name and error code when known. Do not include conversations, CV contents, credentials, tokens, personal contact details, or URL query strings. A successful receipt means the report was recorded for review; it does not mean the issue is fixed or that a reply is guaranteed. Repeated matching open reports for this account increase request_count. Use only for a problem met while doing what the user asked, and for a missing capability only when the user asked for it. Never file a test, sample or demonstration report: this tool needs no trial run. Never report a failure of report_problem itself recursively.
DiscoveredSalary percentiles (25th, median, 75th) from open postings that state pay, scoped by role family, seniority and country, with the sample size behind each figure. Currencies and pay periods are reported separately, never converted.
DiscoveredBookmark a vacancy for the user. Idempotent.
DiscoveredRead the person's answers to the six screening questions that repeat across application forms: countries they may work in, visa sponsorship, desired salary, notice period, relocation, and being 18 or older — plus privacy_consent, whether they agree to an employer's privacy / personal-data terms being accepted for them on every application. A missing field has not been stated.
DiscoveredRecord the candidate's own answer to one or more of the six screening questions that repeat across job-application forms: which countries they are authorized to work in, whether they need visa sponsorship, their desired salary, their notice period, whether they are willing to relocate, and whether they are 18 or older. Call this the moment the candidate states one of these facts, so it is available to fill their next application form. Only pass fields the candidate actually stated — never guess or infer one. A field you leave out keeps whatever was already recorded; it is not cleared. To withdraw an answer — the candidate says it no longer holds, or they no longer want it given to employers — name it in clear; auto-apply then asks them instead of answering. privacy_consent is a permission, not a fact: set it only when the candidate says, in so many words, that they agree to employers' privacy and personal-data terms being accepted for them on every application.
DiscoveredSearch freehire's IT job postings by free text. Returns matching postings as {id, title, url}.
DiscoveredFind employers in freehire's catalogue by name or by where they hire, with how many postings each has open. Use when the question is about a company rather than about a role.
DiscoveredSearch freehire's catalogue of IT job postings. Use for any question about which jobs are open — by technology, seniority, location, pay or employer. Returns a short preview of each posting. A role has several names: join two or three in one query with OR, e.g. title:SRE OR title:"site reliability". Location, work mode, seniority and skills go in their filters, never in the query. If suspiciously few results come back, loosen one constraint at a time and say which. Present results as a table of title, company, location, posted date and link (the employer's posting and ours), naming the source. Set semantic for a need described in words ("keep our payment systems secure"), not for a job title or a non-technical role, where plain keywords answer better.
DiscoveredPostings most similar to one posting, by its slug, nearest first — for "show me more like this". Empty for the newest postings, whose neighbours are not computed yet.
DiscoveredCreate a job alert: a saved search over ANY of the job search's filters whose new postings are delivered to the person on the channels their account has connected (email, Telegram, the mobile app, a webhook) — this conversation is not notified. e.g. remote senior Go roles in the EU paying at least 80k EUR is {"filters":{"work_mode":["remote"],"seniority":["senior"],"skills":["go"],"regions":["eu"],"salary_currency":["EUR"]},"salary_min":80000}. The search must narrow the catalogue. Values not in a filter's vocabulary are dropped and named in ignored_params. Leave channels empty for the default (email when alert mail is on, otherwise the first connected channel). The answer's alert.id addresses the alert from then on. Effect: saves the search on the account (or reuses the one already selecting the same postings) and delivers it on each channel; nothing existing is changed.
DiscoveredList the new postings the person's job alerts have matched — the same matches their alerts are built from, newest first, still-open postings only. Narrow to one alert by id, and to a window by since (RFC 3339) or days (default 7, max 30). An alert only matches postings that appeared after it was created, and matching runs every few minutes, so a new one starts empty. delivered says whether an alert already carried the posting. Effect: none, read-only.
DiscoveredRequest review of a missing specialization, skill or company industry, as on freehire's dictionary page. This records a suggestion, not a new working filter or a vacancy. Existing terms and aliases are refused. Repeated requests share the existing queue entry and increase request_count; status is the entry's review state. Use for a specialization, skill or industry the user wanted to filter by but the dictionary cannot resolve; an empty job search alone is not evidence of a missing term. Send the user's original term once per missing term, without requiring a separate request to suggest it. Tell the user it was requested for review, not added to the filters.
DiscoveredSet the application stage and/or a free-text note on a vacancy the user is tracking. Omit a field to leave it unchanged. Valid stages: preparing, applied, screening, responded, interview, offer, accepted, rejected, withdrawn, expired.
DiscoveredRemove a vacancy from the user's bookmarks. Idempotent.
DiscoveredStop one job alert by its id, on every channel or on the one named. Effect: deletes the alert's delivery on those channels and their record of matches; the saved search itself stays on the account as a bookmarked search.
DiscoveredChange one of the person's job alerts by its id. Every field is optional and only the ones given change: name; the search (query, filters, salary_min, salary_max — each replaces that part, an empty filters object clears the facet filters, a salary bound of 0 clears it; website-only filters in `other` are kept); channels (the full set to deliver on — added ones must be connected, missing ones stop); paused (true stops every channel, false resumes them). The new search must still narrow the catalogue, and unknown values are dropped and named in ignored_params. e.g. remote senior Go roles in the EU paying at least 80k EUR is {"filters":{"work_mode":["remote"],"seniority":["senior"],"skills":["go"],"regions":["eu"],"salary_currency":["EUR"]},"salary_min":80000}. Digest timing is account-wide and not changed here. Effect: overwrites the alert's name, search, channels or paused state; a removed channel's record of matches is deleted with it.
DiscoveredRecent measurements
| Checked | Result | Response | Tools |
|---|---|---|---|
| Connected | 461 ms | 51 |