Lever ACTION
Get Opportunity
Returns full details for a single opportunity (candidate application) by ID. Use this after Search Opportunities when you need complete candidate data including contact info, stage, notes, and application history. Set expand to inline related objects:
applications for application records, stage for the current stage name, owner for the assigned recruiter, contact for full contact details. The opportunity ID comes from search results or from a webhook payload. Example: call with opportunityId="<id>", expand=["applications","stage"] → returns the full opportunity with the application and stage objects inlined. See the documentation- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Lever account once, then configure and run Get Opportunity from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "lever-get-opportunity",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
lever: { authProvisionId: "apn_xxxxxxx" },
opportunityId: "Opportunity ID",
expand: ["Expand"],
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "lever-get-opportunity",
"configured_props": {
"lever": { "authProvisionId": "apn_xxxxxxx" },
"opportunityId": "Opportunity ID",
"expand": ["Expand"]
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "lever",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "lever-get-opportunity",
arguments: {
opportunityId: "Opportunity ID",
expand: ["Expand"],
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
opportunityId Opportunity ID | string | The ID of the opportunity to retrieve. Use Search Opportunities to find opportunity IDs. Required |
expand Expand | string[] | Inline related objects in the response. Options: applications, stage, owner, followers, sourcedBy, contact, offers. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- lever-get-opportunity
- Version
- 0.0.2
- App
- Lever
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗