# Models

## The ApiResponse object

```json
{"openapi":"3.1.0","info":{"title":"Web3.career Jobs API","version":"1.0"},"components":{"schemas":{"ApiResponse":{"type":"array","description":"Top-level response array containing mixed types. The structure is typically\n`[string, string, Job[]]` — two metadata strings followed by the jobs array.\n**Extract jobs by finding the first element that is itself an array.**\nIn some cases the root array may directly contain job objects (fallback).\n","items":{"oneOf":[{"type":"string","description":"Metadata string (e.g., status or version identifier)"},{"type":"array","description":"The actual array of job listing objects","items":{"$ref":"#/components/schemas/Job"}}]}},"Job":{"type":"object","description":"A single Web3 job listing.","properties":{"id":{"type":"string","description":"Unique job identifier."},"title":{"type":"string","description":"Job title."},"company":{"type":"string","description":"Hiring company name."},"location":{"type":"string","description":"Job location (e.g., \"Remote\", \"New York, US\", \"Berlin, Germany\")."},"remote":{"type":"boolean","description":"Whether the position is fully remote."},"description":{"type":"string","description":"Full job description. **May contain raw HTML markup** (`<p>`, `<ul>`, `<li>`,\n`<strong>`, `<br>`, etc.). Strip HTML tags if you need plain text. Absent when\n`show_description=false` is set on the request.\n"},"tags":{"type":"array","description":"Skill and technology tags associated with the job.","items":{"type":"string"}},"apply_url":{"type":"string","format":"uri","description":"Application URL with embedded tracking parameters. **This is the primary link\nyou must use when directing users to a job.** Do not append query parameters\n(utm_source, utm_medium, ref, etc.) — they are already included. Links must\nuse rel=\"follow\" or have no rel attribute. Using rel=\"nofollow\" will result\nin API access suspension.\n"},"url":{"type":"string","format":"uri","description":"Direct link to the job posting on web3.career (without tracking params). Use `apply_url` for user-facing links."},"salary":{"type":"string","description":"Salary range when disclosed. Many listings omit this field."},"postedAt":{"type":"string","description":"When the job was posted. Format may vary between listings."}},"additionalProperties":true,"required":[]}}}}
```

## The Job object

```json
{"openapi":"3.1.0","info":{"title":"Web3.career Jobs API","version":"1.0"},"components":{"schemas":{"Job":{"type":"object","description":"A single Web3 job listing.","properties":{"id":{"type":"string","description":"Unique job identifier."},"title":{"type":"string","description":"Job title."},"company":{"type":"string","description":"Hiring company name."},"location":{"type":"string","description":"Job location (e.g., \"Remote\", \"New York, US\", \"Berlin, Germany\")."},"remote":{"type":"boolean","description":"Whether the position is fully remote."},"description":{"type":"string","description":"Full job description. **May contain raw HTML markup** (`<p>`, `<ul>`, `<li>`,\n`<strong>`, `<br>`, etc.). Strip HTML tags if you need plain text. Absent when\n`show_description=false` is set on the request.\n"},"tags":{"type":"array","description":"Skill and technology tags associated with the job.","items":{"type":"string"}},"apply_url":{"type":"string","format":"uri","description":"Application URL with embedded tracking parameters. **This is the primary link\nyou must use when directing users to a job.** Do not append query parameters\n(utm_source, utm_medium, ref, etc.) — they are already included. Links must\nuse rel=\"follow\" or have no rel attribute. Using rel=\"nofollow\" will result\nin API access suspension.\n"},"url":{"type":"string","format":"uri","description":"Direct link to the job posting on web3.career (without tracking params). Use `apply_url` for user-facing links."},"salary":{"type":"string","description":"Salary range when disclosed. Many listings omit this field."},"postedAt":{"type":"string","description":"When the job was posted. Format may vary between listings."}},"additionalProperties":true,"required":[]}}}}
```
