> ## Documentation Index
> Fetch the complete documentation index at: https://jobo.world/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Resolve a domain to a company profile

> Build or fetch a company profile from a website domain, in the same `CompanyDto` shape as `GET /api/companies/{id}`. Evidence comes from the company's own site (live and from Common Crawl), our company corpus and public datasets; every published value is backed by stored evidence, and fields the evidence does not support come back null rather than guessed.

A cached profile answers `200` immediately. A first lookup starts a profiling run and waits up to `wait` seconds (default 25, max 60); if the run is still going you get `202` with a `status_url` to poll. `tier=deep` runs the slower, more thorough pipeline and always answers `202` unless a deep profile is already cached.

**The returned `id` is not a Jobo company id** — it is a stable identifier for the domain's profile and will not resolve at `GET /api/companies/{id}`. `listing_url` is filled only when an ATS listing is known for the domain.

Pricing: a flat 3 credits per delivered profile, charged up-front and refunded automatically on `202` and on any error. Profiles are cached for 180 days and refreshed in the background as they age; `refresh=true` forces a fresh run. The `X-Jobo-Profile-Cache` header reports `hit`, `stale` (served while refreshing) or `miss`.



## OpenAPI

````yaml /openapi.yaml get /api/companies/by-domain
openapi: 3.0.3
info:
  title: Jobo Enterprise API
  description: >
    The Jobo Enterprise API provides programmatic access to job listings,
    intelligent search,

    real-time feeds, geocoding services, and callback-driven job applications.

    Auto Apply is an invite-only beta; accounts without access receive 403

    auto_apply_not_enabled from create.
  version: '2026-08-31'
  contact:
    name: Jobo Support
    url: https://jobo.world
    email: support@jobo.world
  license:
    name: Proprietary — see terms of service
    url: https://jobo.world/terms
  termsOfService: https://jobo.world/terms
servers:
  - url: https://connect.jobo.world
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Jobs
    description: Search and retrieve job listings
  - name: Feed
    description: Bulk job feeds and expiration tracking
  - name: Companies
    description: Company profiles and company-scoped job listings
  - name: Auto Apply
    description: >-
      Coming soon: profileless applications answered through signed, typed HTTPS
      callbacks
  - name: Locations
    description: Geocoding and location services
paths:
  /api/companies/by-domain:
    get:
      tags:
        - Companies
      summary: Resolve a domain to a company profile
      description: >-
        Build or fetch a company profile from a website domain, in the same
        `CompanyDto` shape as `GET /api/companies/{id}`. Evidence comes from the
        company's own site (live and from Common Crawl), our company corpus and
        public datasets; every published value is backed by stored evidence, and
        fields the evidence does not support come back null rather than guessed.


        A cached profile answers `200` immediately. A first lookup starts a
        profiling run and waits up to `wait` seconds (default 25, max 60); if
        the run is still going you get `202` with a `status_url` to poll.
        `tier=deep` runs the slower, more thorough pipeline and always answers
        `202` unless a deep profile is already cached.


        **The returned `id` is not a Jobo company id** — it is a stable
        identifier for the domain's profile and will not resolve at `GET
        /api/companies/{id}`. `listing_url` is filled only when an ATS listing
        is known for the domain.


        Pricing: a flat 3 credits per delivered profile, charged up-front and
        refunded automatically on `202` and on any error. Profiles are cached
        for 180 days and refreshed in the background as they age; `refresh=true`
        forces a fresh run. The `X-Jobo-Profile-Cache` header reports `hit`,
        `stale` (served while refreshing) or `miss`.
      operationId: getCompanyByDomain
      parameters:
        - name: domain
          in: query
          required: true
          schema:
            type: string
          description: Website domain or URL, e.g. `stripe.com`.
        - name: wait
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 60
            default: 25
          description: Seconds to wait for a cold run before answering `202`.
        - name: tier
          in: query
          required: false
          schema:
            type: string
            enum:
              - standard
              - deep
            default: standard
          description: >-
            Pipeline depth. `deep` is asynchronous and always answers `202`
            unless cached.
        - name: refresh
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >-
            Ignore the cached profile and stored evidence; re-acquire
            everything.
      responses:
        '200':
          description: The company profile
          headers:
            X-Jobo-Profile-Cache:
              schema:
                type: string
                enum:
                  - hit
                  - stale
                  - miss
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyDto'
        '202':
          description: >-
            The profile is being built; poll `status_url` after
            `retry_after_seconds`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyProfilePendingResponse'
        '400':
          description: Not a usable public website domain
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: The domain is dead, parked, or refused every fetch; cached briefly
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          description: Company profiling is unavailable; retry after `Retry-After`
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      x-codeSamples:
        - lang: cURL
          source: >
            # First call: the profile is built while you wait (up to `wait`
            seconds), or you get a 202 to poll.

            curl -G "https://connect.jobo.world/api/companies/by-domain" \
              -H "X-Api-Key: $JOBO_API_KEY" \
              --data-urlencode "domain=stripe.com" \
              --data-urlencode "wait=25"
components:
  schemas:
    CompanyDto:
      type: object
      description: Fully enriched company profile.
      required:
        - id
        - name
        - legal_name
        - summary
        - description
        - website
        - listing_url
        - logo_url
        - linkedin_url
        - linkedin_company_id
        - twitter_url
        - facebook_url
        - instagram_url
        - angellist_url
        - youtube_url
        - github_url
        - g2_url
        - crunchbase_url
        - headquarters_location
        - headquarters_region
        - headquarters_regions
        - country_code
        - continent
        - phone_number
        - email_address
        - founding_year
        - company_size
        - revenue
        - is_agency
        - industries
        - primary_industry
        - categories
        - naics_codes
        - operating_status
        - ipo_status
        - company_type
        - stock_symbol
        - stock_exchange
        - is_acquired
        - acquired_by_company
        - parent_company_url
        - funding_stage
        - total_funding
        - funds_total_formatted
        - investors
        - funding_rounds
        - founders
        - leadership
        - leadership_hires
        - layoffs
        - ratings
        - press_references
        - h1b_annual_job_counts
        - h1b_title_distribution
        - technology_list
        - tech_stack
        - products
        - software_used
        - research_focus_areas
        - acquisitions
        - exits
        - subsidiary_list
        - sub_organizations
        - featured_lists
        - event_appearances
        - investor_types
        - page_rank
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        legal_name:
          type: string
          nullable: true
          description: Registered legal entity name when distinct from the trade name.
        summary:
          type: string
          nullable: true
          description: >-
            Short company blurb. AI-generated when available, otherwise the SEO
            meta-description / first paragraph from the enrichment source.
        description:
          type: string
          nullable: true
        website:
          type: string
          nullable: true
        listing_url:
          type: string
          nullable: true
          description: |
            Canonical careers / job-listing page URL on the company's ATS
            (e.g. its Greenhouse / Lever / Workday board), when available.
        logo_url:
          type: string
          nullable: true
        linkedin_url:
          type: string
          nullable: true
        linkedin_company_id:
          type: string
          nullable: true
        twitter_url:
          type: string
          nullable: true
        facebook_url:
          type: string
          nullable: true
        instagram_url:
          type: string
          nullable: true
        angellist_url:
          type: string
          nullable: true
        youtube_url:
          type: string
          nullable: true
        github_url:
          type: string
          nullable: true
        g2_url:
          type: string
          nullable: true
        crunchbase_url:
          type: string
          nullable: true
        headquarters_location:
          type: string
          nullable: true
        headquarters_region:
          type: string
          nullable: true
          description: Region/state when known.
        headquarters_regions:
          type: array
          items:
            type: string
          description: Additional region tags when more than one applies.
        country_code:
          type: string
          nullable: true
          description: ISO 3166-1 alpha-2 country code.
        continent:
          type: string
          nullable: true
        phone_number:
          type: string
          nullable: true
        email_address:
          type: string
          nullable: true
        founding_year:
          type: string
          nullable: true
        company_size:
          type: string
          nullable: true
          description: Headcount band (e.g. "1-10", "51-200").
        revenue:
          type: string
          nullable: true
          description: Annual revenue band (e.g. "under-1m", "100m-200m", "over-1b").
        is_agency:
          type: boolean
        industries:
          type: array
          items:
            type: string
          description: Vertical industry labels (e.g. "HR & Staffing").
        primary_industry:
          type: string
          nullable: true
          description: Single high-level industry label (e.g. "Finance").
        categories:
          type: array
          items:
            type: string
          description: Business-model bucket tags (b2b / b2c / saas / service-provider).
        naics_codes:
          type: array
          items:
            type: string
        operating_status:
          type: string
          nullable: true
          description: '"active" | "closed".'
        ipo_status:
          type: string
          nullable: true
          description: '"private" | "ipo" | "delisted".'
        company_type:
          type: string
          nullable: true
          description: '"for_profit" | "non_profit".'
        stock_symbol:
          type: string
          nullable: true
        stock_exchange:
          type: string
          nullable: true
        is_acquired:
          type: boolean
        acquired_by_company:
          type: string
          nullable: true
        parent_company_url:
          type: string
          nullable: true
          description: URL of the parent organization when this company is a subsidiary.
        funding_stage:
          type: string
          nullable: true
        total_funding:
          type: string
          nullable: true
        funds_total_formatted:
          type: string
          nullable: true
          description: Total funds raised when the company itself is a VC firm.
        investors:
          type: array
          items:
            type: string
        funding_rounds:
          type: array
          items:
            $ref: '#/components/schemas/CompanyFundingRoundDto'
        founders:
          type: array
          items:
            type: string
        leadership:
          type: array
          items:
            $ref: '#/components/schemas/CompanyLeaderDto'
        leadership_hires:
          type: array
          items:
            $ref: '#/components/schemas/CompanyKeyEventDto'
        layoffs:
          type: array
          items:
            $ref: '#/components/schemas/CompanyKeyEventDto'
        ratings:
          type: array
          items:
            $ref: '#/components/schemas/CompanyRatingDto'
        press_references:
          type: array
          items:
            $ref: '#/components/schemas/CompanyPressReferenceDto'
        h1b_annual_job_counts:
          type: array
          items:
            $ref: '#/components/schemas/CompanyH1bJobCountDto'
        h1b_title_distribution:
          type: array
          items:
            $ref: '#/components/schemas/CompanyH1bTitleDistributionDto'
        technology_list:
          type: array
          items:
            type: string
          description: Flat list of technologies the company is reported to use.
        tech_stack:
          type: array
          items:
            $ref: '#/components/schemas/CompanyTechnologyDto'
          description: Structured per-technology records.
        products:
          type: array
          items:
            $ref: '#/components/schemas/CompanyProductDto'
        software_used:
          type: array
          items:
            $ref: '#/components/schemas/CompanyProductDto'
        research_focus_areas:
          type: array
          items:
            type: string
        acquisitions:
          type: array
          items:
            $ref: '#/components/schemas/CompanyAcquisitionDto'
        exits:
          type: array
          items:
            $ref: '#/components/schemas/CompanyExitDto'
        subsidiary_list:
          type: array
          items:
            type: string
          description: Flat list of subsidiary company names.
        sub_organizations:
          type: array
          items:
            $ref: '#/components/schemas/CompanySubOrganizationDto'
        featured_lists:
          type: array
          items:
            $ref: '#/components/schemas/CompanyFeaturedListDto'
        event_appearances:
          type: array
          items:
            $ref: '#/components/schemas/CompanyEventAppearanceDto'
        investor_types:
          type: array
          items:
            type: string
          description: >-
            Investor classification (only populated when the company is itself
            an investor).
        page_rank:
          type: number
          format: double
          nullable: true
          description: Domain authority score (useful for ranking).
    CompanyProfilePendingResponse:
      type: object
      description: Returned with `202` while a domain profile is being built.
      properties:
        status:
          type: string
          enum:
            - pending
        stage:
          type: string
          description: Where the run is — `queued`, `resolving`, `acquiring`, `extracting`.
        sources_done:
          type: integer
        sources_total:
          type: integer
        retry_after_seconds:
          type: integer
        status_url:
          type: string
          description: >-
            Relative URL to poll; returns this shape while pending and the
            profile once ready.
      required:
        - status
        - stage
        - retry_after_seconds
        - status_url
    ProblemDetails:
      type: object
      description: Problem Details object returned for error responses.
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
          description: Stable machine-readable code for Auto Apply domain errors.
        api_version:
          $ref: '#/components/schemas/AutoApplyApiVersion'
    CompanyFundingRoundDto:
      type: object
      required:
        - investment_type
        - announced_on
        - raised_amount
        - post_money_valuation
        - investor_count
        - lead_investor
      properties:
        investment_type:
          type: string
          nullable: true
        announced_on:
          type: string
          nullable: true
        raised_amount:
          type: string
          nullable: true
        post_money_valuation:
          type: string
          nullable: true
        investor_count:
          type: integer
        lead_investor:
          type: string
          nullable: true
    CompanyLeaderDto:
      type: object
      required:
        - name
        - title
        - linkedin_url
        - avatar_url
      properties:
        name:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        linkedin_url:
          type: string
          nullable: true
        avatar_url:
          type: string
          nullable: true
    CompanyKeyEventDto:
      type: object
      required:
        - date
      description: A dated event in the company's history (layoff, leadership hire, etc.).
      properties:
        date:
          type: string
          nullable: true
    CompanyRatingDto:
      type: object
      required:
        - source
        - rating
        - url
        - review_count
      properties:
        source:
          type: string
          nullable: true
        rating:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        review_count:
          type: integer
          nullable: true
    CompanyPressReferenceDto:
      type: object
      required:
        - url
        - posted_on
        - title
        - publisher
      properties:
        url:
          type: string
          nullable: true
        posted_on:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        publisher:
          type: string
          nullable: true
    CompanyH1bJobCountDto:
      type: object
      required:
        - year
        - count
      properties:
        year:
          type: string
          nullable: true
        count:
          type: integer
    CompanyH1bTitleDistributionDto:
      type: object
      required:
        - title
        - count
      properties:
        title:
          type: string
          nullable: true
        count:
          type: integer
    CompanyTechnologyDto:
      type: object
      required:
        - name
        - categories
      description: A technology entry in the company's tech stack.
      properties:
        name:
          type: string
          nullable: true
        categories:
          type: array
          items:
            type: string
    CompanyProductDto:
      type: object
      required:
        - name
        - description
      description: A product or piece of software the company offers / uses.
      properties:
        name:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
    CompanyAcquisitionDto:
      type: object
      required:
        - acquiree_name
        - title
      properties:
        acquiree_name:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
    CompanyExitDto:
      type: object
      required:
        - name
        - description
      properties:
        name:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
    CompanySubOrganizationDto:
      type: object
      required:
        - name
        - ownership_type
        - title
      properties:
        name:
          type: string
          nullable: true
        ownership_type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
    CompanyFeaturedListDto:
      type: object
      required:
        - title
        - org_num
        - funding_total_formatted
        - funding_total_usd
      properties:
        title:
          type: string
          nullable: true
        org_num:
          type: integer
          nullable: true
        funding_total_formatted:
          type: string
          nullable: true
        funding_total_usd:
          type: integer
          format: int64
          nullable: true
    CompanyEventAppearanceDto:
      type: object
      required:
        - appearance_type
        - event
        - event_starts_on
        - image
      description: Conference / event the company appeared at.
      properties:
        appearance_type:
          type: string
          nullable: true
        event:
          type: string
          nullable: true
        event_starts_on:
          type: string
          nullable: true
        image:
          type: string
          nullable: true
    AutoApplyApiVersion:
      type: string
      description: Version of the profileless Auto Apply API contract.
      enum:
        - '2026-08-31'
      example: '2026-08-31'
    ApiRateLimitError:
      type: object
      description: API-key request-window rejection returned by rate-limit middleware.
      required:
        - error
        - detail
        - group
        - retry_after_seconds
      properties:
        error:
          type: string
          example: Rate limit exceeded
        detail:
          type: string
        group:
          type: string
          example: AutoApply
        retry_after_seconds:
          type: integer
          minimum: 0
          nullable: true
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    TooManyRequests:
      description: Rate limit exceeded.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            minimum: 0
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
        application/json:
          schema:
            $ref: '#/components/schemas/ApiRateLimitError'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: API key provided by Jobo

````