How to Auto-produce Job Listing Graphics for LinkedIn Carousel (Using Make)

LinkedIn's carousel format can be used to showcase all types of content, such as job listing graphics. Here's how to automatically create job listing content for advertising on this platform.
by Julianne Youngberg ·

Contents

    LinkedIn’s carousel format is an interesting way to showcase images, slides, and documents. By introducing an interactive element to otherwise static content, users are enticed to scroll through a series of cards and find out what you have to offer.

    The opportunities for this post format are endless. You can use it to:

    • Summarize event notes
    • Break down whitepapers
    • Showcase job listings
    • Introduce new products or services
    • Curate customer testimonials

    Carousels can be a great way for companies or hiring firms to display job listings to a pre-qualified audience. However, producing content for carousels requires a specific approach due to technical requirements. Only certain file types can be published as carousels: PPT, PPTX, DOC, DOCX, and PDF. This means that if you want to publish images, you must first convert them to one of these accepted file formats, typically PDF.

    In this article, you’ll learn how to use Bannerbear to generate job listing graphics in the cloud. But beyond that, you’ll learn to join them together into a PDF that can be uploaded as a LinkedIn carousel.

    What You Will Create

    The interactive nature of carousel posts encourages users to scroll through. Automatically generating PDFs of beautifully designed graphics optimized for this ad format will minimize the time you spend on repetitive work, leaving you free to pursue more important tasks.

    To generate job listing graphics for LinkedIn carousel posts, we’ll use the following tools:

    • Airtable : To store job listing information and links to generated graphics
    • Bannerbear : To design templates, generate images, and join PDF files in the cloud
    • Make : To trigger events in different programs

    By the end of the tutorial, you should be able to publish LinkedIn carousel posts that look like this:

    GIF of job listing PDF generated with Bannerbear

    Let’s get started!

    How to Generate Job Listing PDFs for LinkedIn

    Producing a multi-page PDF of generated images essentially boils down to two steps: creating the images and joining them into a single PDF. We’ll use Bannerbear to complete both of these tasks, with the help of Airtable to store data and Make to kick off both processes.

    Here’s what you should do:

    Customize Your Bannerbear Template

    Bannerbear turns every template into an API, making it easy to generate unique images based on incoming data. You can add fields dynamic and static fields to your template, customizing them however you want.

    To design a dynamic template, you need a Bannerbear account (create a free trial account if you don’t have one—no credit card required! 🎉). Log in, then click the Projects tab.

    Click New Project. You can either start from scratch or use one of the templates in our pre-made template library. We modified the following design in this tutorial:

    Bannerbear Blue Purple Gradient With Image Podcast Instagram Feed Post template

    Add a layer for each item you want to include in your job listing, such as:

    • Job Title
    • Job Description
    • Job Type
    • Salary
    • Location
    • Hiring Company

    Other ways to modify your template are adding images or SVG shapes, changing background colors, selecting fonts, and more!

    Screenshot of Bannerbear template editor

    Once you’re happy with your template, click Save Template.

    Create an Airtable Base to Store Data

    Now that your template is ready, let’s set up an Airtable base to store job listing data and links to generated content. You can also modify an existing database to suit your use case.

    Log into your Airtable account and create a new base. On the first table, set up fields for the items you want to include in your job listing graphics. We used the following:

    • Job Title
    • Hiring Company
    • Location
    • Job Type
    • Salary
    • Job Description
    • Hiring Company Logo
    • Background Image
    • Ready? (Note: This is a checkbox field to indicate when a listing’s details are ready for image generation.)
    • Last Modified (Note: This is a required field for triggering the automation later on.)
    • Generated PDF URL

    Your table will look something like this:

    Screenshot of Airtable active roles table with sample data

    Now, you’ll need a view that filters for the listings you want to join into one PDF. There are many ways to do this, such as by sorting by hiring company or—in this example—sorting only for a certain company’s latest listings.

    Click the + button next to Grid for another view. Add filters according to your use case, which may look something like:

    • Where Hiring Company is “Cheetah Group”
    • Ready is ✅ (checked)
    • Last Modified is after one week ago

    Any records matching these requirements should now be the only ones appearing in this view.

    Screenshot of Airtable active roles table recent view with filters outlined in red

    Keep in mind that you’ll need sample data to test your automation, so make sure you have a record (or more) populating the base, with at least one in your filtered view.

    Bear Tip 🐻: Match your table and template field names to make mapping dynamic elements easier later on.

    Let’s also create a simple table to store joined PDF URLs so you can easily access them for distribution. Create a second table, and add fields for:

    • Company
    • Created Time
    • Set URL

    You can also add other fields for organization, such as Post Status.

    Screenshot of Airtable job ad sets table

    Build a Make Scenario to Generate Images

    The first Make scenario you set up will generate images (and their PDF counterparts) from job listing data as it is ready. Log into your Make account, create a new scenario, and set up the following modules:

    Airtable: Watch Records

    This module will monitor a specific view for new records, launching the rest of the automation when conditions are met.

    Click the + button to add your first module, and insert Airtable. Select the Watch Records action. To set it up, choose the right base, table, and view. Add trigger configuration. This will be the Last Modified field set up in Airtable.

    Screenshot of Make Airtable watch records module

    You can also set a limit to maximum number of records to pull and insert a formula that further sorts records according to your requirements.

    Click OK when you’re done setting up the module.

    Bannerbear: Create an Image

    This module picks up any new records and tells Bannerbear to generate an image.

    Click the + button to add a new module, and insert Bannerbear. Select the Create an Image action.

    You’ll now have to add a connection to your project. Click Add. Insert the API key found on the Settings / API Key page of the corresponding project on the Bannerbear app. You can also name the connection to make it easier to identify later on.

    Screenshot of Make Bannerbear create an image module

    Once your connection has been found, select the template you want to use from the Template UID dropdown menu. To modify a field, click an Item and insert the layer’s name. Add the details for the modification, whether it’s text, a link, or a color.

    Screenshot of Make Bannerbear create an image module with modifications outlined in red

    Repeat this step for as many layers as needed. Then, scroll down to the Render PDF option and click Yes. Map a dynamic link of the Airtable record ID to the generated image’s metadata.

    Screenshot of Make Bannerbear create an image module with options outlined in red

    Click OK.

    Tools: Sleep

    Generating an image typically takes just a few seconds. However, there can be instances where it takes longer, often due to connectivity or server issues. To ensure a generated image is available, it's best to either add a delay or kick off another scenario once the image has finished rendering. We’ll use the former in this example.

    Add a new module to your scenario, and insert Tools , then select Sleep from the list. Decide how many seconds to pause the automation (we used 10s), and insert it into the Delay field.

    Screenshot of Make Tools sleep module

    Click OK.

    Bannerbear: Get an Image

    This module retrieves a generated image, so you can send it to other steps. Add a Bannerbear module, then choose the Get an image action.

    Choose the connection containing your job listing project, then map the UID from the Create an Image step to the Image UID field.

    Screenshot of Make Bannerbear get an image module

    Click Run Once to test your scenario up to this point.

    Screenshot of Make scenario with red arrow pointing to run once

    Navigate to the magnifying glass next to the Bannerbear: Get an Image module and check to see that the generated image is successfully retrieved.

    Screenshot of Make Bannerbear get an image output with pdf urls outlined in red

    Airtable: Update a Record

    Now for the last step: updating each job listing with the link to the generated PDF. Add an Airtable module, then choose Update a Record as the action.

    Select the right connection, base, and table, then map the metadata from the Get an Image step to the Record ID field.

    Screenshot of Make Airtable update a record module

    Insert the generated PDF link from the Get an Image step to Generated Image URL.

    Your scenario is complete! Finish it off by choosing a frequency at which the automation should run, then toggling scheduling to ON.

    Screenshot of Make scenario with scheduling options outlined in red

    Now, you should be able to see images generated and linked to your Airtable base whenever a qualifying job listing is added to the database.

    Build a Make Scenario to Join PDFs

    The second Make scenario you set up will retrieve the latest set of generated PDFs from Airtable, decide whether there are enough cards, then make an API call that joins them. The same scenario will also create a new record containing the set PDF link in Airtable, making it easy for you to locate when you’re ready to upload on LinkedIn.

    Create a new scenario, and set up the following modules:

    Airtable: Search Records

    This module will search records and return any that match specifications every time the scenario runs.

    Click the + button to add a module, and search Airtable. Select the Search Records action. Your account should already be connected from the previous scenario, so just set up the base, table, and view that you need. The view should be the filtered view that only shows the latest job listings.

    Select Hiring Company and Generated PDF URL as the fields returned.

    Screenshot of Make Airtable search records module

    You can also set up a max number of records to return—we’ll use 10.

    Click OK when you’re done.

    Router

    A router module can ensure you’re only producing PDFs that meet a required count. We’ll be setting up two different routes: one that notifies you if there are less than 3 job listings, and one that carries out the PDF joining process if there are 3 or more. This step is optional, but it’s helpful if you want to avoid overly short job listing compilations.

    Add a Router module to your scenario.

    Screenshot of Make scenario with red arrow pointing to router

    Click the tool button on the first route, then select Set up a filter.

    Set the filter up by adding a label for easier identification. We’ll use Less than 3 records. Set up the conditions by mapping the total number of bundles to the first field, then choosing Numeric operators: Less than as the rule. Insert 3 into the second field.

    Screenshot of Make router with less than 3 records filter

    Click OK.

    Now, set up a filter for the second route. We’ll use the label 3 or more records, then use the Numeric operators: Greater than or equal to as the rule that compares the total number of bundles to 3.

    Screenshot of Make router with 3 or more records filter

    Click OK.

    Slack: Create a Message

    The first route will send a Slack message if the number of job listings does not meet the requirement. On the Less than 3 records route, click the + button to add a Slack module. Select the Create a message action.

    To set up the module, connect your Slack account by giving permissions to the correct workspace. Choose Direct message as the channel type, select the user you want to contact, and insert message text.

    Screenshot of Make Slack create a message module

    Click OK.

    Tools: Text Aggregator

    Now, let’s set up the second route, which will include a series of modules that formats our PDF URL output from the search step. Click + on the second route, then add a Tools module with a Text aggregator action.

    Set up the module by choosing Airtable - Search Records as the source module. In the Text section, insert "{YOUR_GENERATED_PDF_URL_FIELD}",.

    Screenshot of Make Tools text aggregator module 1

    Click OK.

    Tools: Compose a String

    Add another Tools module with a Compose a string action. In the Text section, insert {{sum(length({PREVIOUS_STEP_OUTPUT}); -1)}}.

    Screenshot of Make Tools text aggregator module 2

    This step will calculate the length of the string so we can trim unnecessary characters later on.

    Tools: Compose a String

    Continue your scenario with another Tools module and a Compose a string action. In the Text section, insert {{substring({TEXT_AGGREGATOR_STEP_OUTPUT}; 0; {PREVIOUS_STEP_OUTPUT})}}.

    Screenshot of Make Tools text aggregator module 3

    This step trims the last comma off of the string, ensuring it’s in the format needed for the PDF joining API call.

    Bannerbear: Make an API Call

    Add a Bannerbear module to your route, choosing Make an API call as the action. Select the connection containing your job listings project.

    To set up the step, insert /v2/utilities/pdf/join/ into the URL field. Choose POST as the Method, and make sure Headers are set up to include one key-value pair: Content-Type and application/json. Since you’ve already set up this connection in the previous scenario, you won’t need to add authentication headers.

    Screenshot of Make Bannerbear make an API call module for joining PDFs

    In the Body section, insert the following:

    {
      "pdf_inputs": [
        {PREVIOUS_STEP_OUTPUT}
      ]
    }
    

    Screenshot of Make Bannerbear make an API call module for joining PDFs with body outlined in red

    Click OK.

    Tools: Sleep

    Since PDF generation often takes a few more seconds to complete, a delay will ensure it’s ready before retrieval.

    Add a Tools module with a Sleep action. Insert the number of seconds you want the scenario to be delayed, which can be anywhere from 5 to 30.

    Screenshot of Make Tools sleep module

    Click OK.

    Bannerbear: Make an API Call

    This module will retrieve the completed job listing PDF set so you can send it wherever you want.

    Add a Bannerbear module to your route, and select the Make an API Call action. Select the connection containing your job listings project.

    Insert /v2/utilities/pdf/join/{BODY_UID_FROM_API_CALL_STEP} into the URL section. Choose GET as the method, and ensure Content-Type and application/json is included as a header.

    Screenshot of Make Bannerbear make an API call module for retrieving PDFs

    Click OK.

    Airtable: Create a Record

    The last module of the scenario will store the job listing set’s URL on Airtable, so you can access it as needed.

    Add an Airtable module with a Create a Record action. Choose the right connection, base, and table. Map the set PDF URL to its corresponding field.

    Screenshot of Make Airtable create a record module

    Click OK , and save your scenario.

    To finish up the automation, click the timer on the bottom left corner and set the frequency to suit your needs. We chose a weekly frequency.

    Then, toggle the task to be ON , and you’re good to go!

    Screenshot of Make scenario with scheduling options outlined in red

    Now, every time the automation runs, you should have a PDF that looks something like this:

    GIF of job listing PDF generated with Bannerbear

    Having the link accessible in Airtable makes it easy for you to pick up and post on LinkedIn. You can also add to the automation in various ways, such as sending it to relevant people, using notifications to remind you to post, or even posting the generated graphics directly to social media.

    Wrapping Up

    In this tutorial, you’ve learned to automate the creation of visually engaging job listing graphics for LinkedIn carousel. Nocode tools like Bannerbear, Airtable, and Make can be used to generate professional-looking listings with minimal manual effort. With an automated workflow, you save valuable time by eliminating the manual work and ensuring consistent presentation.

    By streamlining your job listing graphic production, you can reach more qualified candidates and showcase open roles in a professional, engaging way. Get started with this powerful automation today!

    About the authorJulianne Youngberg@paradoxicaljul
    Julianne is a technical content specialist fascinated with digital tools and how they can optimize our lives. She enjoys bridging product-user gaps using the power of words.

    Bannerbear Beginner Guide: How to Start Generating Images Dynamically in JavaScript with Bannerbear

    If you want to integrate dynamic image generation into your JavaScript project, this article is for you! Learn how to do it effortlessly with Bannerbear—we’ll walk you through the entire process, from setup and implementation to achieving the final result.

    How to Instantly Generate Certificates Online with Bannerbear and Airtable

    One way to generate a large batch of certificates on-demand is with a direct Airtable integration. Here's how to connect your base to Bannerbear and generate dozens of graphics in seconds!

    How to Automatically Create Eye-Catching Images for Your App's Link Sharing Using Bannerbear (Node.js)

    Want to make your app’s link sharing stand out? Learn how to use Bannerbear to automatically create eye-catching images that boost click-through rates! This tutorial walks you through building a backend service with Node.js to automatically generate custom images based on dynamic data.

    Automate & Scale
    Your Marketing

    Bannerbear helps you auto-generate social media visuals, banners and more with our API and nocode integrations

    How to Auto-produce Job Listing Graphics for LinkedIn Carousel (Using Make)
    How to Auto-produce Job Listing Graphics for LinkedIn Carousel (Using Make)