{"id":20597755,"url":"https://github.com/triggerdotdev/jobs-showcase","last_synced_at":"2025-07-16T08:09:05.051Z","repository":{"id":190415036,"uuid":"682200447","full_name":"triggerdotdev/jobs-showcase","owner":"triggerdotdev","description":"⚡️ An ever-growing library of Trigger.dev jobs for anyone to use and contribute to.","archived":false,"fork":false,"pushed_at":"2023-11-30T10:50:54.000Z","size":190,"stargazers_count":14,"open_issues_count":2,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-11T10:42:46.359Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"https://trigger.dev/showcase","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/triggerdotdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-23T16:54:27.000Z","updated_at":"2025-02-15T06:17:53.000Z","dependencies_parsed_at":"2023-11-30T11:42:19.056Z","dependency_job_id":null,"html_url":"https://github.com/triggerdotdev/jobs-showcase","commit_stats":null,"previous_names":["triggerdotdev/jobs-showcase"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/triggerdotdev/jobs-showcase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triggerdotdev%2Fjobs-showcase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triggerdotdev%2Fjobs-showcase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triggerdotdev%2Fjobs-showcase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triggerdotdev%2Fjobs-showcase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/triggerdotdev","download_url":"https://codeload.github.com/triggerdotdev/jobs-showcase/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triggerdotdev%2Fjobs-showcase/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265495380,"owners_count":23776620,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest"],"created_at":"2024-11-16T08:23:49.976Z","updated_at":"2025-07-16T08:09:04.513Z","avatar_url":"https://github.com/triggerdotdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/a45d1fa2-0ae8-4a39-4409-f4f934bfae00/public\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/3f5ad4c1-c4c8-4277-b622-290e7f37bd00/public\"\u003e\n  \u003cimg alt=\"Trigger.dev logo\" src=\"https://imagedelivery.net/3TbraffuDZ4aEf8KWOmI_w/a45d1fa2-0ae8-4a39-4409-f4f934bfae00/public\"\u003e\n\u003c/picture\u003e\n\n---\n\n# Trigger.dev Jobs Showcase\n\nThis repository contains a collection of code-only Jobs that can be run using Trigger.dev. It is a great place to start if you want to see how to use Trigger.dev and our integrations in your own projects.\n\nFor full project examples using Trigger.dev, check out our [Examples repo](https://github.com/triggerdotdev/examples).\n\n## About Trigger.dev\n\nTrigger.dev is a framework for creating long-running Jobs directly in your Next.js app with API integrations, webhooks, scheduling and delays. You can reliably run Jobs that wouldn’t normally work in serverless environments (like Vercel) because of timeouts.\n\n## Jobs in this repo:\n\nThe Jobs can be run locally using the `@trigger.dev/cli` and `@trigger.dev/express` packages.\n\n| Title                                                                                                                                                          | Description                                                                                           | Integrations                                                                                                                                                                        | Contributor                                     |\n| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |\n| **[Cron scheduled basic](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/cronScheduledBasic.ts)**                                                 | A scheduled Job which runs at 2:30pm every Monday.                                                    | None                                                                                                                                                                                | Trigger.dev                                     |\n| **[Delay example joke](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/delayExampleJoke.ts)**                                                     | Logs a message to the console, waits for 5 minutes, and then logs another message.                    | None                                                                                                                                                                                | Trigger.dev                                     |\n| **[GitHub: issue reminder](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/gitHubIssueReminder.ts)**                                              | Sends a Slack message to a channel if a GitHub issue is left open for 24 hours.                       | [GitHub](https://trigger.dev/docs/integrations/apis/github), [Slack](https:/trigger.dev/docs/integrations/apis/slack)                                                               | Trigger.dev                                     |\n| **[GitHub: new issue opened](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/gitHubNewIssueOpened.ts)**                                           | Runs when a new issue is opened on a repo. Once created, it will add a 'Bug' label to the issue.      | [GitHub](https://trigger.dev/docs/integrations/apis/github)                                                                                                                         | Trigger.dev                                     |\n| **[Linear: create issue on new PR](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/linearCreateIssueOnPR.ts)**                                    | Creates a new Linear issue when a pull request is opened on a GitHub repo.                            | [Linear](https://trigger.dev/docs/integrations/apis/linear), [GitHub](https://trigger.dev/docs/integrations/apis/github)                                                            | Trigger.dev                                     |\n| **[Linear: daily summary of issues on Slack](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/linearIssuesDailySlackAlert.ts)**                    | Post 'In Progress' Linear issues to a Slack channel every weekday at 9am.                             | [Linear](https://trigger.dev/docs/integrations/apis/linear), [Slack](https://trigger.dev/docs/integrations/apis/slack)                                                              | Trigger.dev                                     |\n| **[Linear: automatically reply to new issues](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/linearNewIssueReply.ts)**                           | Automatically comments and likes any new Linear issue.                                                | [Linear](https://trigger.dev/docs/integrations/apis/linear)                                                                                                                         | [nicktrn](https://github.com/nicktrn)           |\n| **[OpenAI: generate image](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/openAIGenerateImage.ts)**                                              | Generate an image from a prompt, using OpenAI.                                                        | [OpenAI](https://trigger.dev/docs/integrations/apis/openai)                                                                                                                         | Trigger.dev                                     |\n| **[OpenAI: tell me a joke](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/openAITellMeAJoke.ts)**                                                | Generate a joke from a prompt, using OpenAI.                                                          | [OpenAI](https://trigger.dev/docs/integrations/apis/openai)                                                                                                                         | Trigger.dev                                     |\n| **[Plain: update custom](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/plainUpdateCustomer.ts)**                                                | Updates a customer's details.                                                                         | [Plain](https://trigger.dev/docs/integrations/apis/plain)                                                                                                                           | Trigger.dev                                     |\n| **[Resend: send React email](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/resendSendReactEmail.tsx)**                                          | Sends a basic email with Resend, built using React \u0026 Typescript.                                      | [Resend](https://trigger.dev/docs/integrations/apis/resend)                                                                                                                         | Trigger.dev                                     |\n| **[Resend: drip campaign](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/resendDripCampaign.tsx)**                                               | Sends an email drip campaign over 30 days with Resend, emails built using React \u0026 Typescript.         | [Resend](https://trigger.dev/docs/integrations/apis/resend)                                                                                                                         | Trigger.dev                                     |\n| **[Resend: send basic email](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/resendSendBasicEmail.ts)**                                           | Sends a basic email using Resend.                                                                     | [Resend](https://trigger.dev/docs/integrations/apis/resend)                                                                                                                         | Trigger.dev                                     |\n| **[Replicate cinematic prompt](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/replicateCinematicPrompt.ts)**                                     | Create a cinematic image using Replicate.                                                             | [Replicate](https://trigger.dev/docs/integrations/apis/replicate)                                                                                                                   | Trigger.dev                                     |\n| **[Scheduled interval basic](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/scheduledIntervalBasic.ts)**                                         | Runs every 60 seconds, starting 60 seconds after this Job is first indexed.                           | None                                                                                                                                                                                | Trigger.dev                                     |\n| **[SendGrid: send basic email](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/sendGridSendBasicEmail.ts)**                                       | Sends a basic email using SendGrid.                                                                   | [SendGrid](https://trigger.dev/docs/integrations/apis/sendgrid)                                                                                                                     | [OshriAsulin](https://github.com/OshriAsulin)   |\n| **[Slack: post message](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/slackPostMessage.ts)**                                                    | Posts a message to a Slack channel.                                                                   | [Slack](https://trigger.dev/docs/integrations/apis/slack)                                                                                                                           | Trigger.dev                                     |\n| **[Stripe: on subscription created](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/stripeOnSubscriptionCreated.ts)**                             | Runs when a new subscription is created in Stripe.                                                    | [Stripe](https://trigger.dev/docs/integrations/apis/stripe)                                                                                                                         | Trigger.dev                                     |\n| **[Stripe: on new subscription update Airtable](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/stripeNewSubscriptionUpdateAirtable.ts)**         | When a new customer creates a Stripe subscription, an Airtable table is populated with their details. | [Stripe](https://trigger.dev/docs/integrations/apis/stripe) [Airtable](https://trigger.dev/docs/integrations/apis/airtable)                                                         | Trigger.dev                                     |\n| **[Supabase: update database when a Stripe account is updated](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/supabaseStripeUpdateDatabase.ts)** | Update a Supabase table when a Stripe account is updated.                                             | [Supabase](https://trigger.dev/docs/integrations/apis/supabase), [Stripe](https://trigger.dev/docs/integrations/apis/stripe)                                                        | [gjohnsx](https://github.com/gjohnsx/gjohnsx)   |\n| **[Supabase: Generate blog title](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/supabaseGenerateBlogTitle.ts)**                                 | Generate blog title using OpenAi.                                                                     | [Supabase](https://trigger.dev/docs/integrations/apis/supabase), [OpenAI](https://trigger.dev/docs/integrations/apis/openai)                                                        | Trigger.dev                                     |\n| **[Supabase: AI image uploads](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/supabaseNewImageUploads.ts)**                                      | Do something with AI to image uploads.                                                                | [Supabase](https://trigger.dev/docs/integrations/apis/supabase), [OpenAI](https://trigger.dev/docs/integrations/apis/openai)                                                        | Trigger.dev                                     |\n| **[Supabase auth \u0026 onboarding emails](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/supabaseStripeUpdateDatabase.ts)**                          | When a user confirms their email using Supabase Auth, send a drip campaign using Resend               | [Supabase](https://trigger.dev/docs/integrations/apis/supabase), [Resend](https://trigger.dev/docs/integrations/apis/resend)                                                        | [gjohnsx](https://github.com/gjohnsx/gjohnsx)   |\n| **[Summarize yesterdays GitHub commits on Slack](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/summarizeGitHubCommits.ts)**                     | Summarize yesterdays GitHub commits using OpenAI, and then post them to a Slack channel.              | [GitHub](https://trigger.dev/docs/integrations/apis/github), [OpenAI](https://trigger.dev/docs/integrations/apis/openai), [Slack](https://trigger.dev/docs/integrations/apis/slack) | [gjohnsx](https://github.com/gjohnsx/gjohnsx)   |\n| **[Sync Stripe with Airtable](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/syncStripeWithAirtable.ts)**                                        | Update an Airtable table every time a sale is made in Stripe.                                         | [Airtable](https://trigger.dev/docs/integrations/apis/airtable), [Stripe](https://trigger.dev/docs/integrations/apis/stripe)                                                        | [gjohnsx](https://github.com/gjohnsx/gjohnsx)   |\n| **[Update Airtable on Typeform submission](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/typeformNewSubmissionUpdateAirtable.ts)**              | Add a new record to an Airtable table when a new Typeform response is submitted.                      | [Airtable](https://trigger.dev/docs/integrations/apis/airtable), [Typeform](https://trigger.dev/docs/integrations/apis/typeform)                                                    | [meetwithyash](https://github.com/meetwithyash) |\n| **[Weekly user activity summary](https://github.com/triggerdotdev/jobs-showcase/blob/main/src/weeklyUserActivitySummary.ts)**                                  | Sends a weekly summary email to users and then posts the total numbers to Slack.                      | [SendGrid](https://trigger.dev/docs/integrations/apis/sendgrid), [Slack](https://trigger.dev/docs/integrations/apis/slack)                                                          | Trigger.dev                                     |\n\n---\n\n## Setup: how to use this repo\n\nYou will need to create a `.env` file. You can duplicate the contents of `.env.example` file and set your local (Dev 'server') `TRIGGER_API_KEY` value. You can find your API key in your project's integrations page [in the app](https://cloud.trigger.dev). Add other API keys as needed.\n\n### Install packages\n\nFirst, install the packages:\n\n```sh\nnpm i\n```\n\n### Running a job\n\nEach file in `src` is either a Job or a separate set of jobs that can be run separately. For example, the `src/cronScheduledBasic.ts` file can be run with:\n\n```sh\nnpm run cron-scheduled-basic\n```\n\nThis will open up a local server using `express` on port 8080. Then in a \u003cu\u003eseparate terminal window\u003c/u\u003e you can run the `@trigger.dev/cli dev` command:\n\n```sh\nnpm run dev:trigger\n```\n\n### Contributors guide\n\nYou can add a new file to `src` with it's own `TriggerClient` and set of jobs (e.g. `src/events.ts`)\n\n```ts\nimport { TriggerClient, eventTrigger } from \"@trigger.dev/sdk\";\nimport { createExpressServer } from \"@trigger.dev/express\";\nimport { z } from \"zod\";\n\nexport const client = new TriggerClient({ id: \"jobs-showcase\" });\n\nclient.defineJob({\n  id: \"example-job-1\",\n  name: \"Example Job 1\",\n  version: \"0.1.0\",\n  trigger: eventTrigger({\n    name: \"example.one\",\n  }),\n  run: async (payload, io, ctx) =\u003e {},\n});\n\ncreateExpressServer(client);\n```\n\nThen add a new script in [`package.json`](./package.json):\n\n```json\n{\n  \"scripts\": {\n    \"events\": \"nodemon --watch src/events.ts -r tsconfig-paths/register -r dotenv/config src/events.ts\"\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftriggerdotdev%2Fjobs-showcase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftriggerdotdev%2Fjobs-showcase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftriggerdotdev%2Fjobs-showcase/lists"}