Search scam-scored hiring posts from Reddit's job subreddits: freelance, remote and contract work.
Maintained by@hassanaziz0012(verified)Also a maintainer?
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
One job's full details: summary, pay, skills, languages, test task, how to apply, the opening of the post, and its scam score with the red flags behind it. Also answers "is this Reddit job post a scam?" for a post on the board.
The job's ID from search_jobs, its Only Hiring link, or a link to the Reddit post.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http only-hiring https://onlyhiring.hassandev.me/mcp
One job's full details: summary, pay, skills, languages, test task, how to apply, the opening of the post, and its scam score with the red flags behind it. Also answers "is this Reddit job post a scam?" for a post on the board.
| Argument | Type | Description |
|---|---|---|
| id* | string | The job's ID from search_jobs, its Only Hiring link, or a link to the Reddit post. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 300,
"description": "The job's ID from search_jobs, its Only Hiring link, or a link to the Reddit post."
}
}
}The subreddits Only Hiring reads, with how many open jobs each has and what gets posted there. Use a name as search_jobs' subreddit filter.
No arguments.
{
"type": "object",
"properties": {}
}Search current hiring posts from Reddit's job subreddits, newest first. With no filters, returns the newest open jobs. Each result has pay, type, location, skills, any scam warning, the Only Hiring link and the Reddit link to apply.
| Argument | Type | Description |
|---|---|---|
| role | array | Any of these role categories. |
| limit | integer | Most jobs to return, newest first. |
| query | string | Words to look for in the job title, summary, skills and role, e.g. "python scraper". Every word must match. |
| region | string | A country or region the user is in, e.g. "Canada" or "EU". Keeps remote jobs open worldwide or to that region, and jobs located there. |
| skills | array | Skills the job must list, e.g. ["React", "TypeScript"]. Every skill must match one of the job's skills. |
| min_pay | number | Lowest acceptable pay in pay_type units, e.g. 40 with pay_type hourly for $40/hr. Compared with the top of each job's stated range; jobs that state no amount are left out. |
| currency | string | ISO currency code that min_pay is in. Only jobs paying in this currency pass a min_pay filter. |
| pay_type | string | How the job pays. Required with min_pay. Any of: hourly (Hourly), daily (Daily), weekly (Weekly), monthly (Monthly), yearly (Yearly), fixed_project (Fixed price), per_unit (Per piece), commission_only (Commission only), equity_or_revenue_share (Equity / revenue share). |
| subreddit | string | Only jobs from this subreddit, e.g. "forhire". See list_subreddits. |
| work_mode | array | Any of: remote, hybrid, onsite. |
| max_scam_score | number | Highest scam score to include, 0–1. Defaults to leaving out likely scams (0.6 or more). Use 0.39 for only jobs without a warning. |
| employment_type | array | Any of: full_time (Full-time), part_time (Part-time), contract (Contract), freelance_project (Freelance project), internship (Internship). |
| posted_within_days | integer | Only jobs posted in the last N days, up to 60. The board treats jobs older than 14 days as likely filled. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"role": {
"type": "array",
"items": {
"enum": [
"software_engineering",
"web_development",
"mobile_development",
"data_ml_ai",
"devops_it",
"qa_testing",
"game_development",
"design",
"art_illustration",
"video_animation",
"audio_music_voice",
"writing_content",
"marketing_seo",
"sales_business_development",
"virtual_assistant_admin",
"customer_support",
"finance_accounting",
"education_tutoring",
"other"
],
"type": "string"
},
"description": "Any of these role categories."
},
"limit": {
"type": "integer",
"default": 15,
"maximum": 50,
"minimum": 1,
"description": "Most jobs to return, newest first."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Words to look for in the job title, summary, skills and role, e.g. \"python scraper\". Every word must match."
},
"region": {
"type": "string",
"maxLength": 60,
"description": "A country or region the user is in, e.g. \"Canada\" or \"EU\". Keeps remote jobs open worldwide or to that region, and jobs located there."
},
"skills": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 10,
"description": "Skills the job must list, e.g. [\"React\", \"TypeScript\"]. Every skill must match one of the job's skills."
},
"min_pay": {
"type": "number",
"description": "Lowest acceptable pay in pay_type units, e.g. 40 with pay_type hourly for $40/hr. Compared with the top of each job's stated range; jobs that state no amount are left out.",
"exclusiveMinimum": 0
},
"currency": {
"type": "string",
"default": "USD",
"maxLength": 3,
"minLength": 3,
"description": "ISO currency code that min_pay is in. Only jobs paying in this currency pass a min_pay filter."
},
"pay_type": {
"enum": [
"hourly",
"daily",
"weekly",
"monthly",
"yearly",
"fixed_project",
"per_unit",
"commission_only",
"equity_or_revenue_share"
],
"type": "string",
"description": "How the job pays. Required with min_pay. Any of: hourly (Hourly), daily (Daily), weekly (Weekly), monthly (Monthly), yearly (Yearly), fixed_project (Fixed price), per_unit (Per piece), commission_only (Commission only), equity_or_revenue_share (Equity / revenue share)."
},
"subreddit": {
"type": "string",
"maxLength": 40,
"description": "Only jobs from this subreddit, e.g. \"forhire\". See list_subreddits."
},
"work_mode": {
"type": "array",
"items": {
"enum": [
"remote",
"hybrid",
"onsite"
],
"type": "string"
},
"description": "Any of: remote, hybrid, onsite."
},
"max_scam_score": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Highest scam score to include, 0–1. Defaults to leaving out likely scams (0.6 or more). Use 0.39 for only jobs without a warning."
},
"employment_type": {
"type": "array",
"items": {
"enum": [
"full_time",
"part_time",
"contract",
"freelance_project",
"internship"
],
"type": "string"
},
"description": "Any of: full_time (Full-time), part_time (Part-time), contract (Contract), freelance_project (Freelance project), internship (Internship)."
},
"posted_within_days": {
"type": "integer",
"default": 14,
"maximum": 60,
"minimum": 1,
"description": "Only jobs posted in the last N days, up to 60. The board treats jobs older than 14 days as likely filled."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 7, 2026.
What changed in this server's tools since we started watching, newest first. Each change is scanned again.