{"openapi":"3.0.0","paths":{"/v1/public/jobs/sample":{"get":{"description":"Returns the most recently posted active job, in the same shape as the authenticated `/v1/public/jobs` endpoint, including all three description formats (`description` HTML, `descriptionPlain`, `descriptionMarkdown`). No authentication required.\n\nDescriptions are truncated to a 300-character preview by default; the HTML variant is clipped by character count and may end mid-tag. Pass `full=true` for untruncated descriptions.\n\nShared cache with a 5 minute TTL and a per-IP limit of 10 requests per minute — intended for evaluating the response shape, not for ingesting data.","operationId":"PublicSampleController_getSample","parameters":[{"name":"full","required":false,"in":"query","description":"Return untruncated descriptions. Defaults to false.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobDto"}}}},"429":{"description":"Too many sample requests"}},"summary":"Get one real job record","tags":["Jobs"],"security":[]}},"/v1/public/jobs":{"get":{"description":"Get jobs with filtering and cursor-based pagination.\n\n**Cursor Pagination** (all tiers):\n- First request: omit `cursor` parameter\n- Subsequent requests: use `nextCursor` from previous response\n- Pagination is automatic and efficient for large datasets\n\n**Page Size by Tier:**\n- Free: up to 25 per page\n- Starter: up to 50 per page\n- Growth+: up to 100 per page\n\nOmit `limit` to receive your tier's maximum. A `limit` above your tier's maximum is silently clamped rather than rejected; `0` and below are rejected with a 400.\n\n**New Jobs Since Your Last Sync:**\nUse `listedAfter` (Unix seconds): the newest `listedAt` you hold, minus a few minutes, and skip ids you already have. `listedAt` is when Jobven made the job available, so no job is missed. Webhooks deliver the same jobs as they are listed.\n```\nGET /v1/public/jobs?listedAfter=1705392000&sortBy=listedAt&order=ASC\n```\n\n**Jobs By Posting Date:**\n`postedAfter` filters on the employer's posting date, which is usually hours earlier than `listedAt`. Use it to ask for jobs posted in a period, not to sync.\n```javascript\nconst lastWeek = Math.floor(Date.now() / 1000) - 7 * 86400;\nconst response = await fetch(\n  `https://api.jobven.com/v1/public/jobs?skills[]=react&location=SF&postedAfter=${lastWeek}`,\n  { headers: { 'X-API-Key': 'your-key' } }\n);\n```\n","operationId":"PublicJobsController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number, from 1","schema":{"minimum":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size. Values above 100 are clamped, not rejected; zero and below are rejected.","schema":{"minimum":1,"type":"number"}},{"name":"order","required":false,"in":"query","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"q","required":false,"in":"query","description":"Search job titles by whole word. Words are ANDed in any order; \"double quotes\" match an exact phrase, OR matches either side, and a leading - excludes a word. Case-insensitive. Does not search descriptions; use descriptionQuery for that.","schema":{"maxLength":200,"example":"\"backend engineer\" -intern","type":"string"}},{"name":"descriptionQuery","required":false,"in":"query","description":"Search job descriptions for a whole-word phrase, case-insensitive (e.g. \"distributed systems\"). The phrase is matched literally; no operators. Slower than the other filters: pair it with postedAfter to keep the search fast.","schema":{"maxLength":200,"example":"distributed systems","type":"string"}},{"name":"remoteType","required":false,"in":"query","description":"Filter by remote type","schema":{"type":"array","items":{"$ref":"#/components/schemas/RemoteType"}}},{"name":"experienceLevel","required":false,"in":"query","description":"Filter by experience level","schema":{"type":"array","items":{"$ref":"#/components/schemas/ExperienceLevel"}}},{"name":"employmentType","required":false,"in":"query","description":"Filter by employment type","schema":{"type":"array","items":{"$ref":"#/components/schemas/EmploymentType"}}},{"name":"skills","required":false,"in":"query","description":"Filter by skills (up to 10)","schema":{"maxItems":10,"type":"array","items":{"type":"string"}}},{"name":"industry","required":false,"in":"query","description":"Filter by industry (up to 10)","schema":{"maxItems":10,"type":"array","items":{"type":"string"}}},{"name":"language","required":false,"in":"query","description":"Filter by required language (ISO 639-1 code)","schema":{"maxLength":2,"example":"fr","type":"string"}},{"name":"location","required":false,"in":"query","description":"Filter by location (city, region, or country)","schema":{"type":"string"}},{"name":"country","required":false,"in":"query","description":"Filter by ISO 3166-1 alpha-2 country code (e.g., US, CA, GB). Use XX for jobs with no location information at all. Jobs with a known city but no identifiable country match no country filter.","schema":{"type":"string"}},{"name":"minSalary","required":false,"in":"query","description":"Jobs whose yearly pay reaches at least this amount (`salary.annualMax` or `salary.annualMin`). Hourly, daily, weekly and monthly pay is compared per year. Amounts are in each job's own currency; add `salaryCurrency` to compare in one.","schema":{"type":"number"}},{"name":"maxSalary","required":false,"in":"query","description":"Jobs whose yearly pay starts at or below this amount (`salary.annualMin`). Amounts are in each job's own currency; add `salaryCurrency` to compare in one.","schema":{"type":"number"}},{"name":"salaryCurrency","required":false,"in":"query","description":"Jobs whose salary is stated in this ISO 4217 currency (e.g. USD, EUR, PLN). With `minSalary` or `maxSalary`, the amounts are in this currency.","schema":{"example":"USD","type":"string"}},{"name":"hasVisaSponsorship","required":false,"in":"query","description":"`true`: jobs whose posting offers visa sponsorship. `false`: jobs whose posting says it does not. A posting that does not mention it matches neither.","schema":{"type":"boolean"}},{"name":"hasRelocation","required":false,"in":"query","description":"`true`: jobs whose posting offers relocation assistance. `false`: jobs whose posting says it does not. A posting that does not mention it matches neither.","schema":{"type":"boolean"}},{"name":"status","required":false,"in":"query","description":"Filter by job status. `active` (the default) or `closed`. `pending` is deprecated and matches no jobs.","schema":{"$ref":"#/components/schemas/JobStatus"}},{"name":"postedAfter","required":false,"in":"query","description":"Posted after timestamp (Unix seconds)","schema":{"type":"number"}},{"name":"postedBefore","required":false,"in":"query","description":"Posted before timestamp (Unix seconds)","schema":{"type":"number"}},{"name":"listedAfter","required":false,"in":"query","description":"Jobs listed at or after this time (Unix seconds), by `listedAt`. For incremental sync: send the newest `listedAt` you hold minus a few minutes, and skip ids you already have.","schema":{"type":"number"}},{"name":"state","required":false,"in":"query","description":"Filter by state, province or region, comma-separated. Takes the full name (\"California\", \"Ontario\") or, for the US and Canada, the postal code (\"CA\", \"ON\"). Case and accents are ignored.","schema":{"example":"CA,New York,Ontario","type":"string"}},{"name":"city","required":false,"in":"query","description":"Filter by city, comma-separated. Case, accents and punctuation are ignored: \"montreal\" matches \"Montréal\".","schema":{"example":"San Francisco,Montreal","type":"string"}},{"name":"cursor","required":false,"in":"query","description":"Cursor for pagination. Use the cursor from the previous response to fetch the next page. Opaque string - do not construct manually.","schema":{"example":"eyJpZCI6ImFiYzEyMyIsInZhbHVlIjoxNjk5NTY0ODAwMDAwfQ==","type":"string"}},{"name":"sortBy","required":false,"in":"query","description":"Sort by field","schema":{"$ref":"#/components/schemas/JobSortBy"}},{"name":"includeTotal","required":false,"in":"query","description":"Return `meta.total`, the exact number of jobs matching this query. Off by default: counting scans every matching row and is by far the most expensive part of the request, while cursor pagination needs only `hasMore` and `nextCursor`. Ask for it when you genuinely need the number, and expect the request to be slower. The value may be up to five minutes stale, and is left out if counting takes too long; the page is still returned.","schema":{"default":false,"type":"boolean"}},{"name":"descriptionFormat","required":false,"in":"query","description":"Which description format(s) to return. `html` (default, backwards-compatible) returns only sanitized HTML in `description`. `plain` / `markdown` return only that derived format (and suppress `description`). `all` returns all three.","schema":{"default":"html","type":"string","enum":["html","plain","markdown","all"]}}],"responses":{"200":{"description":"Cursor-based paginated response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/JobDto"},"description":"Array of data items"},"meta":{"type":"object","properties":{"total":{"type":"number","description":"Total number of items"},"count":{"type":"number","description":"Number of items in current response"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for next page (use in next request)"},"hasMore":{"type":"boolean","description":"Whether more results exist after this page"},"requestTimeMs":{"type":"number","nullable":true,"description":"Request processing time in milliseconds"},"lastUpdatedAt":{"type":"string","nullable":true,"description":"When the dataset was last updated (ISO format)"}},"required":["total","count","hasMore"]}},"required":["data","meta"]}}}}},"security":[{"ApiKey":[]}],"summary":"List all jobs with cursor pagination","tags":["Jobs"]}},"/v1/public/jobs/{id}":{"get":{"description":"Retrieve detailed information about a specific job. Requires API key authentication.","operationId":"PublicJobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Job ID (UUID)","schema":{"type":"string"}},{"name":"descriptionFormat","required":false,"in":"query","description":"Which description format(s) to return. Defaults to `html` for backwards compatibility.","schema":{"$ref":"#/components/schemas/DescriptionFormat"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobDto"}}}},"400":{"description":"Job ID is not a valid UUID"},"404":{"description":"Job not found"}},"security":[{"ApiKey":[]}],"summary":"Get a job by ID","tags":["Jobs"]}},"/v1/public/companies":{"get":{"description":"Retrieve a paginated list of companies with optional filtering. Requires API key authentication.","operationId":"PublicCompaniesController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number, from 1","schema":{"minimum":1,"maximum":100000,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size. Values above 100 are clamped, not rejected; zero and below are rejected.","schema":{"minimum":1,"type":"number"}},{"name":"order","required":false,"in":"query","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"status","required":false,"in":"query","description":"Filter by company status","schema":{"example":"active","type":"string","enum":["active","inactive"]}},{"name":"isVerified","required":false,"in":"query","description":"Filter by verification status","schema":{"example":true,"type":"boolean"}},{"name":"search","required":false,"in":"query","description":"Search by company name","schema":{"maxLength":200,"example":"Google","type":"string"}},{"name":"sortBy","required":false,"in":"query","description":"Sort field; ties are broken by id","schema":{"example":"name","type":"string","enum":["name","foundedYear","totalJobsPosted","activeJobsCount","createdAt"]}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order, case-insensitive","schema":{"example":"ASC","type":"string","enum":["ASC","DESC"]}}],"responses":{"200":{"description":"Successfully retrieved companies","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CompanyPublicDto"}}}}}},"security":[{"ApiKey":[]}],"summary":"List all companies","tags":["Companies"]}},"/v1/public/companies/{id}":{"get":{"description":"Retrieve detailed information about a specific company. Requires API key authentication.","operationId":"PublicCompaniesController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Company ID","schema":{"example":1,"type":"number"}}],"responses":{"200":{"description":"Successfully retrieved company","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyPublicDto"}}}},"404":{"description":"Company not found"}},"security":[{"ApiKey":[]}],"summary":"Get company by ID","tags":["Companies"]}},"/v1/public/company-profiles":{"get":{"description":"Companies with their profiles, filterable by industry and size. Each company returned counts toward the monthly allowance.","operationId":"PublicCompanyProfilesController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number, from 1","schema":{"minimum":1,"maximum":100000,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Page size. Values above 100 are clamped, not rejected; zero and below are rejected.","schema":{"minimum":1,"type":"number"}},{"name":"order","required":false,"in":"query","schema":{"type":"string","enum":["ASC","DESC"]}},{"name":"status","required":false,"in":"query","description":"Filter by company status","schema":{"example":"active","type":"string","enum":["active","inactive"]}},{"name":"isVerified","required":false,"in":"query","description":"Filter by verification status","schema":{"example":true,"type":"boolean"}},{"name":"search","required":false,"in":"query","description":"Search by company name or description","schema":{"maxLength":200,"example":"payroll","type":"string"}},{"name":"sortBy","required":false,"in":"query","description":"Sort field; ties are broken by id","schema":{"example":"name","type":"string","enum":["name","foundedYear","totalJobsPosted","activeJobsCount","createdAt"]}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order, case-insensitive","schema":{"example":"ASC","type":"string","enum":["ASC","DESC"]}},{"name":"industry","required":false,"in":"query","description":"Companies in any of these industries (up to 10)","schema":{"example":["technology_software"],"type":"array","items":{"type":"string","enum":["technology_software","healthcare_medical","finance_banking","education","retail_ecommerce","manufacturing","consulting_professional","marketing_advertising","government_public","energy_utilities","transportation_logistics","real_estate_construction","hospitality_food","media_entertainment","nonprofit_ngo","other"]}}},{"name":"size","required":false,"in":"query","description":"Companies in exactly this size band","schema":{"example":"51-200","type":"string","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"]}},{"name":"minEmployees","required":false,"in":"query","description":"Companies whose size band reaches at least this many employees (100 matches 51-200 and up)","schema":{"minimum":1,"maximum":10000000,"type":"number"}},{"name":"maxEmployees","required":false,"in":"query","description":"Companies whose size band starts at or below this many employees (500 matches 201-500 and below)","schema":{"minimum":1,"maximum":10000000,"type":"number"}},{"name":"includeUnknownSize","required":false,"in":"query","description":"With minEmployees or maxEmployees, also return companies of unknown size","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Successfully retrieved company profiles","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CompanyProfileDto"}}}}}},"security":[{"ApiKey":[]}],"summary":"List company profiles","tags":["Companies"]}},"/v1/public/company-profiles/{id}":{"get":{"description":"One company with its profile. Counts as one toward the monthly allowance.","operationId":"PublicCompanyProfilesController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Company ID","schema":{"example":1,"type":"number"}}],"responses":{"200":{"description":"Successfully retrieved company profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyProfileDto"}}}},"404":{"description":"Company not found"}},"security":[{"ApiKey":[]}],"summary":"Get a company profile by ID","tags":["Companies"]}}},"info":{"title":"Jobven Public API","description":"Access job and company data programmatically. Use this API to search jobs and retrieve company information. Requires API Key authentication - generate keys from your dashboard at https://jobven.com/dashboard/api-keys","version":"1.0","contact":{"name":"Jobven","url":"https://jobven.com","email":"hello@jobven.com"},"license":{"name":"Commercial","url":"https://jobven.com/terms"}},"tags":[{"name":"Jobs","description":"Search and retrieve job listings"},{"name":"Companies","description":"Company information and job postings"}],"servers":[{"url":"https://api.jobven.com","description":"Production"}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API Key for authentication. Get yours at https://jobven.com/dashboard/api-keys"}},"schemas":{"RemoteType":{"type":"string","enum":["onsite","remote","hybrid","flexible"]},"LocationDto":{"type":"object","properties":{"streetAddress":{"type":"string"},"addressLocality":{"type":"string","description":"City (long form)"},"addressRegion":{"type":"string","description":"State/Province (long form)"},"postalCode":{"type":"string"},"addressCountry":{"type":"string","description":"Country (ISO 3166-1 alpha-2)"},"workLocation":{"allOf":[{"$ref":"#/components/schemas/RemoteType"}]}}},"SkillsDto":{"type":"object","properties":{"primary_skills":{"type":"array","items":{"type":"string"}},"secondary_skills":{"type":"array","items":{"type":"string"}},"soft_skills":{"type":"array","items":{"type":"string"}}}},"SalaryDto":{"type":"object","properties":{"min":{"type":"number","description":"Lowest amount, as the posting states it"},"max":{"type":"number","description":"Highest amount, as the posting states it"},"currency":{"type":"string","description":"ISO 4217 code of the currency the posting states","example":"EUR"},"period":{"type":"string","description":"What the amounts are per: annual, monthly, bi-weekly, weekly, daily or hourly, or the unit the posting pays per"},"annualMin":{"type":"number","description":"`min` per year in the same currency (hourly x2,080, daily x260, weekly x52, bi-weekly x26, monthly x12). Absent when the period has no yearly equivalent. `minSalary` and `maxSalary` compare these."},"annualMax":{"type":"number","description":"`max` per year in the same currency, as `annualMin`"}}},"EducationRequirementDto":{"type":"object","properties":{"required":{"type":"array","items":{"type":"string"}},"preferred":{"type":"array","items":{"type":"string"}}}},"CompanyInfoDto":{"type":"object","properties":{"id":{"type":"number","description":"Company ID; GET /v1/public/company-profiles/{id} returns its profile","example":1042},"name":{"type":"string"},"website":{"type":"string"}},"required":["id","name"]},"JobDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique job identifier (UUID)"},"title":{"type":"string"},"description":{"type":"string","description":"Job description (sanitized HTML)"},"descriptionPlain":{"type":"string","description":"Job description as plain text (derived from HTML). Only populated when `descriptionFormat=plain` or `descriptionFormat=all`."},"descriptionMarkdown":{"type":"string","description":"Job description as markdown (derived from HTML). Only populated when `descriptionFormat=markdown` or `descriptionFormat=all`."},"summary":{"type":"string"},"locations":{"type":"array","items":{"$ref":"#/components/schemas/LocationDto"}},"remoteType":{"type":"string"},"skills":{"$ref":"#/components/schemas/SkillsDto"},"benefits":{"type":"array","items":{"type":"string"}},"salary":{"$ref":"#/components/schemas/SalaryDto"},"experienceLevel":{"type":"string"},"employmentType":{"type":"string"},"minYearsExperience":{"type":"number","description":"Minimum years of experience required. `0` means the posting asks for none."},"educationRequirement":{"$ref":"#/components/schemas/EducationRequirementDto"},"industry":{"type":"array","items":{"type":"string"}},"inLanguage":{"description":"Spoken language requirements (ISO 639-1 codes)","example":["en","fr"],"type":"array","items":{"type":"string"}},"hasVisaSponsorship":{"type":"boolean","description":"`true` if the posting offers visa sponsorship, `false` if it says it does not, `null` if it does not say."},"hasRelocation":{"type":"boolean","description":"`true` if the posting offers relocation assistance, `false` if it says it does not, `null` if it does not say."},"requiresTravel":{"type":"boolean","description":"`true` if the posting requires travel, `false` if it says it does not, `null` if it does not say."},"travelPercentage":{"type":"number"},"postedAt":{"type":"number","description":"When the job was posted (Unix seconds)"},"expiresAt":{"type":"number","description":"When the job expires/closes (Unix seconds)"},"listedAt":{"type":"number","description":"When Jobven made the job available (Unix seconds): when it was first listed, and again when it reopens after closing. Use it with `listedAfter` to fetch new jobs since your last sync. `postedAt` is the employer's date and usually earlier."},"closedAt":{"type":"object","nullable":true,"description":"When Jobven recorded the closure (Unix seconds): set when the job closes, cleared if it reopens. Null while the job is open, and for jobs closed before October 7, 2026. `expiresAt` is the employer's deadline; this is when the posting was taken down."},"applyUrl":{"type":"string","description":"URL to apply for this job"},"status":{"type":"string","description":"Job status: active or closed"},"companies":{"type":"array","items":{"$ref":"#/components/schemas/CompanyInfoDto"}}},"required":["id","title","description","locations","status","companies"]},"CursorPageMeta":{"type":"object","properties":{"total":{"type":"number","description":"Total number of items matching the query. Only present when the request asked for it (`includeTotal=true`) — counting is expensive and cursor pagination does not need it: use `hasMore` and `nextCursor` to page."},"count":{"type":"number","description":"Number of items in current response"},"nextCursor":{"type":"string","description":"Cursor for next page (use in next request)"},"hasMore":{"type":"boolean","description":"Whether more results exist after this page"},"requestTimeMs":{"type":"number","description":"Request processing time in milliseconds"},"lastUpdatedAt":{"type":"string","description":"When the dataset was last updated (ISO format)"}},"required":["count","hasMore"]},"CursorPageDto":{"type":"object","properties":{"data":{"type":"array","items":{"type":"array"}},"meta":{"$ref":"#/components/schemas/CursorPageMeta"}},"required":["data","meta"]},"ExperienceLevel":{"type":"string","enum":["entry","mid","senior","lead","executive"]},"EmploymentType":{"type":"string","enum":["full_time","part_time","contract","internship","seasonal","volunteer","temporary","per_diem","other"]},"JobStatus":{"type":"string","enum":["active","closed","pending"]},"JobSortBy":{"type":"string","enum":["postedAt","listedAt","title","company"]},"DescriptionFormat":{"type":"string","enum":["html","plain","markdown","all"]},"CompanyPublicDto":{"type":"object","properties":{"id":{"type":"number","description":"Company ID","example":1042},"name":{"type":"string"},"website":{"type":"string"}},"required":["id","name"]},"CompanyHeadquartersDto":{"type":"object","properties":{"city":{"type":"string","nullable":true,"example":"Toronto"},"state":{"type":"string","nullable":true,"example":"Ontario"},"country":{"type":"string","nullable":true,"description":"ISO 3166-1 alpha-2","example":"CA"}},"required":["city","state","country"]},"CompanyProfileDto":{"type":"object","properties":{"id":{"type":"number","description":"Company ID","example":1042},"name":{"type":"string"},"website":{"type":"string"},"description":{"type":"string","nullable":true,"description":"What the company does, in one or two plain sentences"},"industry":{"type":"string","nullable":true,"description":"Industry, the same keys as a job's industry","enum":["technology_software","healthcare_medical","finance_banking","education","retail_ecommerce","manufacturing","consulting_professional","marketing_advertising","government_public","energy_utilities","transportation_logistics","real_estate_construction","hospitality_food","media_entertainment","nonprofit_ngo","other"],"example":"technology_software"},"size":{"type":"string","nullable":true,"description":"Employee count band","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"],"example":"51-200"},"sizeMin":{"type":"number","nullable":true,"example":51},"sizeMax":{"type":"number","nullable":true,"description":"Null for 10001+","example":200},"sizeSource":{"type":"string","nullable":true,"description":"stated: the company's site gives its head count. estimated: a model's estimate, published only at high confidence.","enum":["stated","estimated"]},"foundedYear":{"type":"number","nullable":true,"example":2014},"headquarters":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/CompanyHeadquartersDto"}]},"linkedinUrl":{"type":"string","nullable":true},"twitterUrl":{"type":"string","nullable":true},"githubUrl":{"type":"string","nullable":true},"profileUpdatedAt":{"type":"number","nullable":true,"description":"When the profile was last read from the site (Unix seconds)"}},"required":["id","name","description","industry","size","sizeMin","sizeMax","sizeSource","foundedYear","headquarters","linkedinUrl","twitterUrl","githubUrl","profileUpdatedAt"]}}}}