langchain-carejobs
This package contains the LangChain integration with CareJobs.Now, a free US healthcare job board. It reads the open jobs of more than 2,000 hospitals, health systems, clinic groups and care companies: nurses, CNAs, doctors, NPs and PAs, therapists, imaging and lab techs, pharmacy, caregivers, front office and more.
The tools give a LangChain agent live access to those jobs, their posted pay, the employers and the job-market numbers, through the public CareJobs.Now remote MCP endpoint. No API key or account is needed. Every job in an answer links to its page on CareJobs.Now, where the person applies.
Quick install
pip install langchain-carejobs
Use the tools in an agent
from langchain.agents import create_agent
from langchain_carejobs import CareJobsToolkit
tools = CareJobsToolkit().get_tools()
agent = create_agent(model="claude-sonnet-4-6", tools=tools)
result = agent.invoke(
{
"messages": [
{
"role": "user",
"content": "Find night-shift ICU nursing jobs in Texas that pay at least "
"$45 an hour, and tell me which employers post the most for nurses.",
}
]
}
)
print(result["messages"][-1].content)
Available tools
| Class | Tool name | What it returns |
|---|---|---|
CareJobsSearchJobs |
search_healthcare_jobs |
Open jobs filtered by keyword, kind of job, employer, state, remote only, minimum hourly pay and sort order, with a link to each. |
CareJobsGetPay |
get_healthcare_pay |
The median and typical hourly pay open jobs post, for every kind of job, one kind, one employer, or an employer and a kind. |
CareJobsGetJobMarket |
get_healthcare_job_market |
How many healthcare jobs are open and new this week, by kind of job, state and employer. |
CareJobsGetJobsByState |
get_healthcare_jobs_by_state |
Every state's open jobs, or one state's jobs by kind, pay, towns, employers and newest jobs. |
CareJobsListEmployers |
list_healthcare_employers |
Employers, AI-training programs and job boards by name, kind of care, state or kind of job, with the slugs the other tools take. |
CareJobsGetEmployer |
get_healthcare_employer |
One employer: where it hires, its open jobs by kind, posted pay, newest and best-paid jobs. |
The kind argument takes one of nurses, nurse-practitioners, physicians,
nursing-assistants, caregivers, therapy-rehab, mental-health, pharmacy, imaging, lab,
surgical-techs, emts-paramedics, medical-assistants, dental, admin, allied-health or
ai-training. The state argument takes a two-letter code (TX) or a name (Texas). Employers
are identified by a slug such as kaiser-permanente or by name.
CareJobsToolkit().get_tools() returns all six. Every tool also works on its own:
from langchain_carejobs import CareJobsSearchJobs
tool = CareJobsSearchJobs()
print(tool.invoke({"kind": "nurses", "state": "TX", "query": "ICU", "limit": 5}))
Tools run natively async: use await tool.ainvoke(...).
Summary and structured data
Each tool returns the service's readable summary as the message content. The structured answer
that comes with it is the artifact of the ToolMessage:
message = tool.invoke(
{
"args": {"state": "OH", "kind": "nursing-assistants"},
"id": "1",
"name": "get_healthcare_jobs_by_state",
"type": "tool_call",
}
)
print(message.content) # the readable summary
print(message.artifact) # the structured answer (a dict)
Here tool is a CareJobsGetJobsByState().
Errors
If CareJobs.Now cannot be reached or rejects a request (for example an unknown employer), the tool
returns the service's message to the model, which can correct the call. The tools set
handle_tool_error=True for this. Pass handle_tool_error=False to raise CareJobsError (a
ToolException) instead.
The first request after a quiet period can take up to about 25 seconds while the service wakes. The default timeout is 30 seconds. To wait longer, pass a client:
from langchain_carejobs import CareJobsAPIWrapper, CareJobsToolkit
toolkit = CareJobsToolkit(api_wrapper=CareJobsAPIWrapper(timeout=60))
Notes on the data
- Pay is what employers post, measured from the hourly rates open jobs state, before shift differentials and bonuses.
- Results cover US jobs only.
- Send people to the link in each result to apply. The tools never apply to a job.
Privacy
The tools send only the arguments of each call to https://carejobs.now/api/mcp and store
nothing. See the CareJobs.Now privacy policy and
terms.
Development
uv sync --all-groups
make test # unit tests, network disabled
make integration_tests # standard integration tests against the live API
make lint
Links
- Service: https://carejobs.now
- Source: https://github.com/yumaheymans/langchain-carejobs
- Contact: hello@carejobs.now
- LangChain
Metadata
Release files for langchain-carejobs 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| langchain_carejobs-0.1.0.tar.gz | 17.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_carejobs-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.6 kB
Release files / langchain_carejobs-0.1.0.tar.gz
| Download URL | langchain_carejobs-0.1.0.tar.gz |
|---|---|
| Size | 17.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a2774ece37f466d263bee81eabf120e15253d0001a97f55c03a0952f1711d650
|
|
BLAKE2b-256 checksum How to use checksums |
dc2b47e1642d73f722e2738ffb0b239cb783685f746253140536c3009a66d853
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / langchain_carejobs-0.1.0-py3-none-any.whl
| Download URL | langchain_carejobs-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c41ddf74c65a820dfe3f07d4fe2c5d722e74db582baa8e2a0136dd3d533e63df
|
|
BLAKE2b-256 checksum How to use checksums |
c0a32885cf60605912292657b37d00b7da54fb0b33bde909c0538cf2b91afaec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for langchain-carejobs 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.