Lever ACTION
Download Opportunity Files
Downloads one or more candidate documents — résumés/CVs, other attached files, and/or offer documents — and saves them to the local file system for use in a later step. Use this when asked to download, export, or retrieve the actual files (not just their metadata). Set
resources to the document types to pull from: resumes (CVs/résumés), files (other attachments), offers (offer documents). You can select more than one to grab everything at once. By default it downloads all matching documents of the selected types for the opportunity; narrow the set with fileNameContains (case-insensitive name/extension filter) and/or itemIds (specific document ids from List Opportunity Items). Use Search Opportunities to find the opportunity ID. Each file is saved to the temporary directory; the action exports file_paths and returns a files array (each with resource, id, name, file_path). Documents that fail to download are reported in errors rather than aborting the batch. Example: to get a candidate's CV and any other documents, call with opportunityId="<id>", resources=["resumes","files"] → downloads every résumé and file and exports their paths. Add fileNameContains=".pdf" to limit to PDFs. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Lever account once, then configure and run Download Opportunity Files 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-download-opportunity-files",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
lever: { authProvisionId: "apn_xxxxxxx" },
opportunityId: "Opportunity ID",
resources: ["Document Types"],
},
})
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-download-opportunity-files",
"configured_props": {
"lever": { "authProvisionId": "apn_xxxxxxx" },
"opportunityId": "Opportunity ID",
"resources": ["Document Types"]
}
}'// 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-download-opportunity-files",
arguments: {
opportunityId: "Opportunity ID",
resources: ["Document Types"],
},
})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 whose documents to download. Use Search Opportunities to find opportunity IDs. Required |
resources Document Types | string[] | Which document types to download from (one or more of resumes, files and offers) Required |
fileNameContains File Name Contains | string | Only download documents whose file name contains this text (case-insensitive). Matches extensions too, e.g. .pdf. Omit to download all. Optional |
itemIds Document IDs | string[] | Restrict to these specific document ids (across the selected types). Use List Opportunity Items to find ids. Omit to download all matching documents. Optional |
syncDir SyncDir | dir | 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-download-opportunity-files
- Version
- 0.0.2
- App
- Lever
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗