Huashu Design
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
An n8n workflow for students who follow internship channels on Telegram. It splits each forwarded post into openings, reads the application pages and has AI keep the fitting ones. Those go to the numbers on your list.
Internship posts checked by AI and alerts sent on WhatsApp is an n8n workflow in the Education category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Telegram message
It starts when your bot receives a Telegram message, with:
A WhatsApp message for each fitting opening, a calendar reminder for its deadline, and a logged row for every opening, valid or rejected
What you need before you start.
Chat
Takes the forwarded posts, and sends the original text back when the analyst fails.
NeedsA bot token from BotFather
Language model
Splits each post into openings, and decides on an opening when the first model fails.
NeedsA Groq API key
Language model
Decides whether an opening fits, and splits a post when the first model fails.
NeedsA Cerebras API key
Web reader
Reads each application page as Markdown.
NeedsA Firecrawl API key
Search
Looks up the batch year of an opening when its text does not state one.
NeedsA SerpApi API key
Reminder
Creates an event on the deadline of a fitting opening.
NeedsA Google account and a calendar
Log and number list
Holds the numbers to message and logs each valid and rejected opening.
NeedsA Google account and a sheet with three tabs
Alert
Sends the alert to each number through your own sender.
NeedsA WhatsApp sender of your own that takes a POST
Checked by Mindket on 13 Nov 2026
This n8n workflow reads internship posts that you forward to a Telegram bot. An AI model splits each post into separate openings. The workflow reads every application page, and a second AI model decides whether the opening suits students of the batch of 2027. A fitting opening is logged in a Google Sheet and a data table. If it has a deadline, it also lands in your calendar. A WhatsApp message then goes to every number on your list. Thirty nodes do the work.
Students who follow many internship channels and miss good openings in the noise. It also suits a placement cell or a campus group that wants to alert its members. It is built for one profile, so another batch or another kind of role needs its prompts and checks changed. Contact only people who asked to hear from you.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Education | Students | Filter the flood of internship posts in channels | A student forwards a post that lists five openings and hears about the one that fits. |
| Education | Placement cells | Alert a campus group about new openings | A cell keeps the numbers of members who opted in and sends each fitting opening to them. |
| Recruiting | Campus groups | Keep a log of accepted and rejected openings | A group reads the two sheet tabs to see what was sent and why others were skipped. |
| Software | Developers | Study a workflow with two models, tools and a fallback | A developer swaps the WhatsApp step for a Telegram message. |
You need more n8n than usual: import a file, connect eight services and prepare a sheet and a data table. Nothing in the file states a setup time.
Any n8n that can reach Telegram, the model providers and your WhatsApp sender will run it.
Pre-CheckSend Whatsapp Message for a Telegram or email nodeDownload saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. The table lists everything to prepare first.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| Telegram | A bot made with @BotFather |
| Groq and Cerebras | One API key for each, for the two models and their fallbacks |
| Firecrawl | An API key, to read the application pages |
| SerpApi | An API key, for the check of the batch year |
| A sheet with three tabs, a calendar and a Google account for both | |
| n8n data table | One with the columns title, Company_Name, Eligibilty and Application_Link |
A sender of your own that takes a POST with the fields to and message |
workflow.json.Telegram Trigger and in Resend failed message.Splitter Main and Analyst Fallback.https://api.cerebras.ai/v1 and whose key is your Cerebras key. Select it in Splitter Fallback and Analyst Main.Authorization and the value Bearer, a space and your key. Select it in Firecrawl Scrape.serpapi_request.<YOUR_GOOGLE_SHEET_ID> in Get Mobile Numbers, Append Valid and Append Rejected, and <YOUR_GOOGLE_CALENDAR_ID> in Add event reminder.<YOUR_DATA_TABLE_ID> in check_duplicate, Check for duplicate valid and Insert row.Send Whatsapp Message, replace <YOUR_WHATSAPP_SEND_URL> with the address of your sender.Notify User, pick a workflow of your own or delete the node.Publish the workflow and forward internship posts to your bot. On the first runs, check the three places it writes to: the two sheet tabs and the data table. Change 2027 if your batch is another.
| To change | Where |
|---|---|
| The batch year and the role rules | The prompt of Analyst Agent, the code of Pre-Check and the name of For 2027? |
| The text of the alert | The template in the prompt of Analyst Agent |
| The people who get it | The rows of the Mobile Numbers tab |
| The deadline reminder | The times in Add event reminder |
| The models | The four chat model nodes |
You forward a post from an internship channel that lists three openings.
The splitter turns the post into three items, and the workflow reads each application page. Two pages name only earlier years and are rejected at once, with a row in the rejected tab. The third passes the analyst, has a deadline and is not in the data table yet. It gets a calendar event, every number on your list gets a message, and a row lands in the valid tab.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. An AI agent is a node that asks a model to decide and can call small tools, here a duplicate check and a web search. A fallback model takes over when the main one fails.
For experts. Two agents each run on a main model and a fallback model, and the analyst also has two tools.
| Node | What it does | What to know |
|---|---|---|
Splitter Agent | An agent on Splitter Main, Groq openai/gpt-oss-20b, with Splitter Fallback, Cerebras gpt-oss-120b | It tries up to 5 times and sends an error to Notify User |
Pre-Check | A Code node that cuts a page to 30,000 characters and rejects pages that name only earlier years | The year 2027 is written into its code |
Analyst Agent | An agent on Analyst Main, Cerebras, with Analyst Fallback, Groq, and the tools check_duplicate and serpapi_request | Output Parser pulls its JSON out of the reply |
Firecrawl Scrape | A POST to Firecrawl’s v2 scrape address with Header Auth | It retries, and a page that stays blocked leaves an empty result while the run goes on |
Loop Over Items | A Split In Batches node that sends the message to one number at a time | When it finishes, Append Valid and Insert row run once for the opening |
Add event reminder | A Google Calendar node that creates an event from 09:00 to 10:00 UTC on the deadline | The title has APPLY TODAY |
It needs services of your own, and it messages real people.
Pre-Check. Change them for any other readerMobile Numbers tab to people who askedllama-3.3-70b-versatile on 16 August 2026, and Cerebras deprecated two models on 27 May 2026. Mindket’s copy uses openai/gpt-oss-120b on Groq and gpt-oss-120b on Cerebras, which those vendors’ pages name or listNotify User runs a workflow named Agent Error that is not in the file. Pick one of your own or delete the nodeAn n8n workflow for students who follow internship channels on Telegram. You forward a post to your bot. An AI model splits it into separate openings, the workflow reads each application page, and a second AI model decides whether the opening fits pre-final year students of the batch of 2027. A fitting one is logged, set as a calendar reminder for its deadline and sent as a WhatsApp message to the numbers on your list. Thirty nodes do the work.
workflow.json: the workflow as n8n exports it, 30 nodes and no sticky notes. It holds no credential.README.md: these notes.Mindket repaired and cleaned the copy:
https://api.firecrawl.dev/v2/scrape with a Header Auth credential. The search tool now calls SerpApi directly and asks it for only the title and snippet of each result. The WhatsApp address is the placeholder <YOUR_WHATSAPP_SEND_URL>.<YOUR_GOOGLE_SHEET_ID>, <YOUR_DATA_TABLE_ID> and <YOUR_GOOGLE_CALENDAR_ID>. The three sheet tabs are picked by name: Mobile Numbers, True Classification and False Classification.llama-3.3-70b-versatile was shut down on 16 August 2026. Groq's deprecations page, read on 12 November 2026, names openai/gpt-oss-120b as the replacement, so Mindket's copy uses it. The Groq model openai/gpt-oss-20b stays.llama3.1-8b and qwen-3-235b-a22b-instruct-2507 were deprecated on 27 May 2026. Cerebras names gpt-oss-120b as the replacement, and its model list shows it, so both Cerebras nodes now use it.Notify User node ran a workflow named Agent Error from the previous owner's n8n. Its id is cleared, so pick a workflow of your own or delete the node.Internship, is gone from the data table's matching columns.v1.Mobile Numbers has a column Phone Number, filled with digits that start with the country code and no plus sign. True Classification has Timestamp, Telegram Message, Title, Company Name, Eligibility, Application Link and Status. False Classification has Timestamp, Telegram Message, Application Link and Rejection Reason.title, Company_Name, Eligibilty and Application_Link. The third name is spelled that way in the file.to and message.workflow.json.Telegram Trigger and in Resend failed message.Splitter Main and Analyst Fallback.https://api.cerebras.ai/v1 and whose key is your Cerebras key. Select it in Splitter Fallback and Analyst Main.Authorization and the value Bearer followed by a space and your key. Select it in Firecrawl Scrape.serpapi_request.Get Mobile Numbers, Append Valid and Append Rejected, replace <YOUR_GOOGLE_SHEET_ID> with the id of your sheet.check_duplicate, Check for duplicate valid and Insert row, replace <YOUR_DATA_TABLE_ID> with its id.Add event reminder, replace <YOUR_GOOGLE_CALENDAR_ID> with your calendar's id.Send Whatsapp Message, replace <YOUR_WHATSAPP_SEND_URL> with the address of your sender.Notify User, pick a workflow of your own, or delete the node.Analyst Agent, in Pre-Check and in the name of For 2027?, if your batch is another.Telegram Trigger starts a run for every message the bot receives.Text Guard passes only a message whose text is longer than 20 characters.Splitter Agent asks Splitter Main to split the text into a JSON list, one object for each opening, with role, company, stipend, eligibility, description and apply_link. It skips channel invitation links. It tries up to 5 times, and Splitter Fallback takes over if the main model fails. On an error, Notify User runs.JSON Format Fixer removes a Markdown fence and parses the list into one item for each opening.Loop Over Each Link takes one opening at a time.Firecrawl Scrape fetches the application page as Markdown. If the site blocks it, the run goes on with an empty result.Pre-Check keeps the first 30,000 characters of the page. When the page is shorter than 150 characters, it uses the Telegram text instead. It rejects an opening whose text names a year from 2020 to 2026 and not 2027. For 2027? sends the rest to the analyst and the rejected ones to Merge.Analyst Agent decides, with Analyst Main and Analyst Fallback. Its prompt asks it to call check_duplicate first. It calls serpapi_request only when the batch year is missing. It answers with JSON: send_whatsapp, reason, whatsapp_message and deadline. On an error, Wait pauses for 2 minutes and Resend failed message sends the post's text back to you.Output Parser pulls the JSON out of the reply. Check for duplicate valid looks up the link in the data table, and Not Duplicate? passes the opening only when send_whatsapp is true and no row has that link.Deadline Exists? sends an opening with a deadline to Add event reminder, which creates a calendar event from 09:00 to 10:00 UTC on that day, titled with APPLY TODAY.Get Mobile Numbers reads the numbers, and Loop Over Items sends the message to each one through Send Whatsapp Message.Append Valid logs a row with the status Pending, and Insert row stores the opening in the data table. A rejected or repeated opening goes to Append Rejected with its reason. Then the loop moves to the next opening.Analyst Agent, the Pre-Check code and the name of For 2027?.Analyst Agent.Send Whatsapp Message for a Telegram or email node.Add event reminder, or delete the node.Pre-Check for anyone else.https://api.cerebras.ai/v1 for that.Mobile Numbers tab to people who asked, and treat the numbers as personal data.NOTICE.md 551 B README.md 8 KB workflow.json 41 KB
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
prathoshap · Kit
Reads classical Sanskrit verses aloud in a chant style, using one trained voice and a reference clip that sets the rhythm. For people who study, recite or need…
paradigma-inc · Kit
Solves hard math problems with a 1B-parameter model trained from scratch for fast, high-volume reasoning. It suits developers who run math workloads on an NVID…
murai-labs · Kit
Chats in Tamil script, romanized Tamil and English, and translates between Tamil and English. A 2.5B model built from scratch by Murai Labs, for Tamil speakers…