{"id":26678304,"url":"https://github.com/telexintegrations/daily-py-jobs","last_synced_at":"2025-03-26T05:15:26.516Z","repository":{"id":278929482,"uuid":"937174869","full_name":"telexintegrations/daily-py-jobs","owner":"telexintegrations","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-22T15:27:37.000Z","size":6342,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-22T16:27:21.187Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/telexintegrations.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":"2025-02-22T14:14:20.000Z","updated_at":"2025-02-22T15:27:28.000Z","dependencies_parsed_at":"2025-02-22T16:27:49.092Z","dependency_job_id":"bbdef858-4d4c-43d4-a8d8-c904b3ecc6e4","html_url":"https://github.com/telexintegrations/daily-py-jobs","commit_stats":null,"previous_names":["telexintegrations/daily-py-jobs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fdaily-py-jobs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fdaily-py-jobs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fdaily-py-jobs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fdaily-py-jobs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/telexintegrations","download_url":"https://codeload.github.com/telexintegrations/daily-py-jobs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245591533,"owners_count":20640692,"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":[],"created_at":"2025-03-26T05:15:25.687Z","updated_at":"2025-03-26T05:15:26.492Z","avatar_url":"https://github.com/telexintegrations.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Daily Python Jobs\n\nDaily Python Jobs is an integration that sends the latest Python job postings every day. This project uses Node.js, Express, and TypeScript to fetch job postings from an external API and send them to telex channels.\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Environment Variables](#environment-variables)\n- [API Endpoints](#api-endpoints)\n- [Testing](#testing)\n- [Deployment](#deployment)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Features\n\n- Fetches the latest Python job postings from an external API.\n- Filters job postings based on user-defined settings.\n- Sends job postings to a specified URL.\n\n## Installation\n\n1. Clone the repository:\n\n    ```sh\n    git clone https://github.com/iConnell/daily-python-jobs.git\n    cd daily-python-jobs\n    ```\n\n2. Install dependencies:\n\n    ```sh\n    npm install\n    ```\n\n3. Create a `.env` file in the root directory and add the necessary environment variables (see [Environment Variables](#environment-variables)).\n\n4. Run the development server:\n\n    ```sh\n    npm run dev\n    ```\n\n## Usage\n\n## Environment Variables\n\nCreate a `.env` file in the root directory and add the following environment variables:\n\n```sh\nCORESIGNAL_API_SEARCH_URL=\u003ccoresignal-api-search-url\u003e\nCORESIGNAL_API_COLLECTION_URL=\u003ccoresignal-api-collection-url\u003e\nCORESIGNAL_API_KEY=\u003cyour-coresignal-api-key\u003e\n```\n\n## API Endpoints\n\n### POST `/jobs`\n\nHandles incoming webhook requests and processes job postings based on the provided settings.\n\n**Sample Request:**\n\n```json\n{\n  \"return_url\": \"https://return.url\",\n  \"settings\": [\n    {\n      \"label\": \"interval\",\n      \"type\": \"text\",\n      \"required\": true,\n      \"default\": \"* * * * *\"\n    },\n    {\n      \"label\": \"Location\",\n      \"type\": \"dropdown\",\n      \"required\": false,\n      \"default\": \"All Locations\",\n      \"options\": [\"All Locations\", \"Remote\", \"On-site\"]\n    },\n    {\n      \"label\": \"Experience Level\",\n      \"type\": \"dropdown\",\n      \"required\": false,\n      \"default\": \"All Levels\",\n      \"options\": [\"All Levels\", \"Entry\", \"Associate\", \"Mid\", \"Senior\"]\n    },\n    {\n      \"label\": \"Employment Type\",\n      \"type\": \"dropdown\",\n      \"required\": false,\n      \"default\": \"All Types\",\n      \"options\": [\"All Types\", \"Full-time\", \"Part-time\", \"Contract\"]\n    },\n    {\n      \"label\": \"Preferred Framework\",\n      \"type\": \"dropdown\",\n      \"required\": true,\n      \"default\": \"All Frameworks\",\n      \"options\": [\"All Frameworks\", \"Django\", \"Flask\", \"Fastapi\"]\n    }\n  ]\n}\n```\n\n**Sample Response:**\n\n```json\n{\n  \"status\": \"accepted\"\n}\n```\n\n### GET `/telex-config`\n\nReturns the configuration data for the integration.\n\n**Sample Response:**\n\n```json\n{\n  \"data\": {\n    \"date\": {\n      \"created_at\": \"2025-02-20\",\n      \"updated_at\": \"2025-02-20\"\n    },\n    \"descriptions\": {\n      \"app_name\": \"Daily Python Jobs\",\n      \"app_description\": \"This integration sends the latest python jobs everyday\",\n      \"app_logo\": \"https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/1280px-Python-logo-notext.svg.png\",\n      \"app_url\": \"https://daily-py-jobs-cf03a679f137.herokuapp.com/\",\n      \"background_color\": \"#fff\"\n    },\n    \"integration_category\": \"Task Automation\",\n    \"is_active\": true,\n    \"integration_type\": \"interval\",\n    \"key_features\": [\"Python Jobs Everyday\"],\n    \"author\": \"iConnell\",\n    \"settings\": [\n      {\n        \"label\": \"interval\",\n        \"type\": \"text\",\n        \"required\": true,\n        \"default\": \"0 9 * * *\"\n      },\n      {\n        \"label\": \"Location\",\n        \"type\": \"dropdown\",\n        \"required\": false,\n        \"default\": \"All Locations\",\n        \"options\": [\"All Locations\", \"Remote\", \"On-site\"]\n      },\n      {\n        \"label\": \"Experience Level\",\n        \"type\": \"dropdown\",\n        \"required\": false,\n        \"default\": \"All Levels\",\n        \"options\": [\"All Levels\", \"Entry\", \"Associate\", \"Mid\", \"Senior\"]\n      },\n      {\n        \"label\": \"Employment Type\",\n        \"type\": \"dropdown\",\n        \"required\": false,\n        \"default\": \"All Types\",\n        \"options\": [\"All Types\", \"Full-time\", \"Part-time\", \"Contract\"]\n      },\n      {\n        \"label\": \"Preferred Framework\",\n        \"type\": \"dropdown\",\n        \"required\": true,\n        \"default\": \"All Frameworks\",\n        \"options\": [\"All Frameworks\", \"Django\", \"Flask\", \"Fastapi\"]\n      }\n    ],\n    \"target_url\": \"https://target.url\",\n    \"tick_url\": \"https://daily-py-jobs-cf03a679f137.herokuapp.com/jobs\"\n  }\n}\n```\n\n## Deployment\n\nDeploy the app on any platform of your choice.\n\nThen head over to [Telex](https://telex.im), sign up, create an organization and a channel.\n\nGo to the `Apps` section and click on `Add New`. Enter the URL to the JSON config.\n\n\u003cimg width=\"857\" alt=\"Screenshot 2025-02-22 at 4 00 25 PM\" src=\"https://github.com/user-attachments/assets/3d0d3b10-9c37-4049-a29f-7b5cce337153\" /\u003e\n\nThen toggle the status switch to activate the app.\n\n\u003cimg width=\"854\" alt=\"Screenshot 2025-02-22 at 4 03 58 PM\" src=\"https://github.com/user-attachments/assets/0fff746b-6f81-472a-b25a-87eac964c317\" /\u003e\n\nNext, click on `Manage App`. On the `Settings` tab, you'll find the job preferences. Make your choices and save.\n\n### Setings Configs\n- interval\n  - How often you want to receive job alerts (in crontab format) default is `0 9 * * *` (Everyday at 9am)\n- Location\n  - Location (City or country) of the job - choose from the dropdown. Default is `All Locations`\n- Experience Level\n  - The level of experience required for the job. Choose from the dropdown. Default is `All Levels`. Options include `Entry`, `Associate`, `Mid`, and `Senior`.\n- Employment Type\n  - The type of employment for the job. Choose from the dropdown. Default is `All Types`. Options include `Full-time`, `Part-time`, and `Contract`.\n- Prefered Framework\n  - The preferred Python framework for the job. Choose from the dropdown. Default is `All Frameworks`. Options include `Django`, `Flask`, and `FastAPI`.\n\n\n\u003cimg width=\"855\" alt=\"Screenshot 2025-02-22 at 4 06 19 PM\" src=\"https://github.com/user-attachments/assets/48f131b4-6705-4f2b-9f4b-0ba9ecb2748b\" /\u003e\n\nFinally, head over to your channel. At the right time according to your settings, the app will send job posts matching your preferences.\n\n\u003cimg width=\"1046\" alt=\"Screenshot 2025-02-22 at 4 10 40 PM\" src=\"https://github.com/user-attachments/assets/f1641688-5064-4286-ac3d-cd2042d0428f\" /\u003e\n\n\u003cimg width=\"1044\" alt=\"Screenshot 2025-02-22 at 4 11 12 PM\" src=\"https://github.com/user-attachments/assets/e5171d94-738f-415a-afc5-2e7d5dff254e\" /\u003e\n\n\n## Testing\n\nTo run the tests, use the following command:\n\n```sh\nnpm test\n```\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.\n\n## License\n\nThis project is licensed under the ISC License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelexintegrations%2Fdaily-py-jobs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelexintegrations%2Fdaily-py-jobs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelexintegrations%2Fdaily-py-jobs/lists"}