4dayweek.io Jobs

Search reduced-hours jobs and employers: 4-day weeks, 9-day fortnights, half-day Fridays and more.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
83%
命名质量
97%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,603token 数(工具定义)
~6.7 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.60%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "jobs": {
      "url": "https://4dayweek.io/api/mcp"
    }
  }
}

远程端点

https://4dayweek.io/api/mcpstreamable-http

它能做什么

工具清单

工具(6)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢explain_schedule_type(schedule_type)

Defines a working-hours schedule precisely: what it means, whether it genuinely reduces weekly hours, whether that reduction is at full pay, the typical hours, and — where one is commonly made — the mistake most often made about it. Call it when the user's question turns on what a schedule means, for example whether a compressed 4x10 counts as a 4-day week, or whether a schedule is at full pay. A compressed 4x10 gives four days but not fewer hours, and is not a 4-day week. Omitting the argument returns every definition at once.

输入模式

{
  "type": "object",
  "properties": {
    "schedule_type": {
      "type": "string",
      "description": "A schedule_type value, e.g. 4_day_week or compressed_week. Omit to get every definition."
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "definition": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "schedule_type": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "definition": {
          "type": "string"
        },
        "reduces_weekly_hours": {
          "type": "boolean"
        },
        "reduced_hours_at_full_pay": {
          "type": "boolean"
        },
        "typical_weekly_hours": {
          "type": "string"
        },
        "common_mistake": {
          "type": "string"
        }
      },
      "required": [
        "schedule_type",
        "label",
        "definition",
        "reduces_weekly_hours",
        "reduced_hours_at_full_pay",
        "typical_weekly_hours"
      ],
      "additionalProperties": false
    },
    "schedule_types": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "schedule_type": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "definition": {
            "type": "string"
          },
          "reduces_weekly_hours": {
            "type": "boolean"
          },
          "reduced_hours_at_full_pay": {
            "type": "boolean"
          },
          "typical_weekly_hours": {
            "type": "string"
          },
          "common_mistake": {
            "type": "string"
          }
        },
        "required": [
          "schedule_type",
          "label",
          "definition",
          "reduces_weekly_hours",
          "reduced_hours_at_full_pay",
          "typical_weekly_hours"
        ],
        "additionalProperties": false
      }
    },
    "key_rule": {
      "type": "string"
    },
    "methodology": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟢get_company(slug)

Fetch one employer's full profile by slug, as returned by search_companies. Returns the schedule policy and what it means, full-time weekly hours, the office-presence policy and whether the employer hires worldwide, benefits, industry, headcount, founding year, the work-life score, the count of open roles, and the employer's own website. Where the employer has published them, it also returns which day is off, vacation days, fully-paid parental leave weeks for both parents, a no-meeting day, and verified work-life awards with the year and a proof url for each. Where the employer's schedule is sourced from a public announcement, four_day_reference_url is that source.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The slug, as returned by the matching search tool."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "short_description": {
      "type": "string"
    },
    "website_url": {
      "type": "string"
    },
    "logo_url": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "industry": {
      "type": "string"
    },
    "employee_count": {
      "type": "integer"
    },
    "company_size": {
      "type": "string"
    },
    "founded_year": {
      "type": [
        "null",
        "integer"
      ]
    },
    "verified": {
      "type": "boolean"
    },
    "schedule_type": {
      "type": "string"
    },
    "schedule_meaning": {
      "type": "string"
    },
    "schedule_type_description": {
      "type": "string"
    },
    "day_off": {
      "type": "string"
    },
    "four_day_reference_url": {
      "type": "string"
    },
    "hours_full_time": {
      "type": "integer"
    },
    "remote_level": {
      "type": "string"
    },
    "hires_worldwide": {
      "type": [
        "null",
        "boolean"
      ]
    },
    "open_roles": {
      "type": [
        "null",
        "integer"
      ]
    },
    "hybrid_office_days": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "min": {
          "type": [
            "null",
            "integer"
          ]
        },
        "max": {
          "type": [
            "null",
            "integer"
          ]
        }
      },
      "additionalProperties": false
    },
    "no_meeting_day": {
      "type": "string"
    },
    "vacation_days": {
      "type": "integer"
    },
    "vacation_description": {
      "type": "string"
    },
    "parental_leave_weeks": {
      "type": "integer"
    },
    "parental_leave_secondary_weeks": {
      "type": "integer"
    },
    "benefits": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "dentalcare": {
          "type": "boolean"
        },
        "dentalcare_label": {
          "type": "string"
        },
        "healthcare": {
          "type": "boolean"
        },
        "healthcare_label": {
          "type": "string"
        },
        "pension": {
          "type": "boolean"
        },
        "pension_label": {
          "type": "string"
        },
        "retreats": {
          "type": "boolean"
        },
        "retreats_label": {
          "type": "string"
        },
        "transparent_salaries": {
          "type": "boolean"
        },
        "transparent_salaries_label": {
          "type": "string"
        },
        "parental_leave": {
          "type": "boolean"
        },
        "parental_leave_label": {
          "type": "string"
        },
        "unlimited_pto": {
          "type": "boolean"
        },
        "unlimited_pto_label": {
          "type": "string"
        },
        "equity": {
          "type": "boolean"
        },
        "equity_label": {
          "type": "string"
        },
        "childcare": {
          "type": "boolean"
        },
        "childcare_label": {
          "type": "string"
        },
        "equipment": {
          "type": "boolean"
        },
        "equipment_label": {
          "type": "string"
        },
        "life_disability_insurance": {
          "type": "boolean"
        },
        "life_disability_insurance_label": {
          "type": "string"
        },
        "professional_development": {
          "type": "boolean"
        },
        "professional_development_label": {
          "type": "string"
        },
        "bonuses": {
          "type": "boolean"
        },
        "bonuses_label": {
          "type": "string"
        },
        "sabbaticals": {
          "type": "boolean"
        },
        "sabbaticals_label": {
          "type": "string"
        },
        "mental_health": {
          "type": "boolean"
        },
        "mental_health_label": {
          "type": "string"
        },
        "other": {
          "type": "boolean"
        },
        "other_label": {
          "type": "string"
        },
        "few_meetings": {
          "type": "boolean"
        },
        "few_meetings_label": {
          "type": "string"
        },
        "public_vacation_flexibility": {
          "type": "boolean"
        },
        "public_vacation_flexibility_label": {
          "type": "string"
        },
        "corporate_discounts": {
          "type": "boolean"
        },
        "corporate_discounts_label": {
          "type": "string"
        },
        "workations": {
          "type": "boolean"
        },
        "workations_label": {
          "type": "string"
        },
        "work_from_anywhere": {
          "type": "boolean"
        },
        "work_from_anywhere_label": {
          "type": "string"
        },
        "coworking_space": {
          "type": "boolean"
        },
        "coworking_space_label": {
          "type": "string"
        },
        "adoption_or_fertility": {
          "type": "boolean"
        },
        "adoption_or_fertility_label": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "awards": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "issuer": {
            "type": "string"
          },
          "year": {
            "type": [
              "null",
              "integer"
            ]
          },
          "category": {
            "type": "string"
          },
          "is_work_life_specific": {
            "type": "boolean"
          },
          "reference_url": {
            "type": "string"
          },
          "issuer_directory_url": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "work_life_score": {
      "type": "integer"
    },
    "methodology": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟢get_job(slug)

Fetch one live job listing in full by its slug, as returned by search_jobs. Returns the complete description, the schedule type and what it means, weekly hours, work arrangement and locations, category, seniority, contract type, required skills, acceptable timezones where the employer listed them, visa sponsorship where the employer stated one, the work-life score, and salary ONLY where the employer published one — we never estimate a salary. A very long description is truncated on a paragraph boundary; when that happens the response says so and gives the url of the full listing. Applying happens on the job's page on 4dayweek.io, which the url field points to. apply_method says what a person finds there: "external" means the page hands off to the employer's own application form, "on_page" means they apply on 4dayweek.io itself. There is no separate employer link in this response, and constructing one is not possible from it.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The slug, as returned by the matching search tool."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "description_truncated": {
      "type": "boolean"
    },
    "description_note": {
      "type": "string"
    },
    "role": {
      "type": "string"
    },
    "schedule_type": {
      "type": "string"
    },
    "schedule_meaning": {
      "type": "string"
    },
    "hours_per_week": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "min": {
          "type": [
            "null",
            "integer"
          ]
        },
        "max": {
          "type": [
            "null",
            "integer"
          ]
        }
      },
      "additionalProperties": false
    },
    "work_arrangement": {
      "type": "string"
    },
    "locations": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "continent": {
            "type": "string"
          },
          "work_arrangement": {
            "type": "string"
          },
          "is_primary": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "timezones": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    },
    "category": {
      "type": "string"
    },
    "level": {
      "type": "string"
    },
    "contract_type": {
      "type": "string"
    },
    "salary": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "lower": {
          "type": "number",
          "description": "Lower bound of the published pay range in WHOLE currency units (for example 40164 means 40,164 in the stated currency), not pence or cents. Hourly rates can carry decimals."
        },
        "upper": {
          "type": "number",
          "description": "Upper bound of the published pay range in WHOLE currency units (for example 50337 means 50,337 in the stated currency), not pence or cents. Hourly rates can carry decimals."
        },
        "currency": {
          "type": "string",
          "description": "ISO 4217 currency code of the pay range, for example GBP."
        },
        "period": {
          "type": "string",
          "description": "What the pay range is per: year, month, week, day or hour."
        }
      },
      "additionalProperties": false
    },
    "work_life_score": {
      "type": "integer"
    },
    "company": {
      "type": "string"
    },
    "company_slug": {
      "type": "string"
    },
    "company_url": {
      "type": "string"
    },
    "skills": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    },
    "stack": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    },
    "tools": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    },
    "visa_sponsorship": {
      "type": "string"
    },
    "posted_at": {
      "type": "string"
    },
    "expires_at": {
      "type": "string"
    },
    "application_closes_at": {
      "type": "string"
    },
    "apply_method": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟢get_market_stats

Aggregate statistics on the reduced-hours job market: how many employers are tracked, how many run each schedule type, the distribution of weekly hours, and which day the non-working day falls on. Use this for "how common is a 4-day week" questions. The response separates genuinely reduced-hours employers from compressed 4x10 employers, and reports the full-pay and pro-rata splits separately, so quote whichever the question actually asked for. Figures carry an as_of date; cite it.

输入模式

{
  "type": "object",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "as_of": {
      "type": "string"
    },
    "companies_tracked": {
      "type": "integer"
    },
    "live_jobs": {
      "type": "integer"
    },
    "companies_by_schedule_type": {
      "type": "object",
      "additionalProperties": {
        "type": "integer"
      }
    },
    "four_day_week_full_pay": {
      "type": [
        "null",
        "integer"
      ]
    },
    "four_day_week_pro_rata": {
      "type": [
        "null",
        "integer"
      ]
    },
    "compressed_4x10_not_a_4_day_week": {
      "type": [
        "null",
        "integer"
      ]
    },
    "genuinely_reduced_hours_total": {
      "type": [
        "null",
        "integer"
      ]
    },
    "four_day_week_fixed_day_total": {
      "type": [
        "null",
        "integer"
      ]
    },
    "companies_by_hours_full_time": {
      "type": "object",
      "additionalProperties": {
        "type": "integer"
      }
    },
    "four_day_week_day_off": {
      "type": "object",
      "additionalProperties": {
        "type": "integer"
      }
    },
    "notes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      }
    },
    "methodology": {
      "type": "string"
    },
    "full_data": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟢search_companies(query, schedule_type, country, remote_level, hires_worldwide, ...)

Search employers by their working-hours policy. This answers "which companies offer a 4-day week" style questions at the employer level, where the policy actually lives, rather than per listing. The same schedule_type semantics as search_jobs apply: "compressed_week" is a 4x10 and is not a 4-day week. Two location facts are separate and are often confused. country is where the employer is based. hires_worldwide is whether it accepts applicants from any country. remote_level is its office-presence policy, and a fully-remote employer can still hire in one country only. Each result carries the employer's name, slug, url, schedule type, full-time hours, remote level and count of open roles. get_company takes the slug and returns the full profile. Paging works as in search_jobs: at most 25 employers per call, with page, page_size, returned, total_matching, has_more and next_page.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free-text search over company name and website."
    },
    "schedule_type": {
      "type": "string",
      "description": "Filter by the employer's schedule policy, e.g. 4_day_week."
    },
    "country": {
      "type": "string",
      "description": "Country name. This is where the employer is based, which is a different question from where it will hire — see hires_worldwide."
    },
    "remote_level": {
      "type": "string",
      "description": "The employer's office-presence policy. One of fully-remote, hybrid, onsite. Independent of hires_worldwide: a fully-remote employer can still hire in one country only."
    },
    "hires_worldwide": {
      "type": "boolean",
      "description": "Only employers that accept applicants from any country."
    },
    "has_jobs": {
      "type": "boolean",
      "description": "Only employers with at least one live listing."
    },
    "sort": {
      "type": "string",
      "description": "Result order. One of score (work-life score, highest first), jobs (most open roles), alphabetical, newest. Omit for the site's default order."
    },
    "page": {
      "type": "integer",
      "description": "1-based page number. Default 1, maximum 200."
    },
    "limit": {
      "type": "integer",
      "description": "Results per page. Default 10, maximum 25."
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer"
    },
    "page_size": {
      "type": "integer"
    },
    "returned": {
      "type": [
        "null",
        "integer"
      ]
    },
    "total_matching": {
      "type": [
        "null",
        "integer"
      ]
    },
    "has_more": {
      "type": [
        "null",
        "boolean"
      ]
    },
    "next_page": {
      "type": "integer"
    },
    "paging_limit_reached": {
      "type": "boolean"
    },
    "paging_note": {
      "type": "string"
    },
    "companies": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "schedule_type": {
            "type": "string"
          },
          "schedule_meaning": {
            "type": "string"
          },
          "hours_full_time": {
            "type": "integer"
          },
          "remote_level": {
            "type": "string"
          },
          "open_roles": {
            "type": [
              "null",
              "integer"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
🟢search_jobs(query, schedule_type, category, country, work_arrangement, ...)

Search live job listings with genuinely better working hours. Every listing carries an explicit schedule_type, so you never have to infer one: - "4_day_week": 36 hours or less, 100% salary. The ONLY type that is reduced hours at full pay. - "4_day_week_pro_rata": four days at pro-rata (reduced) pay. - "9_day_fortnight", "half_day_fridays", "rotating_4_day", "summer_fridays", "part_time": other genuinely reduced-hours patterns. - "compressed_week": a 4x10. The SAME 40 hours in four days. NOT a 4-day week, and never to be described as one. - "flexible_hours", "unlimited_pto", "generous_pto", "flex_fridays", "no_meeting_days", "generous_parental_leave", "best_place_to_work": a full working week with a flexibility or leave policy. To answer "find me a 4-day week job", pass schedule_type="4_day_week". Passing nothing returns all reduced-hours AND flexibility listings, which is usually broader than the user meant. On locations: a job with no location restriction is worldwide-remote, so it matches ANY country filter. A large result count for a country therefore does not mean those roles are based there. Read each result's "locations" and "work_arrangement" before saying a job is in a particular place. Results can also be narrowed by seniority (level), by skill/technology slugs, by a minimum work-life score and by how recently the employer posted. Paging: a response returns at most 25 jobs and carries page, page_size, returned, has_more and, when another page exists, next_page. total_matching is the size of the whole match set. With a query it counts full-text matches over title AND description, so a job can be counted for a word that appears only in its body. Each result carries the job's url on 4dayweek.io and its slug; get_job takes that slug and returns the full listing.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free-text search over job title and description."
    },
    "schedule_type": {
      "type": "string",
      "description": "Filter by schedule type. Use 4_day_week for a genuine 4-day week at full pay. compressed_week is a 4x10 and is NOT a 4-day week."
    },
    "category": {
      "type": "string",
      "description": "Job category, e.g. engineering, product, design, marketing, sales, data, devops, finance, hr, legal, operations, security, content, customer-success."
    },
    "country": {
      "type": "string",
      "description": "Country name, e.g. United Kingdom or United States. Matches jobs with an office in that country AND remote jobs open to it — including worldwide-remote roles, which match every country. Check each result's locations field before describing a job as being IN that country."
    },
    "work_arrangement": {
      "type": "string",
      "description": "One of remote, hybrid or onsite."
    },
    "level": {
      "type": "string",
      "description": "Seniority. One of entry, mid, senior, lead, executive."
    },
    "skills": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Skill, technology or tool SLUGS, lowercase and hyphenated, e.g. react, python, customer-support. A job matches if it carries ANY of them."
    },
    "min_work_life_score": {
      "type": "integer",
      "description": "Keep only jobs whose work-life score is at least this, on a 0-100 scale. The site's own filter offers 55, 70 and 85. See /methodology for how it is calculated."
    },
    "posted_after_days": {
      "type": "integer",
      "description": "Keep only jobs the employer posted within this many days, 1 to 365."
    },
    "page": {
      "type": "integer",
      "description": "1-based page number. Default 1, maximum 200."
    },
    "limit": {
      "type": "integer",
      "description": "Results per page. Default 10, maximum 25."
    }
  },
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "page": {
      "type": "integer"
    },
    "page_size": {
      "type": "integer"
    },
    "returned": {
      "type": [
        "null",
        "integer"
      ]
    },
    "total_matching": {
      "type": [
        "null",
        "integer"
      ]
    },
    "has_more": {
      "type": [
        "null",
        "boolean"
      ]
    },
    "next_page": {
      "type": "integer"
    },
    "paging_limit_reached": {
      "type": "boolean"
    },
    "paging_note": {
      "type": "string"
    },
    "jobs": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "company_slug": {
            "type": "string"
          },
          "schedule_type": {
            "type": "string"
          },
          "schedule_meaning": {
            "type": "string"
          },
          "work_arrangement": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "work_life_score": {
            "type": "integer"
          },
          "locations": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "properties": {
                "city": {
                  "type": "string"
                },
                "state": {
                  "type": "string"
                },
                "country": {
                  "type": "string"
                },
                "continent": {
                  "type": "string"
                },
                "work_arrangement": {
                  "type": "string"
                },
                "is_primary": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          },
          "salary": {
            "type": [
              "null",
              "object"
            ],
            "properties": {
              "lower": {
                "type": "number",
                "description": "Lower bound of the published pay range in WHOLE currency units (for example 40164 means 40,164 in the stated currency), not pence or cents. Hourly rates can carry decimals."
              },
              "upper": {
                "type": "number",
                "description": "Upper bound of the published pay range in WHOLE currency units (for example 50337 means 50,337 in the stated currency), not pence or cents. Hourly rates can carry decimals."
              },
              "currency": {
                "type": "string",
                "description": "ISO 4217 currency code of the pay range, for example GBP."
              },
              "period": {
                "type": "string",
                "description": "What the pay range is per: year, month, week, day or hour."
              }
            },
            "additionalProperties": false
          },
          "posted_at": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本6 个工具