<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ASKAR AITUOV</title>
    <description>The latest articles on DEV Community by ASKAR AITUOV (@askar_ai).</description>
    <link>https://dev.to/askar_ai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F762128%2F3bd29d46-20c9-4fcd-8e43-a0992d9f2ca7.jpg</url>
      <title>DEV Community: ASKAR AITUOV</title>
      <link>https://dev.to/askar_ai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/askar_ai"/>
    <language>en</language>
    <item>
      <title>Track YC Launches on Autopilot: Apps Script + Gemini 3.6 Flash</title>
      <dc:creator>ASKAR AITUOV</dc:creator>
      <pubDate>Wed, 02 Sep 2026 10:24:56 +0000</pubDate>
      <link>https://dev.to/tengri_dev/track-yc-launches-on-autopilot-apps-script-gemini-36-flash-3fhj</link>
      <guid>https://dev.to/tengri_dev/track-yc-launches-on-autopilot-apps-script-gemini-36-flash-3fhj</guid>
      <description>&lt;p&gt;&lt;em&gt;Note: While preparing this tutorial, we intended to use the legacy generateContent endpoint. Because Google shifted to the unified Interactions API, check updated endpoints here: [Interactions API Overview].&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fouhmlxxuz4rpy583prz3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fouhmlxxuz4rpy583prz3.png" alt=" " width="798" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For builders, product managers, and investors, tracking newly launched startups is critical for competitive intelligence, finding breakout developer tools, and monitoring seed-stage venture trends. But checking launch boards manually every day is tedious.&lt;/p&gt;

&lt;p&gt;In my work mapping developer ecosystems and driving DevRel initiatives at BCC Hub in Almaty, Kazakhstan, I constantly look for ways to streamline data collection without accumulating infrastructure bloat. In this tutorial, we will build a daily automated pipeline in Google Apps Script that scrapes the official Y Combinator Launches feed, passes the content to Gemini 3.6 Flash, and writes structured deal flow directly into Google Sheets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Token Economics Matter Here&lt;/strong&gt;&lt;br&gt;
Scraping dynamic feed pages often loads noisy markup, sidebars, and navigation headers. If you pump raw 100 KB HTML documents into an expensive model, you blow through your monthly budget on useless boilerplate.&lt;/p&gt;

&lt;p&gt;We solve this with two best practices:&lt;br&gt;
&lt;strong&gt;Pre-processing in JavaScript:&lt;/strong&gt; Strip &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt;, and raw markup before sending the payload, shrinking token consumption by over 70%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini Flash Free Tier:&lt;/strong&gt; Fast inference, robust context handling, and generous zero-cost limits through Google AI Studio. As demonstrated in the companion video tutorial, if you ever experience high demand on the latest models (like 3.7 Flash), you can easily dial the endpoint back to 3.6 Flash to keep your automated pipelines running smoothly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting Up Your Google Sheet&lt;/strong&gt;&lt;br&gt;
Set up Row 1 of your spreadsheet with these column headers and freeze the row (View &amp;gt; Freeze &amp;gt; 1 row):&lt;br&gt;
Column A: Timestamp&lt;br&gt;
Column B: Company Name&lt;br&gt;
Column C: One-Sentence Pitch&lt;br&gt;
Column D: Category&lt;br&gt;
Column E: AI-Native?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How the Pipeline Works&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Secure Key Management with PropertiesService
Instead of hardcoding API keys where they might leak in GitHub commits or screen recordings, we fetch credentials dynamically from Apps Script's encrypted storage:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;apiKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;PropertiesService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getScriptProperties&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;getProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;2. Feed Scraping &amp;amp; Text Sanitization&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;UrlFetchApp.fetch() queries [https://www.ycombinator.com/launches](https://www.ycombinator.com/launches).&lt;/code&gt; Regex removes embedded JavaScript, CSS styles, and raw HTML tags, leaving a clean text stream of startup announcements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Structured Output Extraction&lt;/strong&gt;&lt;br&gt;
We instruct Gemini to act as a venture intelligence analyst and enforce JSON output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const prompt = `Analyze this raw text from Y Combinator's launches page. Extract the latest 3 to 5 featured startup launches from the past 30 days.
Return ONLY a valid JSON array of objects with the following keys:
- "name": Company name
- "pitch": One-sentence value proposition
- "category": Target domain/industry
- "isAiNative": "Yes" or "No"`;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Automated Row Insertion&lt;/strong&gt;&lt;br&gt;
The script parses the returned JSON array and appends one clean row per startup to your Google Sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step-by-Step Setup&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your Google Sheet and navigate to Extensions &amp;gt; Apps Script.&lt;/li&gt;
&lt;li&gt;Click the Gear icon (Project Settings) in the left sidebar.&lt;/li&gt;
&lt;li&gt;Under Script Properties, add a property named GEMINI_API_KEY and paste your key from Google AI Studio.&lt;/li&gt;
&lt;li&gt;Replace the editor code with scraper.js (below) and click Save.&lt;/li&gt;
&lt;li&gt;Click Run once to authorize permissions for URL fetching and Sheet modifications.&lt;/li&gt;
&lt;li&gt;Click the Triggers (clock icon) tab, click + Add Trigger, select trackYCLaunchesDaily, set the event source to Time-driven (Day timer), and select your preferred execution window (e.g., every 12 hours).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your spreadsheet will now build an automated database of every startup coming out of Y Combinator without manual maintenance or ongoing infrastructure fees. You can even modify the prompt to scrape completely different sites like Forbes or TechCrunch!&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/JQOSm3Xal8Q" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * Daily YC Launch Tracker with Apps Script &amp;amp; Gemini
 * Scrapes Y Combinator's launch feed, extracts top recent launches,
 * and logs structured company intelligence directly into Google Sheets.
 */&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;trackYCLaunchesDaily&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;SpreadsheetApp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getActiveSpreadsheet&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;getActiveSheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://www.ycombinator.com/launches&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;apiKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;PropertiesService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getScriptProperties&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;getProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;GEMINI_API_KEY not found in Script Properties.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// 1. Fetch YC Launches HTML&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;UrlFetchApp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;User-Agent&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Mozilla/5.0 (compatible; AppsScriptYCScraper/1.0)&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getContentText&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="c1"&gt;// 2. Light cleanup to strip script/style tags and compress text for token efficiency&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cleanHtml&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;html&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&amp;lt;script&lt;/span&gt;&lt;span class="se"&gt;\b[^&lt;/span&gt;&lt;span class="sr"&gt;&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;(?:(?!&lt;/span&gt;&lt;span class="sr"&gt;&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;\/&lt;/span&gt;&lt;span class="sr"&gt;script&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;[^&lt;/span&gt;&lt;span class="sr"&gt;&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;*&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;\/&lt;/span&gt;&lt;span class="sr"&gt;script&amp;gt;/gi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&amp;lt;style&lt;/span&gt;&lt;span class="se"&gt;\b[^&lt;/span&gt;&lt;span class="sr"&gt;&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;(?:(?!&lt;/span&gt;&lt;span class="sr"&gt;&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;\/&lt;/span&gt;&lt;span class="sr"&gt;style&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;[^&lt;/span&gt;&lt;span class="sr"&gt;&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;*&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;\/&lt;/span&gt;&lt;span class="sr"&gt;style&amp;gt;/gi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&amp;lt;&lt;/span&gt;&lt;span class="se"&gt;[^&lt;/span&gt;&lt;span class="sr"&gt;&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;+&amp;gt;/g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+/g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pageSnippet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;cleanHtml&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// 3. Call Gemini Interactions API with structured JSON output request&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;geminiUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://generativelanguage.googleapis.com/v1beta/interactions?key=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`Analyze this raw text from Y Combinator's launches page. Extract the latest 3 to 5 featured startup launches from the past 30 days.
    Return ONLY a valid JSON array of objects with the following keys:
    - "name": Company name
    - "pitch": One-sentence value proposition
    - "category": Target domain/industry (e.g., Developer Tools, Fintech, Healthcare, B2B SaaS)
    - "isAiNative": "Yes" or "No"

    Raw Text:
    &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;pageSnippet&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;model&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gemini-3.6-flash&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// Adjusted to 3.6 for high-demand reliability &lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;input&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;response_mime_type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;method&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;post&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;contentType&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;payload&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;muteHttpExceptions&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;geminiResponse&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;UrlFetchApp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;geminiUrl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;geminiResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getContentText&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;sheet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appendRow&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;API Error&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;outputText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;output_text&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;candidates&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;candidates&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]?.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]?.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;outputText&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;sheet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appendRow&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Parse Error&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;No output returned from Gemini&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// 4. Parse the AI-generated JSON and append each company as a row&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cleanJson&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;outputText&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/``&lt;/span&gt;&lt;span class="err"&gt;`
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;endraw&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;raw&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="s2"&gt;```/g, '').trim();
    const startups = JSON.parse(cleanJson);

    const timestamp = new Date();
    startups.forEach(startup =&amp;gt; {
      sheet.appendRow([
        timestamp,
        startup.name || "N/A",
        startup.pitch || "N/A",
        startup.category || "N/A",
        startup.isAiNative || "N/A"
      ]);
    });

  } catch (error) {
    sheet.appendRow([new Date(), "Execution Error", error.message, "", ""]);
  }
}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>appsscript</category>
      <category>appscript</category>
      <category>googlesheet</category>
      <category>gemini</category>
    </item>
    <item>
      <title>BCC-HUB Tech Radar</title>
      <dc:creator>ASKAR AITUOV</dc:creator>
      <pubDate>Wed, 12 Aug 2026 10:13:34 +0000</pubDate>
      <link>https://dev.to/bcchub/bcc-hub-tech-radar-plf</link>
      <guid>https://dev.to/bcchub/bcc-hub-tech-radar-plf</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9pr45fbt2mhgshizuvsb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9pr45fbt2mhgshizuvsb.jpg" alt=" " width="799" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is with great pleasure that we announce the deployment of Central Asia’s inaugural public Technology Radar.&lt;/p&gt;

&lt;p&gt;Upon my appointment as Head of Developer Relations at BCC HUB some months prior, a distinct reality became apparent: our contingent of 900 engineers was architecting exceptionally robust financial and banking technology—spanning API-first platforms, embedded finance, and cross-border payment systems—yet their endeavours remained largely unheralded, even within our own walls.&lt;/p&gt;

&lt;p&gt;Disparate teams were often unacquainted with the elegant solutions and tools already pioneered by their colleagues. We lacked a cohesive lexicon to distinguish between prospective innovations, established methodologies, and technologies slated for deprecation.&lt;/p&gt;

&lt;p&gt;Consequently, in close collaboration with Pavel Struchalin, our distinguished IT architects Bakhytzhan Karabalin and Nikolay Kochubashev, and my fellow Head of DevRel Askar Aituov—and following extensive consultations with technical divisions across the firm—we forged a solution.&lt;/p&gt;

&lt;p&gt;The BCC HUB Technology Radar meticulously charts our actual engineering repertoire—encompassing languages, frameworks, platforms, and tools—across the traditional concentric tiers of Adopt, Trial, Assess, and Hold. Incorporating Go, Kotlin, Spring Boot, Kubernetes, Kafka, gRPC, Testcontainers, and FastAPI, it reflects the pragmatic, verifiable decisions our teams execute daily, rather than serving as mere aspirational pageantry.&lt;/p&gt;

&lt;p&gt;One might enquire: of what significance is such a radar to developer ecosystems within emerging markets? The answer lies in the bedrock of credibility. Esteem is not cultivated through hollow proclamations of being "AI-by-default" or "cloud-native"; rather, it is earned by transparently publishing one’s technological commitments and resolutely standing by them.&lt;/p&gt;

&lt;p&gt;This is the very mechanism by which an organisation attracts senior engineering talent, commands respect amongst regional technological syndicates, and endows its own colleagues with a definitive standard to which they can proudly point and declare, "This is the foundation upon which we build."&lt;/p&gt;

&lt;p&gt;It is a matter of profound pride that such an initiative has emerged from Almaty.&lt;/p&gt;

&lt;p&gt;I cordially invite you to peruse the Radar here: &lt;a href="https://bcchub.kz/en/radar" rel="noopener noreferrer"&gt;https://bcchub.kz/en/radar&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  DevRel #TechRadar #EngineeringCulture #CentralAsia #Fintech
&lt;/h1&gt;

</description>
      <category>bcchub</category>
      <category>techradar</category>
    </item>
    <item>
      <title>Tech Radar of Central Asia</title>
      <dc:creator>ASKAR AITUOV</dc:creator>
      <pubDate>Wed, 12 Aug 2026 10:10:29 +0000</pubDate>
      <link>https://dev.to/tengri_dev/tech-radar-of-central-asia-2idl</link>
      <guid>https://dev.to/tengri_dev/tech-radar-of-central-asia-2idl</guid>
      <description>&lt;p&gt;Post from Head of Devrel at BCC-HUB Askar Aituov&lt;br&gt;
We just shipped the first public Technology Radar in Central Asia.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl58oplgk1p8e068h222k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl58oplgk1p8e068h222k.jpg" alt=" " width="799" height="441"&gt;&lt;/a&gt;&lt;br&gt;
A few months ago, when I joined BCC HUB as Head of DevRel, one thing was clear: 900 engineers were building genuinely strong fintech and banking tech - API-first platforms, embedded finance, cross-border payments - but few of them were visible, even internally. &lt;/p&gt;

&lt;p&gt;Different squads didn't know what tools other squads had already solved problems with. There was no shared language for "what's next" vs "what's proven" vs "what we're retiring."&lt;/p&gt;

&lt;p&gt;So together with our Pavel Struchalin, IT architects Bakhytzhan Karabalin and Nikolay Kochubashev discussing with all technical teams across the company, we built one.&lt;br&gt;
The BCC HUB Tech Radar maps our real engineering stack — languages, frameworks, platforms, tools - across the classic Adopt / Trial / Assess / Hold rings. Go, Kotlin, Spring Boot, Kubernetes, Kafka, gRPC, Testcontainers, FastAPI - real choices our teams are making today, not an aspirational slide deck.&lt;/p&gt;

&lt;p&gt;Why does a radar matter for developer ecosystems in emerging markets? Because credibility isn't built by claiming you're "AI-by-default" or "cloud-native" - it's built by publishing your actual technology decisions and standing behind them. &lt;br&gt;
That's how you attract senior engineers, how you get taken seriously by regional tech communities, and how you give your own people something to point to and say "this is what we build with."&lt;/p&gt;

&lt;p&gt;Proud that this came out of Almaty.&lt;/p&gt;

&lt;p&gt;Check it out:&lt;a href="https://bcchub.kz/en/radar" rel="noopener noreferrer"&gt;https://bcchub.kz/en/radar&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  DevRel #TechRadar #EngineeringCulture #CentralAsia #Fintech
&lt;/h1&gt;

</description>
      <category>techradar</category>
      <category>bcchub</category>
      <category>tengridev</category>
      <category>devsmapcom</category>
    </item>
    <item>
      <title>How I Built and Delivered an AI Training Program in Central Asia (And Tools I Used Along the Way)</title>
      <dc:creator>ASKAR AITUOV</dc:creator>
      <pubDate>Sat, 19 Jul 2025 08:11:12 +0000</pubDate>
      <link>https://dev.to/askar_ai/how-i-built-and-delivered-an-ai-training-program-in-central-asia-and-tools-i-used-along-the-way-np0</link>
      <guid>https://dev.to/askar_ai/how-i-built-and-delivered-an-ai-training-program-in-central-asia-and-tools-i-used-along-the-way-np0</guid>
      <description>&lt;p&gt;In the past year, I had the chance to design and deliver a hands-on &lt;strong&gt;AI training program&lt;/strong&gt; for two large organizations in Kazakhstan. I want to share what I taught, how I built it, and how this type of practical training can be scaled for global teams.&lt;/p&gt;

&lt;p&gt;👨‍🏫 What the Course Covers&lt;/p&gt;

&lt;p&gt;My training focused on helping &lt;strong&gt;non-technical teams&lt;/strong&gt; (PMs, analysts, startup founders) use &lt;strong&gt;practical GenAI tools&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧠 Prompt engineering basics&lt;/li&gt;
&lt;li&gt;🛠️ Using LLMs like ChatGPT / Gemini for everyday tasks&lt;/li&gt;
&lt;li&gt;🔍 Evaluating outputs (hallucinations, compliance, etc.)&lt;/li&gt;
&lt;li&gt;📄 Case study: Building internal copilots with no-code tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Learn more or book a session: &lt;a href="https://devsmap.com/for-companies/" rel="noopener noreferrer"&gt;devsmap.com/for-companies&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧩 Why This Matters
&lt;/h2&gt;

&lt;p&gt;Many companies want to "do AI", but don't know where to start. This training helps teams go from &lt;em&gt;zero to value&lt;/em&gt; — using tools they already have.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"It was the first time our managers understood how GenAI could work for their daily workflow."&lt;br&gt;&lt;br&gt;
– Participant, Almaty-based tech company&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧰 Tools I Used to Build This
&lt;/h2&gt;

&lt;p&gt;Here are some key tools I used to &lt;strong&gt;create, deploy, and support&lt;/strong&gt; the course:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;💬 &lt;strong&gt;DevsBot&lt;/strong&gt;: My own SaaS that helps PMs analyze user stories and plan test cases. It even matches AI tools to requirements.&lt;br&gt;&lt;br&gt;
👉 Try it at &lt;a href="https://devs.bot" rel="noopener noreferrer"&gt;devs.bot&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🌍 &lt;strong&gt;DevsMap&lt;/strong&gt;: A curated directory of coworking spaces, IT companies, and tech visa info for digital nomads.&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://devsmap.com" rel="noopener noreferrer"&gt;devsmap.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;📚 &lt;strong&gt;Youtube channel &lt;a href="https://www.youtube.com/@devsmap" rel="noopener noreferrer"&gt;Devs map&lt;/a&gt;&lt;/strong&gt; for regular online streams with TECH and startups folks across the globe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💡 Want This Training?
&lt;/h2&gt;

&lt;p&gt;If you're a company, startup, or community in Central Asia (or beyond) — I’d love to bring this course to your team.&lt;/p&gt;

&lt;p&gt;📩 Contact me via &lt;a href="https://devsmap.com" rel="noopener noreferrer"&gt;devsmap.com&lt;/a&gt; or DM me here.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧵 P.S.
&lt;/h2&gt;

&lt;p&gt;I’ll be posting more about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How I built Devs.Bot from scratch (Firebase, SaaS stack)&lt;/li&gt;
&lt;li&gt;Lessons from managing a 7,500+ developer Telegram community devs.kz&lt;/li&gt;
&lt;li&gt;Building an AI-first product strategy for SMEs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔔 Follow me here if you’re interested!&lt;/p&gt;

</description>
      <category>devsbot</category>
      <category>devsmap</category>
      <category>kazakhstan</category>
      <category>indonesia</category>
    </item>
    <item>
      <title>Appscript library on Google workspace</title>
      <dc:creator>ASKAR AITUOV</dc:creator>
      <pubDate>Fri, 23 Jun 2023 14:09:42 +0000</pubDate>
      <link>https://dev.to/askar_ai/appscript-library-on-google-workspace-1m8o</link>
      <guid>https://dev.to/askar_ai/appscript-library-on-google-workspace-1m8o</guid>
      <description>&lt;p&gt;__Build my first library.&lt;br&gt;
Calculates the sale price of a value at a given discount. The sale price is formatted as US dollars.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://script.google.com/macros/library/d/1aEP2kDTebNGgyaT3_x-_tcwvLzzWn0m2093S3ZQ1YDMJYeE6HSXRknS9/1" rel="noopener noreferrer"&gt;https://script.google.com/macros/library/d/1aEP2kDTebNGgyaT3_x-_tcwvLzzWn0m2093S3ZQ1YDMJYeE6HSXRknS9/1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to deploy in on Workspace market need to enable Google Cloud Platform. &lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>gcp</category>
      <category>data</category>
      <category>appscript</category>
    </item>
    <item>
      <title>"Hello world" of data analytics</title>
      <dc:creator>ASKAR AITUOV</dc:creator>
      <pubDate>Thu, 25 Nov 2021 15:07:33 +0000</pubDate>
      <link>https://dev.to/askar_ai/hello-world-of-data-analytics-1c49</link>
      <guid>https://dev.to/askar_ai/hello-world-of-data-analytics-1c49</guid>
      <description>&lt;p&gt;Hi all,&lt;br&gt;
While browsing the &lt;a href="https://devlibrary.withgoogle.com/" rel="noopener noreferrer"&gt;https://devlibrary.withgoogle.com/&lt;/a&gt;, I encountered Dev community.&lt;br&gt;
This is a pilot post :-)&lt;/p&gt;

&lt;p&gt;Regards,&lt;br&gt;
Askar&lt;/p&gt;

</description>
      <category>computerscience</category>
    </item>
  </channel>
</rss>
