apply.careers.microsoft.com APIapply.careers.microsoft.com ↗
Search Microsoft job listings by keyword, location, and seniority. Retrieve full job descriptions, qualifications, and work site details via 2 endpoints.
curl -X GET 'https://api.parse.bot/scraper/7696fb46-41c6-4fc6-ae9f-42e85bf76ca9/search_jobs?page=2&limit=5&query=software+engineer' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for job listings on Microsoft Careers with keyword search, location filter, and pagination. Returns job summaries sorted by latest posting date by default.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based) |
| limit | integer | Number of results to return per page (max ~100 recommended) |
| query | string | Search keyword(s) for job titles and descriptions |
| sort_by | string | Sort order: 'timestamp' (latest first) or 'relevance' |
| location | string | Location filter (e.g., 'Redmond, WA, United States', 'Remote'). Omitting returns jobs from all locations. |
| seniority | string | Experience level filter (e.g., 'Senior', 'Mid-Level', 'Entry', 'Manager', 'Director', 'Intern') |
| work_site | string | Work site filter (e.g., '3 days / week in-office', 'fully on-site', '0 days / week in-office – remote') |
| profession | string | Profession filter (e.g., 'product management', 'software engineering') |
| employment_type | string | Employment type filter (e.g., 'full-time', 'internship', 'temp/contract') |
{
"type": "object",
"fields": {
"jobs": "array of job summary objects with id, job_id, title, locations, department, posted_timestamp, and work_location_option",
"page": "integer - current page number",
"limit": "integer - requested results per page",
"total_count": "integer - total number of matching jobs",
"returned_count": "integer - actual number of results returned in this response"
},
"sample": {
"data": {
"jobs": [
{
"id": 1970393556824251,
"url": "https://apply.careers.microsoft.com/careers/job/1970393556824251",
"title": "Senior Software Engineer",
"is_hot": 0,
"job_id": "200030077",
"locations": [
"India, Karnataka, Bangalore"
],
"department": "Software Engineering",
"posted_timestamp": 1778852137,
"created_timestamp": 1772501760,
"work_location_option": "onsite",
"standardized_locations": [
"Bengaluru, KA, IN"
]
}
],
"page": 1,
"limit": 5,
"total_count": 618,
"returned_count": 5
},
"status": "success"
}
}About the apply.careers.microsoft.com API
The Microsoft Careers API provides 2 endpoints for searching and retrieving job listings from apply.careers.microsoft.com. Use search_jobs to query open positions by keyword, location, seniority, profession, or work site arrangement, getting back paginated summaries with job IDs, titles, departments, and posting timestamps. Use get_job_details to fetch the full description, qualifications, role type, and public listing URL for any individual position.
Search Endpoint
The search_jobs endpoint accepts up to eight filter parameters. query matches against job titles and descriptions. location accepts city-level strings like 'Redmond, WA, United States' or 'Remote'. seniority filters by experience level — valid values include 'Senior', 'Mid-Level', 'Entry', 'Intern', 'Manager', and 'Director'. profession narrows by discipline area, such as 'software engineering' or 'product management'. work_site filters by in-office requirements, supporting values like '3 days / week in-office' or '0 days / week in-office – remote'. Results can be sorted by 'timestamp' (default, newest first) or 'relevance'. Each response includes total_count so you can implement pagination using page and limit.
Job Details Endpoint
get_job_details takes a position_id from any search_jobs result and returns the full record for that posting. Response fields include title, locations (array), department, role_type (array), work_site (array), discipline (array), job_id, is_hot, and a direct url to the public listing on Microsoft's careers site. This gives you everything needed to display or analyze a complete job posting.
Coverage and Data Shape
All results reflect publicly listed Microsoft positions. The search_jobs response returns returned_count alongside total_count, so you can detect partial pages and handle multi-page iteration precisely. The limit parameter supports up to approximately 100 results per request. Omitting the location filter returns openings from all geographies that match the other criteria.
- Build a job alert system that polls
search_jobsbyprofessionandseniorityand notifies users when new roles appear. - Aggregate remote Microsoft openings by filtering
work_siteto'0 days / week in-office – remote'. - Populate an internal talent-sourcing dashboard with real-time Microsoft headcount signals from
total_countacross multipleprofessionfilters. - Track hiring velocity by comparing
posted_timestampvalues across weeklysearch_jobssnapshots for a given department. - Build a resume-matching tool that fetches full qualifications text via
get_job_detailsand scores them against candidate profiles. - Filter entry-level and intern openings with
seniorityset to'Entry'or'Intern'for a student job-board integration. - Produce structured datasets of Microsoft job distributions by location using the
locationsarray returned byget_job_details.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Microsoft have an official public API for its careers site?+
What does `get_job_details` return beyond what `search_jobs` provides?+
search_jobs returns summary fields — id, job_id, title, locations, department, posted_timestamp, and work_location_option. get_job_details adds role_type, work_site, discipline, is_hot, a direct url to the listing, and the full job description and qualifications text not present in search results.Can I filter jobs by both location and seniority at the same time?+
search_jobs accepts all filter parameters together — location, seniority, profession, work_site, and query can be combined in a single request. The results are the intersection of all applied filters.Does the API cover application submission or candidate profile data?+
Is there a limit to how many results `search_jobs` can return in one call?+
limit parameter supports up to approximately 100 results per request. For larger result sets, use the page parameter alongside total_count and returned_count in the response to iterate through all matching positions across multiple requests.