Skip to main content

langchain-carejobs

PyPI - Version PyPI - License PyPI - Downloads

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

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)

Source distribution for langchain-carejobs 0.1.0
File Size Uploaded Provenance
langchain_carejobs-0.1.0.tar.gz 17.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for langchain-carejobs 0.1.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page