Deploy jobs
You can use deploy jobs to build production data assets. Deploy jobs make it easy to run dbt commands against a project in your cloud data platform, triggered either by schedule or events. Each job run in dbt Cloud will have an entry in the job's run history and a detailed run overview, which provides you with:
- Job trigger type
- Commit SHA
- Environment name
- Sources and documentation info, if applicable
- Job run details, including run timing, model timing data, and artifacts
- Detailed run steps with logs and their run step statuses
You can create a deploy job and configure it to run on scheduled days and times or enter a custom cron schedule.
Prerequisites
- You must have a dbt Cloud account and Developer seat license. If you don't, you can sign up for a free account.
- You must have a dbt project connected to a data platform.
- You must have access permission to view, create, modify, or run jobs.
- You must set up a deployment environment.
Create and schedule jobs
- On your deployment environment page, click Create Job > Deploy Job to create a new deploy job.
- Options in the Job Description section:
- Job Name — Specify the name for the deploy job. For example,
Daily build
. - Environment — By default, it’s set to the deployment environment you created the deploy job from.
- Job Name — Specify the name for the deploy job. For example,
- Options in the Execution Settings section:
- Commands — By default, it includes the
dbt build
command. Click Add command to add more commands that you want to be invoked when the job runs. - Generate docs on run — Enable this option if you want to generate project docs when this deploy job runs.
- Run source freshness — Enable this option to invoke the
dbt source freshness
command before running the deploy job. Refer to Source freshness for more details.
- Commands — By default, it includes the
- Options in the Schedule section:
- Run on schedule — Enable this option to run the deploy job on a set schedule.
- Timing — Specify whether to schedule the deploy job using Frequency that runs the job at specific times of day, Specific Intervals that runs the job every specified number of hours, or Cron Schedule that runs the job specified using cron syntax.
- Days of the Week — By default, it’s set to every day when Frequency or Specific Intervals is chosen for Timing.

(optional) Options in the Advanced Settings section:
- Environment Variables — Define environment variables to customize the behavior of your project when the deploy job runs.
- Target Name — Define the target name to customize the behavior of your project when the deploy job runs. Environment variables and target names are often used interchangeably.
- Run Timeout — Cancel the deploy job if the run time exceeds the timeout value.
- Compare changes against — By default, it’s set to No deferral. Select either Environment or This Job to let dbt Cloud know what it should compare the changes against.
infoOlder versions of dbt Cloud only allow you to defer to a specific job instead of an environment. Deferral to a job compares state against the project code that was run in the deferred job's last successful run. While deferral to an environment is more efficient as dbt Cloud will compare against the project representation (which is stored in the
manifest.json
) of the last successful deploy job run that executed in the deferred environment. By considering all deploy jobs that run in the deferred environment, dbt Cloud will get a more accurate, latest project representation state.- dbt Version — By default, it’s set to inherit the dbt version from the environment. dbt Labs strongly recommends that you don't change the default setting. This option to change the version at the job level is useful only when you upgrade a project to the next dbt version; otherwise, mismatched versions between the environment and job can lead to confusing behavior.
- Threads — By default, it’s set to 4 threads. Increase the thread count to increase model execution concurrency.
Example of Advanced Settings on Deploy Job page
Schedule days
To set your job's schedule, use the Schedule Days option to choose specific days of the week, and select customized hours or intervals.
Under Timing, you can either use customizable hours for jobs that need to run frequently throughout the day or exact intervals for jobs that need to run at specific times:
Every n hours — Use this option to set how often your job runs, in hours. Enter a number between 1 and 23 to represent the interval between job runs. For example, if you set it to "every 2 hours", the job will run every 2 hours from midnight UTC. This option is useful if you need to run jobs multiple times per day at regular intervals.
At exact intervals — Use this option to set specific times when your job should run. You can enter a comma-separated list of hours (in UTC) when you want the job to run. For example, if you set it to
0,12,23,
the job will run at midnight, noon, and 11 PM UTC. This option is useful if you want your jobs to run at specific times of day and don't need them to run more frequently than once a day.
dbt Cloud uses Coordinated Universal Time (UTC) and does not account for translations to your specific timezone or take into consideration daylight savings time. For example:
- 0 means 12am (midnight) UTC
- 12 means 12pm (afternoon) UTC
- 23 means 11pm UTC
Custom cron schedule
To fully customize the scheduling of your job, choose the Custom cron schedule option and use the cron syntax. With this syntax, you can specify the minute, hour, day of the month, month, and day of the week, allowing you to set up complex schedules like running a job on the first Monday of each month.

Use tools such as crontab.guru to generate the correct cron syntax. This tool allows you to input cron snippets and returns their plain English translations.
Refer to the following example snippets:
0 * * * *
: Every hour, at minute 0*/5 * * * *
: Every 5 minutes5 4 * * *
: At exactly 4:05 AM UTC30 */4 * * *
: At minute 30 past every 4th hour (e.g. 4:30AM, 8:30AM, 12:30PM, etc., all UTC)0 0 */2 * *
: At midnight UTC every other day0 0 * * 1
: At midnight UTC every Monday.