I would love some help with my use case - I am finding job openings at companies, then enriching those companies, and making an OpenAI call to determine if the company is a potential target. Then I want to push these companies to hubspot creating a custom event with the job posting details. I would love this to happen automatically. The issue I am running into is that many companies have many job postings, for 1000 job postings its only around 250 unique companies on average. This means I am enriching and calling OpenAI 4x more than I need to, wasting credits. I initially de-duped based on company domain, but I would love to create a custom event for each job posting, but if I dedupe on domains it will only create one job posting and discard the rest. I am thinking I need to use two tables here, but I cant quite figure it out. Any help would be hugely appreciated! Thanks
Do you want a batch process or it running in real time?
Real time
You can optimize your workflow by using conditional runs and organizing your data across two tables: 1. First Table (Companies): • Create a table for unique companies using domains as the identifier • Enrich company data and make OpenAI calls here • This ensures you only enrich and analyze each company once 2. Second Table (Job Postings): • Store all job postings with their company domains • Use conditional runs to link to the enriched company data from the first table • Create custom events for each unique job postingThis approach allows you to: ** Avoid duplicate enrichments and OpenAI calls by processing companies only once ** Maintain unique job posting data while preventing duplicate company data from clogging up your CRMYou can then push both the enriched company data and individual job posting details to Hubspot while maintaining data efficiency and accuracy. Sources: AI Formulas + Conditional Runs [Clay 101] - Clay University Push Data To Your CRM [Clay 101] - Clay University
Based on your use case of processing job postings and company enrichment, I recommend using real-time enrichment through webhooks. This approach offers several advantages: 1. Instant processing as new job postings come in, ensuring your data stays current 2. Ability to use conditional logic to: • Only enrich companies that meet your baseline criteria • Avoid duplicate enrichments for companies you've already processed • Save time and money by being selective about when to make API calls 3. Automatic enrichment of company data as it enters your system, maximizing coverage for important data points before pushing to Hubspot Sources: Intro to Typeforms, Webhooks, and Inbound Lead Sources [Automated Inbound] - Clay University Example Salesforce workflows Flexibly run any workflows based on conditional logic | Clay
For a real-time process to handle job postings and company data in HubSpot, here's how you can structure your workflow: 1. Set up two tables in Clay: • Companies table: Store unique companies by domain • Job Postings table: Link to companies table via domain 2. Use Clay's HubSpot integration with these steps: • Use the "Lookup Object" action to check if the company already exists in HubSpot • If not found, use "Create Object" to add the company • Use "Update Object" to sync enriched data • Enable the "Ignore Blanks" option to prevent accidental overwrites 3. For each job posting: • Create a custom event in HubSpot using the "Create" action • Include the company domain or HubSpot Company ID to associate the event • Add all relevant job posting details in the dynamic fieldsThis approach ensures companies are enriched only once while maintaining individual job posting data in HubSpot. Sources: HubSpot Integration Updates, YouTube Transcripts, Versium, Influencers Club, and More! Create or Update Company with HubSpot
I have setup two tables, and the job posting table writes to the companies table the domain of the company if it isnt yet in the job table. How do I then get back the associated data into the job postings table after the enrichment and AI call are complete?
You can use the "Lookup Single Row in Other Table" feature to pull the enriched company data into your job postings table. Here's how: 1. In your job postings table, add a new column using the enrichment panel 2. Select "Lookup Single Row in Other Table" option 3. Link it to your companies table using the domain as the matching field 4. Once linked, you can extract any enriched company variables you want from your companies table into your job postings tableTo refresh the data after new enrichments are complete, simply rerun the lookup column to pull in the latest company information. Sources: Find People [Clay 101] - Clay University Enrich People (Waterfalls) [Clay 101] - Clay University
I want this to work continuously. How do I get it to automatically refresh once the enrichments are done?
Currently, Clay doesn't offer automated scheduling of enrichments. However, here are your options for keeping data fresh: 1. For tables with CRM sources, data automatically syncs every 24 hours. 2. For your job postings table, you can: • Manually rerun the lookup column that's linked to your companies table to pull in the latest enriched company data • This will refresh and pull in any new company information that has been enriched 3. When setting up enrichment columns, you can: • Use conditional run criteria to specify when enrichments should run • Toggle auto-update settings based on your needs (though this may lead to stale data if turned off) Sources: Enrich People (Waterfalls) [Clay 101] - Clay University Can I schedule data enrichments so they re-run on their own? - FAQ | Clay.com Clearbit integration overview | Documentation | Clay University
Support
Looks like you're still looking for help. We're escalating this over to our support team and someone should be in touch soon. In the meantime, feel free to include any other information that may be helpful in solving your issue!
Hey James! Thanks for reaching out. Happy to help✨. Here's how you can approach this: 1. Use the write to table integration to send company data to another table and run the de-dupe action and enrichment in that table. 2. Once enriched, you can run the Lookup integration to retrieve associated job postings for reach company record. With this set up, every time a new job posting is imported into a table, it will automatically run the write to table integration to create a new record (if new) or auto dedupe if not. If it's a new company record, the Lookup action will automatically run to retrieve data from the first table. I made a quick video here explaining the logic: https://www.loom.com/share/9046426639f54fdfadb0c5bf14282f82 Let me know if you have any questions!
James G. hey James, this is a bit tricky. Running more advanced workflows like this with Clay's native features isn't always so smooth... you usually run into issues like this. We usually write custom code to facilitate these more advanced workflows. I think I could help you out if you want to hop on a call sometime. I'd want to take a look at your desired workflow live, and then I could talk you through the best solution. Let me know!
Daniela D. Thanks for getting back to me with this! The issue I am encountering with looking up multiple rows once the company enrichments have happened is this only happens once, so then if in the future a new job posting for a company that already exists is pulled in it wont re run the enrichments, which in turn wont re run the lookup to find the new job posting. Hopefully this makes sense! Thanks
