USAJOBS (OPM) MCP for AI. Find or analyze any federal job listing.
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
USAJOBS (OPM) MCP Server lets your AI agent access and analyze federal job postings directly from USAJOBS. Use `search_jobs` to find currently open roles by keyword, location, or category.
Pull historical data with `get_historic_joas` for trend analysis, or use `get_code_list` to validate occupational series codes before running a search.
What your AI can do
Get announcement text
Retrieves the full, long-form text details for any current or past job posting (JOA).
Get code list
Returns a list of valid values and codes needed to correctly filter search results.
Get historic joas
Pulls bulk data of past job announcements, supporting pagination via continuation tokens for large datasets.
Find currently open federal roles by filtering criteria like keywords, location, or job category using search_jobs.
Fetch the detailed text for a specific job announcement, including full summaries and qualification requirements, with get_announcement_text.
Pull bulk data of past and present JOAs using get_historic_joas, allowing for trend analysis across time periods.
Get a list of valid codes—like occupational series or pay plan IDs—needed to refine search filters precisely with get_code_list.
Ask an AI about this
Waiting for input…
USAJOBS (OPM) MCP Server: 4 Tools for Job Data Retrieval
These four tools let your agent search live jobs, pull historical records, get detailed text, and validate federal codes from the USAJOBS database.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using USAJOBS (OPM) on VinkiusGet Announcement Text
Retrieves the full, long-form text details for any current or past job posting (JOA).
Get Code List
Returns a list of valid values and codes needed to correctly filter search results.
Get Historic Joas
Pulls bulk data of past job announcements, supporting pagination via continuation...
Search Jobs
Searches for currently open federal jobs on USAJOBS using filters like keyword...
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with USAJOBS (OPM), then connect any of our 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by USAJOBS. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This connection provides 4 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Sifting through federal job boards manually is a nightmare.
Right now, finding specific jobs means bouncing between the main search page and dozens of filter menus. You're copying keywords into one box, selecting codes from another dropdown, then clicking submit, only to find out you need a different code for that salary band. It’s tedious, time-consuming, and error-prone.
With this MCP server, your agent handles the whole process in natural chat. You tell it: 'Find me mid-level IT jobs near DC with a minimum pay grade of GS-12.' It runs `get_code_list` internally to validate parameters, executes `search_jobs`, and gives you the results—no manual clicking required.
Using USAJOBS (OPM) MCP Server: Get Data You Need.
Today, if you want to know how many jobs were posted last quarter for a certain category, you have to manually bookmark and visit archive pages, scraping data piece by piece. It's impossible to build a reliable trend report that way.
Now, simply ask your agent to run `get_historic_joas`. The server pulls the raw bulk records—the full dataset—and dumps it directly into your workflow. You get the data you need without touching an archive page.
What your AI can actually do with this
Your AI client connects straight to the official USAJOBS database, giving your agent direct access to federal job postings and personnel data. You don't gotta leave your chat window to dig into the federal hiring ecosystem.
When you’re ready to work, you first need to nail down your search parameters. Before running a main query, run get_code_list to pull a list of valid codes for occupational series, agency subelements, and pay plans. This step ensures your filters are precise; you won't waste time searching with bad data.
Once you have those codes validated, you can use search_jobs. This tool lets you find currently open roles by filtering multiple criteria: keywords, specific geographic locations, job categories, or defined hiring paths like Veterans and students. It pulls live announcements for federal jobs on USAJOBS.
To truly understand what a role entails, you need the full text. Use get_announcement_text to fetch the detailed, long-form text for any specific Job Announcement (JOA), whether it's current or historical. This gives you the complete picture—the summary, every required qualification, and the specific duties of the job.
When you need big-picture data, look at trends over time. You can pull bulk records using get_historic_joas. This tool provides access to a massive dataset of past JOAs, making it perfect for deep trend analysis across different periods. Because this volume of data is huge, the tool supports pagination through continuation tokens, letting you grab entire datasets without running into limits.
So, you use get_code_list first to validate your search codes; then you fire up search_jobs to find current openings. If you nail down a specific posting from those results, you run get_announcement_text to read the fine print. And if you're doing research on federal hiring patterns, get_historic_joas pulls all the necessary bulk data.
019e3904-1a5e-71eb-b7bc-79960239422b Here's how it actually works
The bottom line is: You configure your access credentials once, then let your AI client run specific tools to get structured data from federal records.
Subscribe to the USAJOBS (OPM) MCP Server and provide your required USAJOBS API Key and User Agent email.
Direct your AI agent to run get_code_list first. This retrieves valid codes for filtering searches, ensuring you don't use outdated parameters.
Use search_jobs, supplying the validated code list alongside keywords and locations. The agent returns a filtered list of live job announcements.
Who is this actually for?
Anyone dealing with the public sector job market. If you spend time comparing career paths or crunching numbers on government hiring trends, this is for you. Stop manually navigating complex USAJOBS filters; let your agent do it.
You use search_jobs to find specific federal roles that match your skills and location without getting lost in the site's manual filter menus.
You run searches combined with get_code_list to help clients identify accurate federal career paths and understand exact qualification requirements.
You rely on get_historic_joas and get_announcement_text to pull massive datasets for trend analysis or research into specific occupational series data.
What Changes When You Connect
Finding Jobs: Use search_jobs to quickly filter live, active listings by keywords and location. You bypass the complicated manual search forms entirely.
Deep Dive Analysis: When you find a promising role, use get_announcement_text. It pulls the full job description—duties, qualifications, everything—in one shot.
Historical Trends: Need to see how many jobs were posted for 'Data Analyst' in 2018 vs. 2023? Run get_historic_joas and analyze the raw data without manual scraping.
Precise Filtering: Don't guess at codes. Call get_code_list first. It gives you valid occupational series and pay plan IDs, making your searches accurate every time.
Time Savings: Instead of jumping between USAJOBS search pages and documentation guides, your agent handles the whole process in natural conversation.
See it in action
Finding a Role Match
A job seeker needs to find active Software Engineer roles near Boston. Instead of typing complex filters on the USAJOBS site, they ask their agent to search_jobs with 'Software Engineer' and 'Boston'. The agent returns 15 current listings instantly.
Researching Career Paths
A counselor wants to show a client the typical requirements for an IT role. They first use get_code_list to validate the series code, then run search_jobs, and finally pass the resulting Job ID to get_announcement_text to get the full duties list.
Analyzing Department Spending
A data analyst needs to know the volume of hiring for specific departments over five years. They use get_historic_joas repeatedly, calling it with continuation tokens until all available records are retrieved for their analysis.
Verifying Data Integrity
A power user wants to ensure they are searching using the most current classification system. Before running search_jobs, they call get_code_list just to validate that the pay plan codes and occupational series IDs haven't changed.
The honest tradeoffs
Confusing search types
Asking 'What jobs were available last year?' and expecting a live list. search_jobs only finds current openings.
To look at past data, you must use the dedicated historical tool: get_historic_joas. That's for bulk records; search_jobs is strictly for active listings.
Using outdated codes
Trying to filter by a pay plan ID you remembered from three years ago. This will fail or return garbage data.
Always call get_code_list first. It ensures the agent uses only valid, current values for any filtering parameter.
Missing job details
Getting a list of 10 jobs from a search but not knowing the specific duties required for one of them.
Get the Job Announcement ID first. Then, pass that ID to get_announcement_text to pull the complete, detailed text and qualification summary.
When It Fits, When It Doesn't
Use this server if your task involves structured querying or large-scale data extraction from federal government job listings. If you need to find active jobs, use search_jobs. If you're building a dataset of past hiring activity for analysis, stick to get_historic_joas and get_announcement_text. Don't confuse the two.
Do NOT use this server if: 1) You need real-time human interaction (e.g., talking to an HR representative). 2) Your data source is non-federal, or you are looking for private sector listings—you'll need a different category of search tool. If your only goal is just general reading and you don't need structured filtering, you might be fine with manual browsing, but if accuracy matters, use this MCP Server.
Questions you might have
How do I search for jobs using the USAJOBS (OPM) MCP Server? +
Run search_jobs. This tool lets your agent filter live job announcements by keywords, location, and category. It's the main entry point for finding active roles.
What is the difference between `get_announcement_text` and `search_jobs`? +
search_jobs gives you a list of titles and brief summaries from currently open jobs. You must use get_announcement_text to get the full, detailed text for any specific job ID.
Can I analyze old federal hiring data with USAJOBS (OPM) MCP Server? +
Yes. Use get_historic_joas. This tool retrieves bulk records of past Job Announcements, allowing you to study trends over time.
Do I need to use `get_code_list` before running a search? +
It's best practice. Running get_code_list first validates the specific codes (like pay plans) you plan to use, ensuring your search criteria are accurate and current.
How do I use `get_code_list` to refine my search criteria? +
You run get_code_list first, which retrieves valid codes and values for filtering results. This gives you the specific occupational series or pay plan IDs needed to make your search_jobs query highly targeted.
What is the difference between using `get_historic_joas` and `get_announcement_text`? +
get_historic_joas pulls bulk data for many past job announcements, supporting pagination via a continuation token. You use get_announcement_text when you need the full text of one specific JOA ID.
Does this server handle rate limits or throttling during large data retrievals? +
The connection handles standard API rate limiting, but for bulk historical analysis using get_historic_joas, you should implement backoff logic. The tool documentation provides specific guidelines on managing call frequency.
What information does the USAJOBS (OPM) MCP Server require to connect and authenticate? +
You must provide a valid USAJOBS API Key and your User Agent, which is typically an email address. These credentials authorize access to the live federal hiring database.
How can I filter jobs by a specific location and salary range? +
Use the search_jobs tool. You can provide parameters like LocationName (e.g., 'Washington, DC') and RemunerationMinimumAmount to narrow down the results to your specific needs.
Where can I find the full description of duties for a job posting? +
The get_announcement_text tool is designed specifically for this. By providing the announcement number, the agent will retrieve the full text for Summary, Duties, and Qualifications.
How do I know which codes to use for occupational series like IT or Engineering? +
You can use the get_code_list tool with the endpoint 'occupationalseries'. This will return a list of all valid codes and their corresponding titles (e.g., 2210 for Information Technology).
We've already built the connector for USAJOBS (OPM). Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 4 tools are live and waiting.
You're up and running in seconds.
Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.
Built, hosted, and secured by Vinkius. You just connect and go.