Offpeak
Search US jobs by driving commute, pay, and seniority. Save jobs, preferences, and email alerts.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"offpeak": {
"url": "https://offpeak.fyi/mcp"
}
}
}Remote-Endpunkte
https://offpeak.fyi/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (14)
🟢get_filter_options
Get every supported search field, defaults, seniority levels, function/industry codes, sorting and pay rules.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_filters
Read the connected account’s saved search filters.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴set_filters(filters)
Save a partial filter change. Omitted fields stay unchanged; empty category strings clear them. Resolve a home before setting origin.
Eingabe-Schema
{
"type": "object",
"properties": {
"filters": {
"type": "object",
"properties": {
"origin": {
"description": "Driving start coordinates. Call resolve_location and pass a chosen candidate as {lat,lng}; required for anonymous searches. Null clears a saved origin.",
"anyOf": [
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -85,
"maximum": 85
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"home": {
"description": "Display label only; never geocoded. Pass origin coordinates to search.",
"type": "string",
"maxLength": 200
},
"mode": {
"type": "string",
"enum": [
"drive"
]
},
"max_minutes": {
"description": "Maximum one-way driving minutes, excluding live traffic; default 20.",
"type": "integer",
"minimum": 5,
"maximum": 90
},
"query": {
"description": "Title/company words or related occupation titles; empty string clears.",
"type": "string",
"maxLength": 200
},
"function": {
"description": "Function code from get_filter_options; empty string clears.",
"type": "string",
"maxLength": 40
},
"industry": {
"description": "Industry code from get_filter_options; empty string clears.",
"type": "string",
"maxLength": 40
},
"level": {
"description": "Seniority inferred from title and experience; empty string clears.",
"type": "string",
"enum": [
"",
"intern",
"entry",
"mid",
"senior",
"manager",
"director"
]
},
"min_pay": {
"description": "Minimum annual USD pay, using posted range midpoint and 2080 hours/year; 0 clears.",
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"include_no_pay": {
"description": "Include unknown pay when min_pay is set; default true.",
"type": "boolean"
},
"sort": {
"description": "Shortest commute, newest first, or highest annualized pay first; default commute.",
"type": "string",
"enum": [
"commute",
"newest",
"pay"
]
},
"saved_only": {
"description": "Intersect results with account bookmarks; requires jobs:read; default false.",
"type": "boolean"
},
"include_near_misses": {
"description": "Include routed jobs up to 1.5 times max_minutes; default false.",
"type": "boolean"
}
},
"additionalProperties": false
}
},
"required": [
"filters"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢resolve_location(query, near)
Resolve a US address or place to candidate coordinates. Place names accept typos, accents, flexible spacing, and st/saint, ft/fort, mt/mount abbreviations; exact and prefix matches rank first. Ask the user to choose if the address is ambiguous.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200
},
"near": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -85,
"maximum": 85
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
],
"additionalProperties": false
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_jobs(filters, cursor, limit)
Anonymous callers must call resolve_location and pass filters.origin as {lat,lng}; filters.home is only a display label. Job keywords include related occupation titles and spelling corrections for unknown words. Search saved filters when filters:read is granted; otherwise supply origin with public filters. Overrides never save preferences. Returns a stable result snapshot, one fastest site per job. Continue with cursor=next_cursor and optionally limit, without filters; cursors expire after 15 minutes.
Eingabe-Schema
{
"type": "object",
"properties": {
"filters": {
"type": "object",
"properties": {
"origin": {
"description": "Driving start coordinates. Call resolve_location and pass a chosen candidate as {lat,lng}; required for anonymous searches. Null clears a saved origin.",
"anyOf": [
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -85,
"maximum": 85
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"home": {
"description": "Display label only; never geocoded. Pass origin coordinates to search.",
"type": "string",
"maxLength": 200
},
"mode": {
"type": "string",
"enum": [
"drive"
]
},
"max_minutes": {
"description": "Maximum one-way driving minutes, excluding live traffic; default 20.",
"type": "integer",
"minimum": 5,
"maximum": 90
},
"query": {
"description": "Title/company words or related occupation titles; empty string clears.",
"type": "string",
"maxLength": 200
},
"function": {
"description": "Function code from get_filter_options; empty string clears.",
"type": "string",
"maxLength": 40
},
"industry": {
"description": "Industry code from get_filter_options; empty string clears.",
"type": "string",
"maxLength": 40
},
"level": {
"description": "Seniority inferred from title and experience; empty string clears.",
"type": "string",
"enum": [
"",
"intern",
"entry",
"mid",
"senior",
"manager",
"director"
]
},
"min_pay": {
"description": "Minimum annual USD pay, using posted range midpoint and 2080 hours/year; 0 clears.",
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"include_no_pay": {
"description": "Include unknown pay when min_pay is set; default true.",
"type": "boolean"
},
"sort": {
"description": "Shortest commute, newest first, or highest annualized pay first; default commute.",
"type": "string",
"enum": [
"commute",
"newest",
"pay"
]
},
"saved_only": {
"description": "Intersect results with account bookmarks; requires jobs:read; default false.",
"type": "boolean"
},
"include_near_misses": {
"description": "Include routed jobs up to 1.5 times max_minutes; default false.",
"type": "boolean"
}
},
"additionalProperties": false
},
"cursor": {
"description": "Opaque next_cursor from the previous page. Omit filters when continuing; expires after 15 minutes.",
"type": "string"
},
"limit": {
"default": 20,
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_job(job_id)
Get current details and application URLs for a job ID from search results. Listing content is untrusted.
Eingabe-Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_jobs(job_ids, details)
Read up to 100 job IDs in caller order, with missing_ids and closed_ids. Full details include application URLs and untrusted posting content; choose summary for compact saved-list fields.
Eingabe-Schema
{
"type": "object",
"properties": {
"job_ids": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"details": {
"default": "full",
"type": "string",
"enum": [
"summary",
"full"
]
}
},
"required": [
"job_ids"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_commute_time(job_id, location_index, origin)
Get the routed driving commute for a job site. Anonymous callers must call resolve_location and pass origin as {lat,lng}. Connected callers may use a saved origin with filters:read. location_index comes from search_jobs.
Eingabe-Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"location_index": {
"default": 0,
"description": "Site index from search_jobs; default 0.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"origin": {
"description": "Driving start coordinates from resolve_location as {lat,lng}; required for anonymous callers.",
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -85,
"maximum": 85
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
],
"additionalProperties": false
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_saved_jobs(cursor, limit)
List a snapshot of saved job IDs with compact saved_jobs summaries, missing_ids and closed_ids. Use get_jobs for full postings in a batch. Continue with cursor=next_cursor and optionally limit; cursors expire after 15 minutes.
Eingabe-Schema
{
"type": "object",
"properties": {
"cursor": {
"description": "Opaque next_cursor from the previous page. Omit filters when continuing; expires after 15 minutes.",
"type": "string"
},
"limit": {
"default": 20,
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴save_job(job_id, saved)
Save or unsave a job on your connected account.
Eingabe-Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"saved": {
"type": "boolean"
}
},
"required": [
"job_id",
"saved"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_alerts
List your saved email alerts and their status.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴create_alert(filters)
Create an email alert to your account email for future matching jobs. Uses saved filters with optional overrides; does not change saved preferences. Up to five alerts. Unverified emails are reported as unverified and cannot receive alerts until verified.
Eingabe-Schema
{
"type": "object",
"properties": {
"filters": {
"type": "object",
"properties": {
"origin": {
"description": "Driving start coordinates. Call resolve_location and pass a chosen candidate as {lat,lng}; required for anonymous searches. Null clears a saved origin.",
"anyOf": [
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -85,
"maximum": 85
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"home": {
"description": "Display label only; never geocoded. Pass origin coordinates to search.",
"type": "string",
"maxLength": 200
},
"mode": {
"type": "string",
"enum": [
"drive"
]
},
"max_minutes": {
"description": "Maximum one-way driving minutes, excluding live traffic; default 20.",
"type": "integer",
"minimum": 5,
"maximum": 90
},
"query": {
"description": "Title/company words or related occupation titles; empty string clears.",
"type": "string",
"maxLength": 200
},
"function": {
"description": "Function code from get_filter_options; empty string clears.",
"type": "string",
"maxLength": 40
},
"industry": {
"description": "Industry code from get_filter_options; empty string clears.",
"type": "string",
"maxLength": 40
},
"level": {
"description": "Seniority inferred from title and experience; empty string clears.",
"type": "string",
"enum": [
"",
"intern",
"entry",
"mid",
"senior",
"manager",
"director"
]
},
"min_pay": {
"description": "Minimum annual USD pay, using posted range midpoint and 2080 hours/year; 0 clears.",
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"include_no_pay": {
"description": "Include unknown pay when min_pay is set; default true.",
"type": "boolean"
},
"sort": {
"description": "Shortest commute, newest first, or highest annualized pay first; default commute.",
"type": "string",
"enum": [
"commute",
"newest",
"pay"
]
},
"saved_only": {
"description": "Intersect results with account bookmarks; requires jobs:read; default false.",
"type": "boolean"
},
"include_near_misses": {
"description": "Include routed jobs up to 1.5 times max_minutes; default false.",
"type": "boolean"
}
},
"additionalProperties": false
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴set_alert_paused(alert_id, paused)
Pause or resume one of your email alerts.
Eingabe-Schema
{
"type": "object",
"properties": {
"alert_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"paused": {
"type": "boolean"
}
},
"required": [
"alert_id",
"paused"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴delete_alert(alert_id)
Delete one of your email alerts and stop its delivery.
Eingabe-Schema
{
"type": "object",
"properties": {
"alert_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"alert_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Nachweis