Discover/Microsoft API
live

Microsoft APIapply.careers.microsoft.com

Search and retrieve Microsoft job listings by keyword, location, seniority, and more. Get full job descriptions, qualifications, and work-site policy via 2 endpoints.

Endpoint health
verified 6d ago
search_jobs
get_job_details
2/2 passing latest checkself-healing
Endpoints
2
Updated
22d ago

What is the Microsoft API?

The Microsoft Careers API provides 2 endpoints for searching and retrieving job listings directly from Microsoft's official careers portal. Use search_jobs to run full-text queries across titles and descriptions with filters for location, seniority, profession, and work-site policy, and use get_job_details to fetch the complete posting for a specific position — including cleaned description text, raw HTML, qualifications, discipline, role type, and travel requirements.

Try it
Page number (1-based)
Number of results to return per page (max ~100 recommended)
Search keyword(s) for job titles and descriptions
Sort order for results
Location filter (e.g., 'Redmond, WA, United States', 'Remote'). Omitting returns jobs from all locations.
Experience level filter (e.g., 'Senior', 'Mid-Level', 'Entry', 'Manager', 'Director', 'Intern')
Work site filter (e.g., '3 days / week in-office', 'fully on-site', '0 days / week in-office – remote')
Profession filter (e.g., 'product management', 'software engineering')
Employment type filter (e.g., 'full-time', 'internship', 'temp/contract')
api.parse.bot/scraper/7696fb46-41c6-4fc6-ae9f-42e85bf76ca9/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/7696fb46-41c6-4fc6-ae9f-42e85bf76ca9/search_jobs?page=1&limit=5&query=software+engineer&sort_by=timestamp' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace apply-careers-microsoft-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Microsoft Careers Job Search — search, filter, and drill into job details."""
from parse_apis.microsoft_careers_job_search_api import MicrosoftCareers, Sort, JobNotFound

client = MicrosoftCareers()

# Search for software engineering jobs sorted by latest posting date.
for job in client.jobsummaries.search(query="software engineer", sort_by=Sort.TIMESTAMP, limit=3):
    print(job.title, job.department, job.locations)

# Drill into the first result for full description and qualifications.
summary = client.jobsummaries.search(query="data scientist", limit=1).first()
if summary:
    detail = summary.details()
    print(detail.title, detail.employment_type, detail.work_site)
    print(detail.description[:200])

# Fetch a job directly by its position ID.
try:
    job = client.jobs.get(id="1970393556872816")
    print(job.title, job.role_type, job.profession)
except JobNotFound as exc:
    print(f"Position gone: {exc}")

print("exercised: jobsummaries.search / summary.details / jobs.get / JobNotFound catch")
All endpoints · 2 totalmissing one? ·

Full-text search over Microsoft Careers job listings. `query` matches titles and descriptions; `sort_by` orders results by posting date or relevance. Supports filters for location, seniority, work site, profession, and employment type. Paginates via `page` (1-based integer). Returns job summaries with id, title, locations, department, and posting timestamp. Each result carries a position id usable with get_job_details for the full description and qualifications.

Input
ParamTypeDescription
pageintegerPage number (1-based)
limitintegerNumber of results to return per page (max ~100 recommended)
querystringSearch keyword(s) for job titles and descriptions
sort_bystringSort order for results
locationstringLocation filter (e.g., 'Redmond, WA, United States', 'Remote'). Omitting returns jobs from all locations.
senioritystringExperience level filter (e.g., 'Senior', 'Mid-Level', 'Entry', 'Manager', 'Director', 'Intern')
work_sitestringWork site filter (e.g., '3 days / week in-office', 'fully on-site', '0 days / week in-office – remote')
professionstringProfession filter (e.g., 'product management', 'software engineering')
employment_typestringEmployment type filter (e.g., 'full-time', 'internship', 'temp/contract')
Response
{
  "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"
  }
}

About the Microsoft API

Search Microsoft Job Listings

The search_jobs endpoint accepts a query string matched against job titles and descriptions, and returns an array of JobSummary objects. Each summary includes id, job_id, title, locations, standardized_locations, department, posted_timestamp, and created_times. Results paginate via the page (1-based) and limit parameters, and the response always includes total_count and returned_count so you can track pagination state. sort_by accepts timestamp to get the most recently posted roles first, or relevance to rank by query match.

Filtering Options

Beyond keyword search, search_jobs supports several independent filter parameters. location takes a plain-text string such as 'Redmond, WA, United States' or 'Remote'. seniority accepts values like 'Senior', 'Mid-Level', 'Entry', 'Manager', 'Director', or 'Intern'. work_site maps to Microsoft's in-office policy labels — for example '3 days / week in-office' or '0 days / week in-office – remote'. profession accepts category strings like 'software engineering' or 'product management'. All filters are optional and can be combined freely.

Job Detail Retrieval

The get_job_details endpoint takes a position_id (the numeric id field from search_jobs results) and returns the full posting. Response fields include the public url, title, is_hot indicator, locations, role_type, work_site, department, discipline, and both a cleaned text version and raw HTML version of the job description. This gives downstream consumers flexibility to render or index the content as needed.

Coverage and Scope

The API covers active listings on Microsoft's public careers portal at apply.careers.microsoft.com. Listings include roles across Microsoft's global offices and remote positions. The data reflects publicly visible postings and includes structured metadata like posted_timestamp and department, which is useful for tracking hiring trends or building role-monitoring tools.

Reliability & maintenanceVerified

The Microsoft API is a managed, monitored endpoint for apply.careers.microsoft.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when apply.careers.microsoft.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official apply.careers.microsoft.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor new Microsoft engineering roles by polling search_jobs sorted by timestamp and filtering by profession: 'software engineering'
  • Build a remote-job aggregator that filters Microsoft listings using work_site: '0 days / week in-office – remote'
  • Track entry-level and intern openings by setting seniority to 'Entry' or 'Intern' and paginating through results
  • Index full job descriptions from get_job_details for semantic search or LLM-powered job matching
  • Analyze Microsoft's department-level hiring activity using the department and posted_timestamp fields from search_jobs
  • Alert users to new openings in a specific city by setting the location filter to a target metro area
  • Surface is_hot flagged positions for priority display in a job board or recruiting dashboard
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Microsoft have an official developer API for its careers portal?+
Microsoft does not publish a documented public developer API for apply.careers.microsoft.com. There is no official SDK or API key program available for third-party access to job listing data from that portal.
What does `get_job_details` return beyond what `search_jobs` provides?+
get_job_details returns the full job description in both cleaned text and raw HTML, along with qualifications, role_type, discipline, work_site policy detail, and travel requirements. search_jobs summaries only include id, title, locations, department, and timestamp fields — no description content or qualifications.
How does pagination work in `search_jobs`?+
Pagination uses a 1-based page parameter alongside limit (recommended max ~100 per page). The response includes total_count (total matching jobs) and returned_count (jobs in the current response), so you can compute the total number of pages and iterate through them systematically.
Does the API expose application submission or candidate profile data?+
No. The API covers job listing retrieval only — searching listings via search_jobs and fetching posting details via get_job_details. Application submission, candidate profiles, and recruiter-side data are not exposed. You can fork this API on Parse and revise it to add endpoints targeting application-related functionality if it becomes accessible.
Can I filter jobs by multiple locations or multiple seniority levels at once?+
Each filter parameter currently accepts a single value per request. You cannot pass an array of locations or seniority levels in one call. To cover multiple values, you would need to make separate requests for each. You can fork this API on Parse and revise the endpoint to merge or batch those filter combinations.
Page content last updated . Spec covers 2 endpoints from apply.careers.microsoft.com.
Related APIs in JobsSee all →
metacareers.com API
Search and browse Meta job openings across all departments and locations. Filter by keyword, experience level, or role category — including University Graduate and AR/VR specializations — and retrieve comprehensive details for each listing, including job description, requirements, salary range, and application link.
jobs.apple.com API
Search and browse open positions at Apple by keywords, location, and role, then view detailed job descriptions and requirements. Use autocomplete features to quickly find specific locations and job categories that match your career interests.
amazon.jobs API
Search and browse Amazon job openings by keywords, location, and category, then view detailed information about specific positions. Filter results across multiple job categories and locations with easy pagination.
cvshealth.com API
Search and apply for CVS Health job openings across multiple categories, locations, and roles. Filter positions by keyword, category, or location to find relevant opportunities and get direct links to submit your application.
monster.com API
Search and retrieve job listings from Monster.com. Supports keyword and location-based search with structured results including job descriptions, salary ranges, company info, and employment details. Also provides access to popular job categories.
nvidia.wd5.myworkdayjobs.com API
Search and browse current NVIDIA job openings by title, location, and department, then retrieve detailed information about specific positions including requirements and application details. Provides real-time access to available roles across the company.
careers.dhl.com API
Search and filter job listings across DHL Group's global careers portal by keywords, location, and other criteria with easy pagination to browse through results. Find positions matching specific job titles and requirements across multiple searches.
jobs.vodafone.com API
Search and explore current Vodafone job openings, view detailed position information, discover similar roles, and gain insights about career opportunities across the company. Find the total number of available jobs and get relevant data to support your job search and career planning at Vodafone.