Actual group – offres d'emploi
Server Details
Search Actual group job offers in France, find agencies and prepare applications.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool maps to a distinct job-search action: find_agencies (agencies), search_offers (discovery), list_offer_facets (filter metadata), get_offer (detail), and start_application (apply). There is no overlap between search, lookup, and application flow, and descriptions reinforce the boundaries by cross-referencing each other.
All five tools follow a clean verb_noun snake_case pattern (find_agencies, get_offer, list_offer_facets, search_offers, start_application). The domain noun is consistently 'offer' or 'agency' with no mixed conventions.
Five tools is well-scoped for a job-offer server covering discovery, detail, filtering, agency lookup, and application. Every tool earns its place and none feel redundant or padding.
The surface covers the full candidate lifecycle: search offers, resolve filter values, read full details, locate agencies, and initiate an application with a consent link. No obvious dead ends for the stated purpose of browsing and applying to Actual group offers.
Available Tools
5 toolsfind_agenciesFind Actual group agenciesBRead-onlyInspect
Actual group employment agencies (about 780 in France) in a town or a region, with address and specialties. Candidates can visit or call an agency for advice, registration or follow-up on their applications.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Town name, e.g. "Nantes". | |
| limit | No | Maximum number of agencies returned. Defaults to 20. | |
| region | No | French region name, e.g. "Pays de la Loire". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful scale context ('about 780 in France'), consistent with a closed-world set, but says nothing about pagination, ordering, or what happens when both city and region are supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and information-dense, but the second sentence about candidates visiting agencies does not help an agent invoke the tool and could be cut without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with no output schema and three well-documented optional parameters, the description covers the resource, its scope, and the returned fields (address, specialties). The main residual gap is combining city and region and result ordering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so city, region, and limit are already fully documented with examples and bounds. The description only mirrors the town/region concepts and adds no format or combination guidance (e.g., city vs region precedence), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb-and-resource: retrieving Actual group employment agencies with address and specialties, filtered by town or region. It is clearly distinguishable from the job-offer siblings (get_offer, search_offers), though it never explicitly names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence describes what candidates might do (visit or call for advice/registration), which is end-user context rather than agent guidance. There is no statement of when to call this tool versus search_offers or get_offer, and no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_offerGet a job offerARead-onlyInspect
Full details of one Actual group job offer: description, required profile, salary, schedule, benefits and recruiting agency. Takes the slug returned by search_offers (also the last segment of the offer URL).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the offer text. Defaults to fr. | |
| slug | Yes | Offer slug, from search_offers or the offer URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the return payload contents, which is valuable since there is no output schema, but says nothing about auth, rate limits, or error behavior for a missing slug.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned and followed by the input provenance. The field enumeration earns its place because no output schema exists to convey it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-record fetch with full schema coverage and no output schema, the description supplies exactly the missing pieces: what fields come back and where the slug originates. Nothing an agent needs to invoke it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented. The description's note about the slug provenance essentially repeats the schema text ("from search_offers or the offer URL") and never mentions the lang parameter, so it adds little beyond the structured fields — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("Full details of one Actual group job offer") plus an enumeration of the returned content (description, profile, salary, schedule, benefits, agency). This clearly distinguishes it from search_offers and list_offer_facets without needing the schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes the workflow context by stating the slug comes from search_offers, which implies this is a follow-up detail call. It does not, however, state when not to use it or compare it to siblings like find_agencies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_offer_facetsList offer filter valuesARead-onlyInspect
Exact filter values accepted by search_offers for one dimension (contract type, job family, industry or region), with the number of open offers for each. Optionally scoped by a query and a town.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Optional free text to scope the counts. | |
| town | No | Optional town or postal code to scope the counts. | |
| dimension | Yes | Which filter to list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful behavior beyond annotations: it discloses that the tool returns exact filter values with open-offer counts and that results can be optionally scoped by a query and town.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The core purpose and return value are front-loaded, followed by the optional scoping parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fills an important gap by explaining that the result includes each filter value and its count of open offers. It also covers parameter roles and the relationship to search_offers, leaving only minor details like pagination or result limits unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters with their types and descriptions. The description maps the dimension enum values to human-readable labels and mentions query/town scoping, but adds little beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (list) and resource (offer filter values / facets for one dimension), and explicitly ties the tool to search_offers. It names the four possible dimensions and says the output includes counts of open offers, making it distinguishable from sibling search and lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this tool supplies the exact filter values accepted by search_offers, which implies when to use it. It does not explicitly state when not to use it or name alternatives among the siblings, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_offersSearch job offersARead-onlyInspect
Search the job offers (temporary work, fixed-term and permanent contracts) published by Actual group in France. Combine a free-text query with a town and filters. Filter values for contractType, family, industry and region must be exact French values: get them from list_offer_facets. Use get_offer with a result's slug for the full offer.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free text: job title, skill or keyword, e.g. "cariste", "soudeur TIG", "aide-soignant". | |
| lang | No | Language of the offer texts and URLs. Defaults to fr. | |
| page | No | Page number, from 1. | |
| sort | No | Sort order. Defaults to relevance. | |
| town | No | French town or postal code to search around, e.g. "Rennes" or "35000". | |
| family | No | Job families (exact values from list_offer_facets). | |
| radius | No | Search radius in km around the town. Defaults to 20. | |
| region | No | French regions (exact values from list_offer_facets), e.g. ["Bretagne"]. | |
| industry | No | Industries (exact values from list_offer_facets). | |
| pageSize | No | Results per page, 1 to 20. Defaults to 10. | |
| contractType | No | Contract types (exact values from list_offer_facets), e.g. ["Contrat de travail temporaire", "CDI"]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint=false; the description corroborates the closed corpus by naming the Actual group and France as scope, and adds a genuine behavioral constraint that filter values must be exact French facet values, which will silently fail or misbehave otherwise. It does not describe pagination behavior or what happens with invalid filter values, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero waste, front-loaded with the search scope before the filter-sourcing rule and the follow-up tool. Every sentence carries distinct information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, no-output-schema search tool with full schema descriptions and read-only annotations, the description covers corpus, combination semantics and the two follow-up paths. It could say more about result volume or pagination expectations, but nothing essential to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining how parameters combine (free-text query plus town plus filters) and by pre-empting the facet-value trap for contractType, family, industry and region. It does not add format detail beyond the schema for q, lang, page, sort, radius or pageSize.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search the job offers') and bounds the corpus precisely: offers published by Actual group in France, spanning temporary, fixed-term and permanent contracts. An agent immediately knows what this tool returns and that it is a search/listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes the search workflow (combine free-text query with town and filters) and routes to two named siblings with the condition for each: list_offer_facets for exact French filter values, get_offer with a result's slug for the full offer. This is the when/when-not/alternatives pattern at full strength.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_applicationStart a job applicationAIdempotentInspect
Prepare an application to an Actual group offer on behalf of the candidate you are assisting. Returns a personal link, valid 72 hours, that the candidate must open to attach their CV and give consent to the processing of their data; the application is only sent once they submit that page. Only call this when the candidate has asked to apply and given you their name and email. Never submit the page yourself: give the link to the candidate.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the application page. Defaults to fr. | |
| slug | Yes | Slug of the offer, from search_offers or get_offer. | |
| Yes | Candidate email address. | ||
| lastName | Yes | Candidate last name. | |
| firstName | Yes | Candidate first name. | |
| phoneNumber | No | Candidate phone number, optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the deferred-completion model: the tool returns a personal link valid 72 hours, the application is not actually sent until the candidate opens the page, attaches a CV, and consents to data processing. That consent/data-handling detail and the human-in-the-loop constraint are exactly the kind of context annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action, then the return contract, then the gating and prohibition, in three dense sentences with no filler. Nothing could be removed without losing an operative constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by explaining the return value (a personal link, 72-hour validity) and the asynchronous nature of the actual submission. For a mutation tool with no output schema, this is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the origin of the slug ('from search_offers or get_offer') and the lang default, so the schema carries the parameter burden. The description adds only the framing that firstName/lastName/email belong to the candidate; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (prepare/start an application) plus the resource (an offer from Actual group) and the actor (on behalf of the candidate being assisted). This is clearly distinguishable from the read-only discovery siblings (search_offers, get_offer, find_agencies), which only surface offers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition: only call when the candidate has asked to apply and supplied name and email, and an explicit behavioral rule: never submit the page, hand the link to the candidate. It does not name a sibling alternative for the discovery step, but the gating conditions are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
find_agencies - First observed
get_offer - First observed
list_offer_facets - First observed
search_offers - First observed
start_application
Related MCP Connectors
French IT job search, AI candidate-offer matching, application tracking and cover letters.
Search live job openings in many countries and languages, and read a full job ad.
French job profiles, RNCP diplomas and 135,000 training programs. Read-only, no account.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server connecting AI assistants to official France Travail APIs for real-time job offers, ROME code prediction, and hiring company search.737 npm1MIT

JobsPipe MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceJobsPipe — data pipeline of every job posting on the web. Search live, normalized job postings from 30+ ATS feeds and job boards for AI agents via MCP.MIT- AlicenseNot gradedqualityCmaintenanceEnables natural language management of job applications through MCP-compatible clients, including searching real job offers, creating and deleting applications, generating CVs or cover letters, and retrieving application metrics.ISC
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to scrape job offers and filter them based on user-defined criteria, using MCP resources, prompts, and tools.-
Glama MCP Gateway
Add one secure layer between your agents and this server.