About HeadStart Jobs
Search 466k tech jobs read from company career sites; see who is hiring and what roles ask for
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://imposeidon-headstart-search.hf.space/mcpclaude mcp add --transport http sarthakjain004-headstart https://imposeidon-headstart-search.hf.space/mcp{"mcpServers":{"sarthakjain004-headstart":{"type":"http","url":"https://imposeidon-headstart-search.hf.space/mcp"}}}Open in Cursor{"servers":{"sarthakjain004-headstart":{"type":"http","url":"https://imposeidon-headstart-search.hf.space/mcp"}}}Open in VS Code{"mcpServers":{"sarthakjain004-headstart":{"type":"http","url":"https://imposeidon-headstart-search.hf.space/mcp"}}}{"mcpServers":{"sarthakjain004-headstart":{"serverUrl":"https://imposeidon-headstart-search.hf.space/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
7| Parameter | Type | Required | Description |
|---|---|---|---|
| ats | string | No | One ATS, such as greenhouse or workday. |
| page | integer | No | |
| sort | enum | No | salary orders by the low end of each stated range, in salary_currency or else USD. With `query`, any sort orders only the matches scoring at least 0.67 among its 2,000 closest.relevance | posted | first_seen | salary |
| limit | integer | No | |
| query | string | No | The role only. Omit to list the newest jobs. |
| detail | enum | No | full adds the count behind each filter's options, and where every matching job is: the jobs in each country (what `country` would total, a job naming two in both) with its top cities, over the whole match.concise | full |
| remote | boolean | No | Remote jobs only. |
| company | string | No | A company name, matched as the site's company box matches (any company name containing the text), or a Board key from an earlier answer such as 'ashby:openai'. In search_jobs beside `category` it needs a directory company: a key such as 'greenhouse:stripe', or an exact name. |
| country | enum | No | ISO 3166-1 alpha-2 code (US, GB, DE, IN); a country's name or 'UK', 'USA', 'UAE' is read as its code. Matches every way a job's location names the country: its name, states, cities and codes. IN is india_place 'india'.US | IN | GB | CA | SG | DE | CN | AU | PL | MY | PH | ES | MX | NL | IE | AE | TW | JP | PT | RO | BR | EG | SA | FR | IL | VN | ZA | BE | IT | CH | SE | TH | GR | CO | HK | AR | PK | HU | BG | ID | NZ | NG | UA | QA | RS | DK | CZ | AT | CR | KR | LT | FI | NO | TR | LK | CL | PE | LB | LU | KE | CY | SK | MT | JO | PR | UY | EE | LV | HR | PA | AM | TN | DO | GE | SI | GT | KZ | BO | EC | SV | OM | MA | NI | AL | KW | BH | MD | MU | GH | BD | HN | PY | BA | MK | TZ | GY | SR | IQ | DZ | XK | NP | ZM | UG | BZ | KH | IS | BY | RW | ZW | UZ | KY | MV | CI | LY | SY | MM | MG | ET | CM | BS | TO | BN | PG | TT | LI | JM | PS | AZ |
| keyword | string | No | Words the job must contain, each at the start of a word: 'ai' finds AI and AIOps but not Retail, 'java' also finds JavaScript. Put a phrase in double quotes to keep its words together, in order: '"ai engineer"'. In descriptions it can match only jobs with a stored description, and the answer says how many have one. Not for visas or relocation: see `work_authorization`. |
| category | enum | No | A job category, across the whole index or, with `company`, within that company's jobs. A label or close name ('AI/ML') is read as its id.software-engineering | frontend-web | mobile | embedded-firmware | hardware-engineering | qa-test | devops | sre-platform | cloud-infrastructure | security | data-engineering | database-administration | ai-ml-data-science | data-analytics-bi | enterprise-applications | network-engineering | systems-administration-it-operations | it-support | architecture | solutions-engineering | systems-engineering | product-management | program-project-management | engineering-management |
| location | string | No | Text the job's location contains, any country. Accents and a city's other spellings read alike: Zurich finds Zürich, Bangalore finds Bengaluru. |
| max_years | integer | No | The user's own years of experience ('3+ years' is 3): keeps jobs asking for at most this many, and jobs that state no experience (their rows say 'experience not stated'). |
| operators | array | No | Who may post the jobs, as hiring_now labels companies: employer, services (an IT services firm), staffing (an agency posting clients' contracts) or aggregator (a job board re-posting others' jobs). Staffing and aggregator are left out unless named, as on the site's Hiring now tab, or a `company` is named; the answer says how many jobs that left out. Labels come from a curated list: an unlisted company counts as an employer. |
| has_salary | boolean | No | Only jobs that state a salary. |
| keyword_in | enum | No | Where keyword must appear; title by default.title | description | both |
| salary_max | integer | No | Annual; needs salary_currency. Keeps a job whose stated range starts at or below it. |
| salary_min | integer | No | Annual; needs salary_currency (30 lakh = 3000000 INR). Keeps a job whose stated range reaches it; other currencies are converted at fixed rates. |
| similar_to | string | No | A job id from an earlier answer: rank by that job instead of `query`, leaving it out. Not with `query`. |
| india_place | enum | No | An Indian city or region, or 'india' for anywhere in India.india | delhi ncr | bengaluru | hyderabad | pune | chennai | mumbai | gurgaon | noida | kolkata | delhi | ahmedabad | coimbatore | vadodara | indore | chandigarh | thane | jaipur | kochi | bhubaneswar | thiruvananthapuram | surat | faridabad | nagpur | visakhapatnam | vijayawada | mysuru | nashik | goa | ghaziabad | anand | jajpur | meerut | savli | guntur | jammu | madurai | bhopal | jamshedpur | hosur | bharuch | shahjahanpur | lucknow | sikkim | tiruchirappalli | gandhinagar | halol | palghar | aurangabad | jalandhar | vellore | rajkot | mangaluru | kozhikode | jodhpur | patna | ludhiana | raipur | anakapalli | belagavi | puducherry | kanpur | ranchi | dehradun | amritsar | tirupati | udaipur | guwahati | srinagar | baddi |
| per_company | integer | No | With `query` or `similar_to` and sort relevance: at most this many rows of one company, besides a listed posting's copy on another of its Boards, before every other company's; its others follow them, and the answer says how many. 0 lists the ranking as it is. Not applied with `company`. |
| max_age_days | integer | No | Leaves out postings older than this many days: the posted date, else the day HeadStart first saw the job. 365 unless sent; 0 for any age. |
| employment_type | enum | No | full-time also keeps jobs whose source states no type; part-time, contract and internship keep only jobs that say so.full-time | part-time | contract | internship |
| exclude_company | string | No | Leaves out every job whose company name contains this text, such as the employer of a `similar_to` job. |
| salary_currency | string | No | ISO 4217 code, such as USD, INR, EUR, GBP. |
| include_non_tech | boolean | No | Also list the jobs HeadStart's classifier is confident are not tech (a store cashier, a plant's process engineer), which are left out unless this is true, as the site leaves them out unless its 'Include non-tech roles' switch is on. The answer says how many were left out. Send it for a role the user really wants that is not software or tech. |
| posted_within_days | integer | No | Posted by the employer within this many days. |
| work_authorization | enum | No | Use this, not `keyword`, for visa sponsorship or relocation: a description that mentions sponsorship usually refuses it. offers_sponsorship: the description offers this job visa sponsorship and nothing in it refuses or hedges it; an offer limited to another country than the job's (or a move to another country's city), to levels above its title, or to full-time roles on an internship, does not count. may_offer_sponsorship: those jobs, plus the ones whose offer is hedged ('not guaranteed', 'not for every role', 'case by case', 'may be available', 'if possible', 'subject to approval', 'only if already based in'), is a visa transfer only, or names a country or level the job's place or title does not show; each row says which kind it is, so say it. refuses_sponsorship: it refuses sponsorship ('now or in the future', 'Visa Sponsorship: No'), requires citizenship of this job or work authorisation already held, or offers it only to another country or level; offers_relocation: it offers relocation help. Text-derived, not a field the employer set: HeadStart's rules (headstart.jobs.work_authorization) read each sponsorship, citizenship and relocation sentence with its negation, and read an offer against the job's place, title and type. Of 50 offers_sponsorship jobs drawn from the live index after the rules froze (ADR-0368; 25 in the US, 25 elsewhere, at most 5 a company), read strictly, 47 (0.94) offered this job sponsorship firmly and all 50 at least may; the 0.98 to 0.99 precision on 1,062 hand-read descriptions (ADR-0333 to ADR-0368) is on the rules' own tuning set. Before telling a user a job sponsors visas, read its sponsorship sentences with get_job. A posting without a description never matches.offers_sponsorship | may_offer_sponsorship | refuses_sponsorship | offers_relocation |
| first_seen_within_hours | integer | No | New to HeadStart within this many hours. |
| required_years_at_least | integer | No | A floor on the job's required experience, not the user's: keeps jobs asking for at least this many years ('roles needing 8+ years' is 8), as stated or else estimated from the title's seniority. Jobs whose experience is unknown are left out. |
Details
The maintainer has not added details yet. Check the README in the repository.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.