Resume leads

Signs a form the careers page posts one resume through, into the brand org's private careers bucket, and answers the key to name on the application (resume_file).

POST /v1/marketing/leads/resume

Addresshttps://api.hanzo.ai/v1/marketing/leads/resume
MethodPOST
Operationpost_marketing_leads_resume
AuthAuthorization: Bearer $HANZO_API_KEY

Signs a form the careers page posts one resume through, into the brand org's private careers bucket, and answers the key to name on the application (resume_file). PUBLIC like the form itself: each caller is limited to ten an hour, a file that is not a PDF, DOC or DOCX of at most 10 MB is refused 400, and a deployment that cannot sign one answers 503.

Request

3 fields, body application/json (required).

FieldInTypeRequiredDescription
namebodystring—Name is the file's name; its extension must be .pdf, .doc or .docx.
sizebodyinteger (int64)—Size is the file's size in bytes, at most 10 MB.
typebodystring—Type is the file's content type, which must be that extension's.

Response

StatusBodyMeaning
200marketing.ResumeFormok
defaultproblem-detailsrefused

200 body — 5 fields.

FieldInTypeAlwaysDescription
expirybodyinteger (int64)—Expiry is how long the form is good for, in seconds.
fieldsbodyobject—Fields go in the form ahead of the file, exactly as given.
fields.*bodystring—
keybodystring—Key is the object the file becomes, to name as the application's resume_file.
urlbodystring—URL is where the form posts.

Failure carries the platform error shape — see Errors.

Examples

hanzo marketing leads resume
import { Configuration, MarketingApi } from 'hanzoai';

const api = new MarketingApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postMarketingLeadsResume({ name: "<name>", size: 0 });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import MarketingApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = MarketingApi(client).post_marketing_leads_resume(name="<name>", size=0)
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.MarketingAPI.PostMarketingLeadsResume(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, marketing_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = marketing_api::post_marketing_leads_resume(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.MarketingApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new MarketingApi(client).postMarketingLeadsResume();
curl -X POST https://api.hanzo.ai/v1/marketing/leads/resume \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "name": "<name>",
       "size": 0
     }'

MCP reaches marketing through the marketing tool, which names its 82 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_marketing_audiences"
         }
       }
     }'

Marketing API · All Hanzo APIs · Interactive reference

Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.